
/* EarthRoster v686 consolidated styles — exact original cascade order. */

/* ---- inline style 1 ---- */

/* ============================================================
   WESTWONDERSANDCO  ·  WORKFORCE POWER APP
   Refined organic-premium SaaS aesthetic
   ------------------------------------------------------------
   Sections:
     1.  Design Tokens (palette, type, shadows, motion)
     2.  Reset & Base
     3.  App Shell  (sidebar, topbar, content, mobile nav)
     4.  Primitives (avatar, card, button, pill, input, etc.)
     5.  Login
     6.  Dashboard, Stat Cards, Quick Actions
     7.  Shift Cards & Roster
     8.  Clock-in / Time Tracking
     9.  Timesheets & Payroll (incl. Xero)
     10. Chat
     11. People / Clients / Documents
     12. Account / Profile / Detail Lists
     13. Updates / Announcements
     14. Availability
     15. Modal & Shift Builder
     16. Utilities & Misc
   ============================================================ */


/* ──────────────────────────────────────────────────────────
   1. DESIGN TOKENS
   ────────────────────────────────────────────────────────── */
:root{
  /* — Forest greens (primary, anchored) — */
  --forest-950:#0e1b13;
  --forest-900:#16271a;
  --forest-800:#1f3424;
  --forest-700:#2a472f;
  --forest-600:#385c3d;
  --forest-500:#4a7351;
  --forest-400:#618c68;

  /* — Sage (soft, harmonised) — */
  --sage-500:#7a987b;
  --sage-400:#94ad92;
  --sage-300:#b3c4ad;
  --sage-200:#cfdcc7;
  --sage-100:#e4ecdc;
  --sage-50:#eef3e7;

  /* — Clay / Terracotta (sophisticated warm accent) — */
  --clay-700:#8a4a2c;
  --clay-600:#a35a35;
  --clay-500:#bd7048;
  --clay-400:#cf8a64;
  --clay-300:#dfa886;
  --clay-200:#ecc5ab;
  --clay-100:#f5dec9;

  /* — Cream / parchment / paper — */
  --cream-50:#fbf8f1;
  --cream-100:#f4eee2;
  --cream-200:#ebe3d2;
  --cream-300:#ddd2bd;
  --paper:#fffdf7;

  /* — Ink (text) — */
  --ink-900:#161e18;
  --ink-800:#283128;
  --ink-700:#3c453c;
  --ink-600:#525a51;
  --ink-500:#6a7268;
  --ink-400:#8a9087;
  --ink-300:#aab0a7;

  /* — Lines — */
  --line:rgba(35,55,35,.09);
  --line-strong:rgba(35,55,35,.16);
  --line-deep:rgba(35,55,35,.22);

  /* — Status — */
  --status-ok:#3d8e57;
  --status-ok-bg:#e1efdc;
  --status-warn:#b3851e;
  --status-warn-bg:#fbeed1;
  --status-bad:#a8392f;
  --status-bad-bg:#f7dedb;
  --status-info:#3a5d86;
  --status-info-bg:#dde7f1;

  /* — Surfaces / Backgrounds — */
  --bg:#eef1e8;
  --bg-grad:
    radial-gradient(ellipse 60% 35% at 12% -6%, rgba(180,200,160,.42) 0%, transparent 60%),
    radial-gradient(ellipse 55% 40% at 96% 0%, rgba(220,195,165,.32) 0%, transparent 55%),
    radial-gradient(ellipse 90% 60% at 50% 110%, rgba(140,170,135,.18) 0%, transparent 70%),
    linear-gradient(178deg, #eff2e9 0%, #e7ece0 100%);

  /* subtle grain – SVG noise, embedded */
  --grain:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");

  /* — Shadows (refined, layered, low-saturation) — */
  --shadow-xs:0 1px 1px rgba(20,38,22,.04);
  --shadow-sm:0 1px 2px rgba(20,38,22,.05), 0 2px 6px rgba(20,38,22,.05);
  --shadow-md:0 2px 4px rgba(20,38,22,.05), 0 8px 22px rgba(20,38,22,.08);
  --shadow-lg:0 6px 14px rgba(20,38,22,.08), 0 24px 50px -8px rgba(20,38,22,.16);
  --shadow-xl:0 12px 28px rgba(20,38,22,.10), 0 40px 80px -12px rgba(20,38,22,.22);
  --shadow-inset:inset 0 1px 0 rgba(255,255,255,.55);
  --ring-focus:0 0 0 3px rgba(74,115,81,.18);

  /* — Radii — */
  --radius-xs:8px;
  --radius-sm:12px;
  --radius:16px;
  --radius-lg:22px;
  --radius-xl:28px;

  /* — Typography — */
  --font-display:"Fraunces","Cormorant Garamond",Georgia,"Times New Roman",serif;
  --font-body:"Inter Tight","Hanken Grotesk",-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;

  /* — Layout — */
  --sidebar-w:268px;
  --safe-b:env(safe-area-inset-bottom,0px);
  --safe-t:env(safe-area-inset-top,0px);

  /* — Motion — */
  --ease-out:cubic-bezier(.22,.61,.36,1);
  --ease-spring:cubic-bezier(.32,1.4,.42,.96);
  --t-fast:.12s;
  --t:.18s;
  --t-slow:.28s;
}


/* ──────────────────────────────────────────────────────────
   2. RESET & BASE
   ────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;max-width:100vw;overflow-x:hidden}
@media (max-width:1023px){
  /* Root + body painted the dock's green so the bottom safe-area / home-indicator
     zone can never show the light page background (kills the white strip for good). */
  html{background:#11301d !important}
  body{background:#11301d}
  body.chat-thread-open::before{display:none}
}
body{
  font-family:var(--font-body);
  font-feature-settings:"ss01","cv11";
  background:var(--bg);
  color:var(--ink-900);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  overscroll-behavior-y:none;
  line-height:1.55;
  letter-spacing:-.005em;
}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit;letter-spacing:inherit}
input,textarea,select{font-family:inherit;font-size:max(16px,1em);letter-spacing:inherit;color:inherit}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
::selection{background:var(--sage-200);color:var(--forest-900)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:rgba(60,80,55,.22);border-radius:8px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:rgba(60,80,55,.36);background-clip:padding-box;border:2px solid transparent}
::-webkit-scrollbar-track{background:transparent}


/* ──────────────────────────────────────────────────────────
   3. APP SHELL
   ────────────────────────────────────────────────────────── */
#app{min-height:100dvh;max-width:100vw;overflow-x:hidden}

.shell{
  display:flex;min-height:100dvh;
  background:var(--bg-grad);
  position:relative;
}
.shell::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:var(--grain);
  opacity:.35;
  mix-blend-mode:multiply;
}
.shell > *{position:relative;z-index:1}

/* ---- Desktop sidebar ---- */
.sidebar{
  width:var(--sidebar-w);flex-shrink:0;
  background:
    radial-gradient(ellipse 90% 40% at 0% 0%, rgba(95,138,100,.22) 0%, transparent 60%),
    linear-gradient(178deg,var(--forest-800) 0%,var(--forest-950) 100%);
  color:var(--cream-50);
  display:flex;flex-direction:column;
  padding:24px 16px 18px;
  position:sticky;top:0;height:100dvh;
  border-right:1px solid rgba(0,0,0,.25);
  box-shadow:inset -1px 0 0 rgba(255,255,255,.04);
}
.sidebar::after{
  content:"";position:absolute;inset:0;
  background:var(--grain);opacity:.16;mix-blend-mode:overlay;pointer-events:none;
}
.sidebar-brand{
  display:flex;align-items:center;gap:11px;
  padding:6px 8px 24px;position:relative;
}
.sidebar-brand img{
  width:42px;height:42px;object-fit:contain;object-position:center;flex-shrink:0;
  background:transparent;padding:0;border:0;outline:0;border-radius:0;
  box-shadow:none;filter:none;
}
.sidebar-brand .bname{
  font-family:var(--font-display);font-weight:600;font-size:16px;
  letter-spacing:-.01em;line-height:1.1;color:#fbf8f0;
}
.sidebar-brand .btag{
  font-size:10.5px;color:var(--sage-300);font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;margin-top:3px;
}

.nav-group-label{
  font-size:10px;text-transform:uppercase;letter-spacing:.18em;
  color:var(--sage-400);font-weight:700;padding:18px 12px 8px;
}
.nav-item{
  display:flex;align-items:center;gap:12px;
  padding:11px 12px;border-radius:11px;
  color:rgba(232,240,225,.74);font-weight:600;font-size:14px;
  transition:background var(--t-fast) var(--ease-out), color var(--t-fast) var(--ease-out);
  position:relative;letter-spacing:-.005em;
}
.nav-item svg{width:19px;height:19px;flex-shrink:0;opacity:.82}
.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}
.nav-item:hover svg{opacity:1}
.nav-item.active{
  background:linear-gradient(100deg,rgba(189,112,72,.22),rgba(122,152,123,.18));
  color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.nav-item.active svg{opacity:1}
.nav-item.active::before{
  content:"";position:absolute;left:-16px;top:50%;transform:translateY(-50%);
  width:4px;height:24px;border-radius:0 4px 4px 0;
  background:linear-gradient(180deg,var(--clay-400),var(--clay-600));
  box-shadow:0 0 12px rgba(189,112,72,.55);
}
.nav-item .nav-badge{
  margin-left:auto;background:var(--clay-500);color:#fff;
  font-size:11px;font-weight:700;min-width:20px;height:20px;
  border-radius:10px;display:grid;place-items:center;padding:0 6px;
  box-shadow:0 2px 6px rgba(120,55,30,.4);
}
.sidebar-foot{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}
.side-user{
  display:flex;align-items:center;gap:11px;padding:10px;
  border-radius:13px;transition:background var(--t-fast);
}
.side-user:hover{background:rgba(255,255,255,.06)}
.side-user .avatar{flex-shrink:0;box-shadow:0 0 0 2px rgba(255,255,255,.12)}
.side-user .su-name{font-size:13.5px;font-weight:700;line-height:1.15;letter-spacing:-.01em}
.side-user .su-role{
  font-size:10.5px;color:var(--sage-300);text-transform:uppercase;
  letter-spacing:.08em;font-weight:700;margin-top:2px;
}
.side-logout{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:#e98a72;font-weight:800;font-size:12px;padding:7px 13px;border-radius:999px;transition:all var(--t-fast);background:rgba(231,109,90,.16);border:1px solid rgba(231,109,90,.4)}
.side-logout:hover{color:#fff;background:rgba(231,109,90,.9);border-color:transparent}
.side-logout svg{width:15px;height:15px;display:block;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* ---- Main column ---- */
.main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:100dvh}

.topbar{
  position:sticky;top:0;z-index:40;
  display:flex;align-items:center;gap:14px;
  padding:calc(18px + var(--safe-t)) clamp(18px,3vw,36px) 17px;
  background:
    radial-gradient(ellipse 60% 100% at 30% 0%, rgba(95,138,100,.25) 0%, transparent 60%),
    linear-gradient(120deg,var(--forest-700) 0%,var(--forest-800) 60%,var(--forest-900) 100%);
  border-bottom:1px solid rgba(0,0,0,.22);
  box-shadow:0 6px 22px -10px rgba(15,30,18,.45);
}
.topbar::after{
  content:"";position:absolute;inset:0;background:var(--grain);
  opacity:.14;mix-blend-mode:overlay;pointer-events:none;
}
.topbar h1{
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(22px,3.4vw,29px);letter-spacing:-.02em;line-height:1.05;
  color:#fbf8f0;position:relative;
}
.topbar .sub{
  font-size:12.5px;color:var(--sage-300);font-weight:500;
  margin-top:3px;position:relative;letter-spacing:.005em;
}
.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:9px;position:relative}

.icon-btn{
  width:42px;height:42px;border-radius:13px;display:grid;place-items:center;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  color:#eef3e8;
  transition:transform var(--t-fast),background var(--t-fast),box-shadow var(--t-fast);
  position:relative;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.icon-btn:hover{background:rgba(255,255,255,.18);box-shadow:0 4px 14px rgba(0,0,0,.18)}
.icon-btn:active{transform:scale(.94)}
.icon-btn svg{width:20px;height:20px}
.icon-btn .dot{
  position:absolute;top:8px;right:9px;width:9px;height:9px;border-radius:50%;
  background:var(--clay-500);border:2px solid var(--forest-800);
  box-shadow:0 0 8px rgba(189,112,72,.6);
}

.content{flex:1;padding:clamp(18px,2.8vw,32px) clamp(14px,3vw,36px) 40px;max-width:1180px;width:100%;margin:0 auto}
@media (max-width:1023px){ .content{padding-bottom:calc(112px + var(--safe-b))} }

/* page enter */
.page{animation:pageIn .28s var(--ease-out)}
@keyframes pageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (max-width:1023px){
  .sidebar{display:none}
  /* active = vivid green pill */
  .mtab.active{
    background:linear-gradient(180deg,#1ba257 0%,#128442 48%,#0b6f34 100%);
    border-color:rgba(255,255,255,.22);
    box-shadow:0 10px 20px rgba(13,111,52,.30), inset 0 1px 0 rgba(255,255,255,.26), inset 0 -1px 0 rgba(0,48,21,.18);
    transform:translateY(-1px);
  }
  .mtab.active > svg{
    background:rgba(255,255,255,.18);
    border-color:rgba(255,255,255,.20);
    color:#fff;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.24);
  }
  .mtab.active span{color:#fff;font-weight:900}
  /* lime underline dot on active */
  .mtab.active::after{
    content:"";position:absolute;left:50%;bottom:4px;
    width:20px;height:3px;border-radius:999px;transform:translateX(-50%);
    background:rgba(215,239,143,.95);
    box-shadow:0 1px 5px rgba(215,239,143,.4);
  }
  .mtab .nav-badge{
    position:absolute;top:1px;right:50%;margin-right:-20px;
    background:linear-gradient(180deg,#ff6978,#df3045);color:#fff;
    font-size:9.5px;font-weight:950;line-height:1;
    min-width:18px;height:18px;border-radius:999px;display:grid;place-items:center;padding:0 4px;
    border:2px solid #fffaf2;
    box-shadow:0 4px 9px rgba(210,35,55,.30);
  }
}
@media (max-width:380px){
}


/* ──────────────────────────────────────────────────────────
   4. PRIMITIVES
   ────────────────────────────────────────────────────────── */
.avatar{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;
  display:grid;place-items:center;font-weight:700;font-size:14px;color:#fff;
  background:linear-gradient(135deg,var(--forest-500),var(--forest-700));
  letter-spacing:.02em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 1px 2px rgba(20,38,22,.18);
}
.avatar.sm{width:30px;height:30px;font-size:11.5px}
.avatar.lg{width:64px;height:64px;font-size:23px;border-radius:20px;font-family:var(--font-display);font-weight:600}
.avatar.clay{background:linear-gradient(135deg,var(--clay-500),var(--clay-700))}
.avatar.sage{background:linear-gradient(135deg,var(--sage-500),var(--forest-600))}

.card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  position:relative;
}
.card-pad{padding:clamp(16px,2.4vw,22px)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:46px;padding:0 20px;border-radius:13px;
  font-weight:700;font-size:14.5px;letter-spacing:-.005em;
  transition:transform .08s,box-shadow var(--t-fast),background var(--t-fast),opacity var(--t-fast);
  white-space:nowrap;
}
.btn svg{width:18px;height:18px}
.btn:active{transform:translateY(1px) scale(.98)}

.btn-primary{
  background:linear-gradient(140deg,var(--forest-600),var(--forest-800));
  color:#fff;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.15),
    0 1px 2px rgba(15,30,18,.2),
    0 8px 18px -2px rgba(30,60,30,.28);
}
.btn-primary:hover{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    0 2px 4px rgba(15,30,18,.22),
    0 12px 26px -2px rgba(30,60,30,.36);
}
.btn-clay{
  background:linear-gradient(140deg,var(--clay-500),var(--clay-700));
  color:#fff;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    0 8px 18px -2px rgba(140,75,40,.32);
}
.btn-clay:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 12px 26px -2px rgba(140,75,40,.42)}
.btn-ghost{
  background:var(--paper);
  border:1px solid var(--line-strong);
  color:var(--forest-700);
  box-shadow:var(--shadow-xs);
}
.btn-ghost:hover{background:#fff;border-color:var(--line-deep);box-shadow:var(--shadow-sm)}
.btn-soft{background:var(--sage-100);color:var(--forest-700);border:1px solid rgba(74,115,81,.1)}
.btn-soft:hover{background:var(--sage-200);border-color:rgba(74,115,81,.18)}
.btn-sm{height:38px;padding:0 14px;font-size:13px;border-radius:11px}
.btn-block{width:100%}
.btn-danger{background:#fff;border:1px solid rgba(168,57,47,.3);color:#a8392f}
.btn-danger:hover{background:#fdf0ee;border-color:rgba(168,57,47,.45)}

.pill{
  display:inline-flex;align-items:center;gap:5px;
  height:24px;padding:0 10px;border-radius:8px;
  font-size:11.5px;font-weight:700;letter-spacing:.005em;
  white-space:nowrap;
}
.pill-green{background:linear-gradient(135deg,#d6f3dd,#b6e6c2);color:#1c5e30;border:1px solid rgba(74,140,90,.35);font-weight:800}
.pill-clay{background:var(--clay-100);color:var(--clay-700);border:1px solid rgba(140,75,40,.16)}
.pill-amber{background:var(--status-warn-bg);color:var(--status-warn);border:1px solid rgba(180,135,30,.18)}
.pill-red{background:var(--status-bad-bg);color:var(--status-bad);border:1px solid rgba(168,57,47,.18)}
.pill-blue{background:var(--status-info-bg);color:var(--status-info);border:1px solid rgba(60,90,135,.18)}
.pill-grey{background:var(--cream-200);color:var(--ink-600);border:1px solid var(--line-strong)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}

.field{display:grid;gap:7px;margin-bottom:15px}
.field label{font-size:12.5px;font-weight:700;color:var(--ink-700);letter-spacing:.005em}
.input{
  height:48px;width:100%;
  border:1.5px solid var(--line-strong);border-radius:12px;
  background:#fff;
  padding:0 14px;font-size:15px;color:var(--ink-900);
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
textarea.input{height:auto;padding:12px 14px;line-height:1.5;resize:vertical;min-height:84px}
select.input{
  appearance:none;-webkit-appearance:none;
  /* Chevron sits inside a soft green rounded 'button' on the right so it reads
     clearly as a tappable dropdown rather than a flat box with a faint arrow. */
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23385c3d' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"),
    linear-gradient(180deg,#eef3e7,#e4ecdc);
  background-repeat:no-repeat,no-repeat;
  background-position:right 12px center,right 4px center;
  background-size:17px,34px 40px;
  padding-right:46px;
  border-radius:13px;
  cursor:pointer;
  font-weight:650;
}
select.input:hover{border-color:var(--forest-400,#6f9a6f)}
select.input:focus{
  border-color:var(--forest-500);box-shadow:var(--ring-focus);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"),
    linear-gradient(180deg,var(--forest-600,#385c3d),var(--forest-700,#2c4a30));
  background-repeat:no-repeat,no-repeat;
  background-position:right 12px center,right 4px center;
  background-size:17px,34px 40px;
}
.input:focus{outline:0;border-color:var(--forest-500);box-shadow:var(--ring-focus)}
.input::placeholder{color:var(--ink-400)}

.section-head{display:flex;align-items:center;gap:12px;margin:6px 0 18px}
.section-head h2{
  font-family:var(--font-display);font-weight:500;font-size:22px;
  letter-spacing:-.022em;color:var(--ink-900);
}
.section-head .count{font-size:12.5px;color:var(--ink-500);font-weight:600}
.section-head .spacer{margin-left:auto}
.eyebrow{
  font-size:10.5px;font-weight:800;letter-spacing:.18em;
  text-transform:uppercase;color:var(--clay-600);
}

.empty{text-align:center;padding:48px 20px;color:var(--ink-500)}
.empty svg{width:42px;height:42px;opacity:.4;margin-bottom:12px}
.empty p{font-size:14px;font-weight:600}

/* Toast */
.toast{
  position:fixed;left:50%;bottom:calc(100px + var(--safe-b));
  transform:translateX(-50%) translateY(20px);
  background:var(--forest-900);color:#fff;
  padding:13px 20px;border-radius:14px;
  font-weight:600;font-size:14px;letter-spacing:-.005em;
  box-shadow:var(--shadow-lg);z-index:200;
  opacity:0;pointer-events:none;
  transition:opacity .2s,transform .2s var(--ease-out);
  max-width:90vw;text-align:center;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(min-width:1024px){.toast{bottom:32px}}
.login-root::before{
  content:"";position:absolute;inset:0;
  background:var(--grain);opacity:.18;mix-blend-mode:overlay;pointer-events:none;
}
@media(min-width:880px){
}
@media(min-width:880px){}
.login-card{
  width:100%;max-width:420px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:34px 32px 28px;
  box-shadow:var(--shadow-lg);
  position:relative;
}
.login-card h3{
  font-family:var(--font-display);font-weight:500;font-size:28px;
  letter-spacing:-.025em;color:var(--ink-900);
}
.pw-wrap{position:relative}
.pw-eye{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  width:40px;height:40px;display:grid;place-items:center;
  color:var(--ink-500);border-radius:10px;
}
.pw-eye:hover{color:var(--forest-700);background:var(--cream-100)}
.pw-eye svg{width:18px;height:18px}
.login-err{
  display:none;
  background:var(--status-bad-bg);border:1px solid rgba(168,57,47,.25);
  color:var(--status-bad);border-radius:11px;
  padding:11px 13px;font-size:13px;font-weight:600;margin-bottom:14px;
}
.login-err.show{display:block}
.chip{
  padding:6px 13px;border-radius:9px;
  background:var(--sage-100);color:var(--forest-700);
  font-size:12.5px;font-weight:700;
  border:1px solid rgba(74,115,81,.14);
  transition:background var(--t-fast),border-color var(--t-fast);
}
.chip:hover{background:var(--sage-200);border-color:rgba(74,115,81,.22)}
.login-foot{margin-top:24px;font-size:11.5px;color:var(--ink-500);text-align:center;line-height:1.5;letter-spacing:.005em}


/* ──────────────────────────────────────────────────────────
   6. STAT CARDS & QUICK ACTIONS
   ────────────────────────────────────────────────────────── */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.stat-grid.two{grid-template-columns:repeat(2,1fr);max-width:520px}
@media(max-width:860px){.stat-grid{grid-template-columns:repeat(2,1fr)}}
.stat{
  background:linear-gradient(180deg,var(--paper) 0%,#fffbf2 100%);
  border:1px solid var(--line);
  border-radius:15px;
  padding:11px 13px;
  box-shadow:var(--shadow-xs);
  position:relative;overflow:hidden;
}
.stat::after{
  content:"";position:absolute;right:-18px;top:-18px;width:56px;height:56px;
  border-radius:50%;background:var(--sage-100);opacity:.5;
}
.stat.sage::after{background:var(--sage-200);opacity:.55}
.stat.clay::after{background:var(--clay-100);opacity:.6}
.stat-v{
  font-family:var(--font-display);font-weight:500;font-size:23px;
  letter-spacing:-.025em;line-height:1;position:relative;
  color:var(--ink-900);font-variant-numeric:tabular-nums;
}
.stat-l{font-size:11.5px;font-weight:700;color:var(--ink-700);margin-top:5px;position:relative;letter-spacing:-.005em}
.stat-s{font-size:10.5px;color:var(--ink-500);margin-top:2px;position:relative;letter-spacing:.005em}





@media(max-width:560px){}


/* ──────────────────────────────────────────────────────────
   7. SHIFT CARDS & ROSTER
   ────────────────────────────────────────────────────────── */
.shift-card{
  position:relative;display:flex;background:#fff;
  border:1px solid color-mix(in srgb,var(--solid) 22%,var(--line));
  border-radius:14px;overflow:hidden;margin-bottom:8px;cursor:pointer;
  --solid:#2f7d4a;--deep:#1f5e34;
  box-shadow:
    0 1px 2px rgba(20,30,20,.04),
    0 3px 9px -6px color-mix(in srgb,var(--solid) 28%,transparent),
    0 0 0 1px color-mix(in srgb,var(--solid) 8%,transparent);
  transition:transform var(--t-fast) var(--ease-out),box-shadow var(--t-fast),border-color var(--t-fast);
}
.shift-card::after{
  content:"";position:absolute;bottom:0;right:0;width:90px;height:90px;
  background:radial-gradient(circle at bottom right,color-mix(in srgb,var(--solid) 14%,transparent),transparent 70%);
  pointer-events:none;
}
.shift-card:hover{
  transform:translateY(-2px);
  border-color:color-mix(in srgb,var(--solid) 40%,var(--line));
  box-shadow:
    0 2px 4px rgba(20,30,20,.05),
    0 14px 30px -10px color-mix(in srgb,var(--solid) 50%,transparent);
}
.shift-card:active{transform:translateY(0) scale(.994)}
.shift-card.is-draft{background:repeating-linear-gradient(135deg,#fff,#fff 9px,#faf9f4 9px,#faf9f4 18px)}
.sc-status.published{color:var(--forest-700);background:var(--sage-100)}
.sc-status.draft{color:var(--status-warn);background:var(--status-warn-bg)}
.sc-publish.unpub{background:var(--status-bad-bg);color:var(--status-bad)}
.sc-publish.pub{background:var(--sage-100);color:var(--forest-700)}
.sc-emp-state.declined{background:var(--status-bad-bg);color:var(--status-bad)}
.sc-av.more,.sc-av.empty{background:var(--cream-200);color:var(--ink-500)}

/* Activity */
.activity{padding:6px 0}
.act-row{display:flex;align-items:center;gap:11px;padding:11px 18px;font-size:13.5px;border-bottom:1px solid var(--line)}
.act-row:last-child{border-bottom:0}
.act-row svg{width:17px;height:17px;color:var(--clay-500);flex-shrink:0}
.act-row span{flex:1;min-width:0}
.act-row time{font-size:11.5px;color:var(--ink-400);font-weight:600;white-space:nowrap}

/* Roster head */
.roster-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.rh-nav{
  width:36px;height:36px;border-radius:10px;display:grid;place-items:center;
  background:var(--cream-100);color:var(--forest-700);flex-shrink:0;
  transition:background var(--t-fast);
}
.rh-nav:hover{background:var(--sage-100)}
.rh-nav svg{width:17px;height:17px}
.rh-label{flex:1;text-align:center;min-width:0}
.rh-label strong{
  display:block;font-family:var(--font-display);font-size:16px;font-weight:500;
  letter-spacing:-.012em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rh-label span{font-size:11.5px;color:var(--ink-500);font-weight:600}

/* Day chips */
.day-row{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:14px}
.dchip:active{transform:scale(.95)}
.dchip.today:not(.sel){border-color:var(--clay-300);background:linear-gradient(180deg,#fff,var(--clay-100))}
.dchip.sel{
  background:linear-gradient(160deg,var(--forest-600),var(--forest-800));
  border-color:transparent;box-shadow:var(--shadow-md);
}
.dchip.sel .dc-dow{color:rgba(255,255,255,.72)}
.dchip.sel .dc-num{color:#fff}
.dchip.today:not(.sel) .dc-num{color:var(--clay-700)}
.dc-dot.on{background:var(--clay-500);color:#fff;box-shadow:0 1px 3px rgba(140,75,40,.32)}
.dchip.sel .dc-dot.on{background:rgba(255,255,255,.24);color:#fff;box-shadow:none}

/* Roster: mobile vs desktop */
.roster-week{display:none}
@media(min-width:1024px){
  .roster-mobile{display:none}
  .roster-week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:18px}
  .day-row{display:none}
  .rst-days{display:none}
}
.wk-col{
  background:var(--paper);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow-sm);overflow:hidden;
  display:flex;flex-direction:column;min-height:340px;
}
.wk-col.today{border-color:var(--clay-300);box-shadow:0 0 0 1px var(--clay-300),var(--shadow-sm)}
.wk-colhead{
  display:flex;flex-direction:column;align-items:center;gap:1px;
  padding:12px 4px;background:var(--cream-50);border-bottom:1px solid var(--line);
}
.wk-col.today .wk-colhead{background:linear-gradient(180deg,var(--clay-100),#f9e7d5)}
.wk-dow{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-500)}
.wk-num{font-family:var(--font-display);font-size:19px;font-weight:600;letter-spacing:-.015em}
.wk-col.today .wk-num{color:var(--clay-700)}
.wk-cells{flex:1;padding:8px;display:flex;flex-direction:column;gap:7px}
.wk-cell{
  position:relative;border:1px solid var(--line);border-radius:11px;
  padding:9px 10px 9px 14px;cursor:pointer;
  transition:box-shadow var(--t-fast),transform .1s,border-color var(--t-fast);
  --accent:#2f7d4a;--accent-deep:#1f5e34;
  background:#fff;overflow:hidden;
}
.wk-cell::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(var(--accent),var(--accent-deep));
}
.wk-cell:hover{
  transform:translateY(-2px);
  border-color:color-mix(in srgb,var(--accent) 32%,var(--line));
  box-shadow:0 6px 16px -6px color-mix(in srgb,var(--accent) 36%,transparent);
}
.wkc-time{font-size:11px;font-weight:800;color:var(--accent-deep)}
.wkc-name{font-size:13px;font-weight:700;margin:2px 0 3px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-900);letter-spacing:-.005em}
.wkc-dur{font-size:10px;color:var(--accent-deep);font-weight:800;background:color-mix(in srgb,var(--accent) 13%,#fff);display:inline-block;padding:2px 8px;border-radius:7px}
.wkc-status{display:inline-flex;margin-top:6px;padding:2px 7px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.wkc-status.published{background:var(--sage-100);color:var(--forest-700)}
.wkc-status.draft{background:var(--status-warn-bg);color:var(--status-warn)}
.wk-cell.unpublished{background:repeating-linear-gradient(135deg,#fff,#fff 8px,#faf9f4 8px,#faf9f4 16px)}
.wk-empty{text-align:center;color:var(--ink-400);font-size:13px;padding:8px}
.clock-hero.live{
  text-align:center;
  background:radial-gradient(ellipse at 50% -10%,var(--sage-100) 0%,var(--paper) 60%);
}
.ring-fg{fill:none;stroke:var(--forest-500);stroke-width:9;stroke-linecap:round;stroke-dasharray:339;stroke-dashoffset:339;transition:stroke-dashoffset 1s linear}
.clock-hero.idle{display:flex;flex-direction:column;gap:18px}
.clock-shift.done{opacity:.66}
.clock-shift.done .cks-bar{background:var(--sage-300)}
.cks-btn:active{transform:scale(.95)}
.rec-ic.g{background:var(--sage-100);color:var(--forest-600)}
.rec-ic.a{background:var(--status-warn-bg);color:var(--status-warn)}
.rec-ic.r{background:var(--status-bad-bg);color:var(--status-bad)}
.rec-ic.b{background:var(--status-info-bg);color:var(--status-info)}
.rec-row.locked{background:linear-gradient(135deg,#fffdf8,#f5f1e9)}
.rr-note{font-size:12px;color:var(--ink-700);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rr-note.muted{color:var(--ink-400);font-style:italic}

/* Clock-out modal */
.co-summary{
  background:linear-gradient(135deg,var(--cream-100),var(--sage-50));
  border:1px solid var(--line);
  border-radius:14px;padding:16px 18px;margin-bottom:16px;text-align:center;
}
.co-client{font-family:var(--font-display);font-size:20px;font-weight:500;letter-spacing:-.018em}
.co-time{font-size:13px;color:var(--ink-500);margin-top:4px}
.co-time strong{color:var(--forest-700);font-weight:800}
.co-hint{font-size:12px;color:var(--ink-500);text-align:center;margin-top:4px;line-height:1.5}
.co-check{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;cursor:pointer}
.co-check input{width:20px;height:20px;accent-color:var(--forest-600)}
.clock-admin-hero .rh-nav{
  width:44px!important;height:44px!important;border-radius:50%!important;
  background:rgba(255,255,255,.16)!important;
  border:1.5px solid rgba(255,255,255,.34)!important;
  color:#fff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 8px 18px rgba(0,0,0,.14)!important;
}
.clock-admin-hero .rh-nav:hover{background:rgba(255,255,255,.26)!important}
.cd-card.empty{background:#fbf9f3;border-style:dashed;opacity:.72}
.cd-card.empty::before{opacity:.3}
.cd-card.empty .cd-mid strong,.cd-card.empty .cd-wages{color:#98a2b3;font-weight:500}
.cd-card.today{box-shadow:0 14px 30px rgba(20,31,19,.13), 0 0 0 2px rgba(204,143,98,.42)}
.cd-card.today .cd-date strong::after{
  content:" · today";font-weight:700;letter-spacing:.04em;color:var(--clay-600);text-transform:none;
}

/* Section head hint */
.section-head .hint{
  display:none;color:var(--ink-400);font-size:11.5px;font-weight:600;
  font-style:italic;margin-left:8px;
}
@media (min-width:640px){ .section-head .hint{display:inline} }
.clock-emp{
  overflow:hidden;background:#fff;border-radius:22px;
  border:1px solid rgba(22,99,45,.10);
  box-shadow:0 14px 32px rgba(20,31,19,.08);transition:box-shadow var(--t);
}
.clock-emp[open]{box-shadow:0 18px 38px rgba(20,31,19,.12)}
.clock-emp summary{
  display:grid;grid-template-columns:54px minmax(0,1fr) auto auto;
  align-items:center;gap:13px;padding:13px 16px;cursor:pointer;list-style:none;
  transition:background var(--t-fast);
}
.clock-emp summary::-webkit-details-marker{display:none}
.clock-emp summary:hover{background:#fcf9f1}
.clock-emp .ce-avatar{
  width:52px;height:52px;border-radius:50%;
  background:radial-gradient(circle at 34% 20%,#f5ffe9 0%,#d9f4c7 58%,#bcebad 100%);
  color:#0c8d30;display:grid;place-items:center;font-size:18px;font-weight:900;letter-spacing:-.01em;
  box-shadow:inset 0 0 0 1px rgba(12,141,48,.10);
}
.clock-emp .ce-info{min-width:0}
.clock-emp .ce-info strong{display:block;font-size:16.5px;color:#111827;font-weight:800;letter-spacing:-.02em;line-height:1.1}
.clock-emp .ce-info em{display:block;font-style:normal;color:#4b5563;font-size:12.5px;font-weight:700;margin-top:3px;font-variant-numeric:tabular-nums}
.clock-emp .ce-pill{
  height:28px;padding:0 11px;border-radius:999px;font-size:11.5px;font-weight:900;
  display:inline-flex;align-items:center;white-space:nowrap;letter-spacing:.01em;
}
.clock-emp .ce-pill.amber{background:#fff0dc;color:#c46300}
.clock-emp .ce-pill.red{background:#fde2e2;color:#c11616}
.clock-emp .ce-pill.green{background:#dcf8dc;color:#179131}
.clock-emp .ce-pill.grey{background:#ecf0eb;color:#4b5563}
.clock-emp .ce-chev{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--ink-400);transform:rotate(180deg);transition:transform var(--t) var(--ease-spring)}
.clock-emp .ce-chev svg{width:14px;height:14px}
.clock-emp[open] .ce-chev{transform:rotate(270deg)}
.clock-emp .ce-body{padding:0 14px 14px;border-top:1px solid rgba(15,30,21,.06)}
.clock-emp .ce-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}
.clock-emp .ce-stats > div{
  background:linear-gradient(180deg,#fff,#f7f3e9);border:1px solid rgba(22,99,45,.10);
  border-radius:14px;padding:9px 6px;text-align:center;
}
.clock-emp .ce-stats b{display:block;font-family:var(--font-display);font-size:15px;font-weight:500;color:#0f1e15;letter-spacing:-.01em;font-variant-numeric:tabular-nums;line-height:1.1}
.clock-emp .ce-stats em{display:block;font-style:normal;font-size:9.5px;font-weight:800;color:#4b5563;text-transform:uppercase;letter-spacing:.06em;margin-top:3px}
.clock-emp .ce-records{display:grid;gap:10px}
.clock-emp .ce-hint{margin-top:10px;font-size:11.5px;color:var(--ink-400);font-style:italic;text-align:center;letter-spacing:.01em}

/* Colourful timesheet entry cards (replaces rec-row) */
.ts-list{display:grid;gap:10px}
.ts-card .ts-pill.approved{background:#dff8da;color:#16862e}
.ts-card .ts-pill.pending{background:#fff0dc;color:#c46300}
.ts-card .ts-pill.flagged{background:#fde2e2;color:#c11616}
.ts-card .ts-pill.paid{background:#e0eaff;color:#1741b0}
.ts-card .ts-variance.ok{color:#16862e}
.ts-card .ts-variance.warn{color:#b97000}
.ts-card .ts-variance.bad{color:#b91c1c}
.ts-card.locked{opacity:.82}
.ts-card.review .ts-actions{grid-column:1 / -1;display:flex;gap:8px;margin-top:9px;padding-top:9px;border-top:1px solid rgba(148,163,184,.26)}
.ts-card.review .ts-actions .btn{flex:1;height:38px;font-size:13px}
.ts-card .ts-actions{grid-column:1 / -1;display:flex;gap:7px;margin-top:9px;padding-top:9px;border-top:1px solid rgba(148,163,184,.26)}
.ts-card .ts-actions .btn{flex:1;height:36px;font-size:12.5px}
.clock-emp-hero .che-actions .rh-nav{
  width:38px!important;height:38px!important;border-radius:50%!important;
  background:rgba(255,255,255,.18)!important;border:1.5px solid rgba(255,255,255,.34)!important;color:#fff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 6px 14px rgba(0,0,0,.14)!important;
}
.clock-emp-hero .che-actions .rh-nav:hover{background:rgba(255,255,255,.28)!important}
.emp-dropdown .ed-copy{flex:1;min-width:0;position:relative;z-index:1}
.emp-dropdown .ed-copy strong{display:block;font-family:var(--font-display);font-size:17px;font-weight:600;letter-spacing:-.015em}
.emp-dropdown .ed-copy span{display:block;font-size:11.5px;font-weight:600;color:rgba(255,253,242,.82);margin-top:2px}
.emp-dropdown > summary .ce-chev{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:#fff;transform:rotate(180deg);transition:transform var(--t) var(--ease-spring);position:relative;z-index:1}
.emp-dropdown > summary .ce-chev svg{width:14px;height:14px}
.emp-dropdown[open] > summary .ce-chev{transform:rotate(270deg)}
.ed-row .ce-pill.amber{background:#fff0dc;color:#c46300}
.ed-row .ce-pill.red{background:#fde2e2;color:#c11616}
.ed-row .ce-pill.green{background:#dcf8dc;color:#179131}
.ed-row .ce-pill.grey{background:#ecf0eb;color:#4b5563}
.ed-row .ce-chev.open{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--ink-300);transform:rotate(180deg)}
.ed-row .ce-chev.open svg{width:13px;height:13px}

/* Day chips */
.ts-day-row{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:12px 0}
.ts-chip.today{border-color:rgba(204,143,98,.55);box-shadow:0 6px 14px rgba(204,143,98,.18)}
.ts-chip.today span{color:var(--clay-700)}
.ts-chip.sel{background:linear-gradient(135deg,#06461e 0%,#0e7734 100%);border-color:transparent;box-shadow:0 8px 20px rgba(14,119,52,.32)}
.ts-chip.sel span,.ts-chip.sel strong,.ts-chip.sel em{color:#fff}

/* Selected-day card */
.ts-day-card{padding:14px 14px 16px;border-radius:20px}
.ts-day-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px;
  position:sticky;top:8px;z-index:5;
  background:linear-gradient(180deg,#fff 70%,rgba(255,255,255,0));
  padding:8px 4px 10px;margin:-8px -4px 8px;border-radius:12px;
}
.ts-day-head strong{display:block;font-size:14.5px;font-weight:800;color:#111827;letter-spacing:-.015em}
.ts-day-head span{display:block;font-size:11.5px;color:var(--ink-500);font-weight:600;margin-top:2px}

/* Exports accordion */
.clock-exports{margin-top:18px;overflow:hidden;border-radius:18px;background:#fff;border:1px solid rgba(22,99,45,.10);box-shadow:0 10px 22px rgba(20,31,19,.06)}
.clock-exports summary{display:flex;align-items:center;gap:10px;list-style:none;padding:14px 16px;cursor:pointer;background:linear-gradient(180deg,#fbf8ee,#f4eedf);transition:background var(--t-fast)}
.clock-exports[open] summary{border-bottom:1px solid rgba(15,30,21,.06)}
.clock-exports summary::-webkit-details-marker{display:none}
.clock-exports summary:hover{background:#f4eedf}
.clock-exports summary strong{font-size:13.5px;font-weight:800;color:var(--forest-900);letter-spacing:-.005em}
.clock-exports summary span:not(.ce-chev){color:var(--ink-500);font-size:11.5px;font-weight:700;flex:1}
.clock-exports .ce-chev{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--ink-400);transform:rotate(180deg);transition:transform var(--t) var(--ease-spring)}
.clock-exports .ce-chev svg{width:13px;height:13px}
.clock-exports[open] .ce-chev{transform:rotate(270deg)}
.clock-exports .cx-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px}
.clock-exports .cx-grid .btn{justify-content:center;height:42px}
.clock-exports .cx-note{margin:0 14px 14px;font-size:11px;color:var(--ink-400);font-style:italic;text-align:center}

.ts-review{margin-bottom:11px}
.ts-head{display:flex;align-items:center;gap:11px;margin-bottom:13px}
.ts-head strong{font-size:14.5px;font-weight:700;display:block;letter-spacing:-.005em}
.ts-head span{font-size:12px;color:var(--ink-500)}
.ts-head .pill{margin-left:auto}
.ts-actions{display:flex;gap:9px}
.ts-actions .btn{flex:1}

.variance{
  font-size:11.5px;font-weight:800;border-radius:10px;
  padding:5px 9px;margin-top:5px;display:inline-block;letter-spacing:.005em;
}
.variance.ok{background:var(--status-ok-bg);color:var(--status-ok)}
.variance.warn{background:var(--status-warn-bg);color:var(--status-warn)}
.variance.bad{background:var(--status-bad-bg);color:var(--status-bad)}
.variance.neutral{background:var(--cream-100);color:var(--ink-500)}
.ts-row-actions .btn{height:32px;padding:0 10px;font-size:12px}


/* ──────────────────────────────────────────────────────────
   10. CHAT
   ────────────────────────────────────────────────────────── */
.chat-shell{display:flex;gap:16px;height:calc(100dvh - 160px);min-height:420px}
@media(max-width:1023px){.chat-shell{height:calc(100dvh - 160px - var(--safe-b))}}
.chat-list{
  width:340px;flex-shrink:0;
  background:var(--paper);border:1px solid var(--line);
  border-radius:18px;box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;overflow:hidden;
}
.cl-threads{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:6px}
.ct-row{
  display:flex;align-items:center;gap:10px;width:100%;
  padding:8px 11px;border-radius:12px;text-align:left;
  transition:background var(--t-fast);
}
.ct-row:hover{background:var(--cream-100)}
.ct-row.active{background:var(--sage-100)}
.ct-row .avatar{width:36px;height:36px}
.ct-row .avatar svg{width:17px;height:17px}
.ct-name{font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;color:var(--ink-900);letter-spacing:-.005em}

.chat-thread{
  flex:1;min-width:0;
  background:var(--paper);border:1px solid var(--line);
  border-radius:18px;box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;overflow:hidden;
}
.chat-thread-head{
  display:flex;align-items:center;gap:11px;
  padding:14px 16px;border-bottom:1px solid var(--line);
  background:var(--cream-50);
}
.workphoto-banner{
  display:flex;flex-direction:column;gap:3px;
  padding:11px 18px;
  background:linear-gradient(180deg,#f3f9f1,#fbf8f1);
  border-bottom:1px solid var(--line);
}
.workphoto-banner strong{
  font-size:13px;font-weight:800;color:#1d4d2c;letter-spacing:-.01em;
}
.workphoto-banner span{
  font-size:12px;line-height:1.4;color:#5d6b60;
}
.cth-back{display:grid;width:34px;height:34px;border-radius:10px;place-items:center;color:var(--forest-700);background:var(--cream-100);flex-shrink:0;cursor:pointer}
.cth-back svg{width:18px;height:18px}
.chat-thread-head .avatar{width:40px;height:40px}
.chat-thread-head .avatar svg{width:18px;height:18px}
.cth-info{flex:1;min-width:0}
.cth-name{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.005em}
.cth-sub{font-size:11.5px;color:var(--ink-500);margin-top:1px}
.cth-act{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--cream-100);color:var(--forest-700);flex-shrink:0}
.cth-act svg{width:18px;height:18px}

.chat-scroll{
  flex:1;overflow-y:auto;
  padding:18px;display:flex;flex-direction:column;gap:9px;
  overscroll-behavior:contain;
  background:linear-gradient(180deg,var(--cream-50),var(--paper));
}
.thread-empty,.empty-thread{text-align:center;color:var(--ink-400);font-size:14px;margin:auto;padding:40px}
.msg{display:flex;gap:8px;align-items:flex-end;max-width:78%}
.msg.mine{margin-left:auto;flex-direction:row-reverse}
.msg-av{width:28px;flex-shrink:0}
.bubble{
  background:#fff;border-radius:18px 18px 18px 5px;
  padding:10px 14px;border:1px solid var(--line);
  box-shadow:var(--shadow-xs);
}
.msg.mine .bubble{
  background:linear-gradient(150deg,var(--forest-600),var(--forest-700));
  border-color:transparent;color:#fff;
  border-radius:18px 18px 5px 18px;
  box-shadow:0 2px 8px rgba(30,55,30,.18);
}
.b-author{font-size:11.5px;font-weight:800;color:var(--clay-600);margin-bottom:3px;letter-spacing:.005em}
.b-text{font-size:14px;line-height:1.5;letter-spacing:-.005em}
.bubble time{font-size:10px;color:var(--ink-400);display:block;margin-top:3px;text-align:right}
.msg.mine time{color:rgba(255,255,255,.6)}
.chat-composer{display:flex;gap:9px;padding:13px;border-top:1px solid var(--line);background:var(--cream-50)}
.chat-composer .input{border-radius:23px;background:#fff}
.chat-composer textarea.input{height:46px;min-height:46px}
.csend{
  width:46px;height:46px;padding:0;flex-shrink:0;border-radius:50%;
  background:linear-gradient(140deg,var(--forest-600),var(--forest-800));
  color:#fff;box-shadow:0 4px 12px rgba(30,55,25,.22),inset 0 1px 0 rgba(255,255,255,.15);
}
.chat-readonly{padding:16px;text-align:center;font-size:13px;color:var(--ink-500);border-top:1px solid var(--line);background:var(--cream-50);font-weight:600}

@media(max-width:1023px){
  .chat-shell .chat-thread{display:none}
  .chat-shell.show-thread .chat-list{display:none}
  .chat-shell.show-thread .chat-thread{display:flex}
  .chat-list{width:100%}
  .cth-back{display:grid}
}

.nc-opt{
  display:flex;align-items:center;gap:13px;width:100%;
  padding:15px;border:1px solid var(--line);border-radius:14px;
  margin-bottom:10px;text-align:left;
  transition:background var(--t-fast),border-color var(--t-fast);
}
.nc-opt:hover{background:var(--cream-50);border-color:var(--line-strong)}
.nc-opt>svg:first-child{width:24px;height:24px;color:var(--forest-600);flex-shrink:0}
.nc-opt div{flex:1}
.nc-opt strong{display:block;font-size:14.5px;letter-spacing:-.005em}
.nc-opt span{font-size:12px;color:var(--ink-500)}
.nc-opt>svg:last-child{width:18px;height:18px;color:var(--ink-400);transform:rotate(180deg)}
.dm-list{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow-y:auto}
.dm-pick{display:flex;align-items:center;gap:12px;padding:10px;border-radius:13px;text-align:left;transition:background var(--t-fast)}
.dm-pick:hover{background:var(--cream-100)}
.dmp-name{font-size:14.5px;font-weight:700;letter-spacing:-.005em}
.dmp-sub{font-size:12px;color:var(--ink-500)}
.member-pick{display:flex;flex-wrap:wrap;gap:8px}
.mp-chip{
  display:flex;align-items:center;gap:7px;padding:6px 12px 6px 6px;
  border-radius:22px;border:1.5px solid var(--line);
  font-size:13px;font-weight:700;color:var(--ink-700);
  transition:all var(--t-fast);
}
.mp-chip .avatar{width:26px;height:26px}
.mp-chip.on{background:var(--forest-600);border-color:transparent;color:#fff}
@media(max-width:860px){}
@media(max-width:520px){}
.person-card.client{cursor:default}
.person-card .avatar.lg{margin:0 auto 12px}

/* Documents */
.doc-row{display:flex;align-items:center;gap:13px;padding:13px 18px;border-bottom:1px solid var(--line)}
.doc-row:last-child{border-bottom:0}
.doc-row.sm{padding:9px 0;border:0}
.doc-ic{width:40px;height:40px;border-radius:11px;flex-shrink:0;display:grid;place-items:center;background:var(--cream-200);color:var(--ink-500)}
.doc-ic.green{background:var(--sage-100);color:var(--forest-600)}
.doc-ic.amber{background:var(--clay-100);color:var(--clay-700)}
.doc-ic.grey{background:var(--cream-200);color:var(--ink-500)}
.doc-ic svg{width:19px;height:19px}
.doc-name{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.005em}
.doc-sub{font-size:12px;color:var(--ink-500);margin-top:1px}
.doc-row .pill{margin-left:auto}

.doc-intro{display:flex;align-items:center;gap:14px}
.doc-intro .di-ic{
  width:48px;height:48px;border-radius:14px;flex-shrink:0;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--sage-100),var(--sage-200));
  color:var(--forest-600);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
}
.doc-intro .di-ic svg{width:22px;height:22px}
.doc-intro h3{font-family:var(--font-display);font-size:19px;font-weight:500;letter-spacing:-.018em}
.doc-intro p{font-size:12.5px;color:var(--ink-500);margin-top:3px;line-height:1.45}
.doc-intro .btn{flex-shrink:0;margin-left:auto}
@media(max-width:560px){.doc-intro{flex-wrap:wrap}.doc-intro .btn{margin-left:0;width:100%}}

.doc-card{
  display:flex;align-items:center;gap:12px;
  background:var(--paper);border:1px solid var(--line);
  border-radius:14px;padding:13px 14px;
  box-shadow:var(--shadow-xs);margin-bottom:9px;cursor:pointer;
  transition:box-shadow var(--t-fast),transform .1s;
}
.doc-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}
.doc-card.need{border-color:var(--clay-300);background:linear-gradient(135deg,#fdf6ed,var(--paper))}
.dc-body{flex:1;min-width:0}
.doc-card .pill{flex-shrink:0}
.dc-del{flex-shrink:0;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:transparent;color:var(--ink-400);transition:all var(--t-fast)}
.dc-del:hover{background:#fbeae8;color:var(--status-bad)}
.dc-del svg{width:15px;height:15px}

.folder-card{
  display:flex;align-items:center;gap:13px;
  background:var(--paper);border:1px solid var(--line);
  border-radius:15px;padding:15px;
  box-shadow:var(--shadow-xs);margin-bottom:9px;cursor:pointer;
  transition:box-shadow var(--t-fast),transform .1s;
}
.folder-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}
.fc-body{flex:1;min-width:0}
.fc-name{font-size:15px;font-weight:700;letter-spacing:-.005em}
.fc-sub{font-size:12px;color:var(--ink-500);margin-top:2px}
.fc-arrow{transform:rotate(180deg);color:var(--ink-400);flex-shrink:0}
.fc-arrow svg{width:18px;height:18px;display:block}
.folder-card .pill svg{width:13px;height:13px}

.doc-drop{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;
  padding:28px;border:2px dashed var(--line-strong);border-radius:14px;
  cursor:pointer;color:var(--ink-500);
  transition:border-color var(--t-fast),background var(--t-fast);
  margin-bottom:6px;background:var(--cream-50);
}
.doc-drop:hover{border-color:var(--forest-500);background:var(--sage-50);color:var(--forest-700)}
.doc-drop svg{width:28px;height:28px;color:var(--forest-500)}
.doc-drop span{font-size:13px;font-weight:600}
.detail-row{display:flex;align-items:center;gap:13px;padding:14px 18px;border-bottom:1px solid var(--line)}
.detail-row:last-child{border-bottom:0}
.dr-ic{
  width:40px;height:40px;border-radius:12px;
  background:linear-gradient(135deg,var(--sage-100),var(--sage-200));
  color:var(--forest-600);display:grid;place-items:center;flex-shrink:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4);
}
.dr-ic svg{width:18px;height:18px}
.dr-l{font-size:10.5px;font-weight:800;color:var(--ink-400);text-transform:uppercase;letter-spacing:.08em}
.dr-v{font-size:14.5px;font-weight:600;color:var(--ink-900);margin-top:2px;letter-spacing:-.005em}

.profile-modules{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}
.profile-modules.compact{grid-template-columns:repeat(3,1fr);margin:12px 0}
.profile-mini{padding:16px;min-height:96px;display:flex;flex-direction:column;justify-content:center}
.profile-mini span svg{width:20px;height:20px;color:var(--forest-600)}
.profile-mini strong{font-family:var(--font-display);font-size:24px;line-height:1;color:var(--forest-800);margin-top:5px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.profile-mini em{font-style:normal;color:var(--ink-500);font-weight:700;font-size:12px;margin-top:6px;letter-spacing:.005em}
.av-free{background:#3fa45e}
.av-part{background:#d8a93a}
.av-off{background:#cc4759}

.avail-list{display:flex;flex-direction:column;gap:8px}
.avail-row{
  display:flex;align-items:center;gap:11px;flex-wrap:wrap;
  background:var(--paper);border:1px solid var(--line);
  border-radius:14px;padding:11px 14px;
  box-shadow:var(--shadow-xs);
  border-left:4px solid var(--sage-300);
}
.avail-row.available{border-left-color:#3fa45e}
.avail-row.partial{border-left-color:#d8a93a}
.avail-row.unavailable{border-left-color:#cc4759;opacity:.92}
.ar-date{flex-shrink:0;width:54px}
.ar-date strong{display:block;font-size:13px;font-weight:800;text-transform:uppercase;color:var(--ink-700);letter-spacing:.04em}
.ar-date span{font-size:11.5px;color:var(--ink-500)}
.ar-seg{display:flex;gap:0;background:var(--cream-100);border-radius:11px;padding:3px;flex:1;min-width:180px}
.seg{flex:1;padding:7px 4px;border-radius:8px;font-size:12px;font-weight:700;color:var(--ink-500);transition:all var(--t-fast)}
.seg.on.available{background:#3fa45e;color:#fff;box-shadow:0 1px 3px rgba(63,164,94,.32)}
.seg.on.partial{background:#d8a93a;color:#fff;box-shadow:0 1px 3px rgba(216,169,58,.34)}
.seg.on.unavailable{background:#cc4759;color:#fff;box-shadow:0 1px 3px rgba(204,71,89,.32)}
.ar-note{flex-basis:100%;height:38px;border:1.5px solid var(--line-strong);border-radius:10px;padding:0 12px;font-size:13px;background:#fff}
.ar-note:focus{outline:0;border-color:var(--forest-500);box-shadow:var(--ring-focus)}
.ar-notetxt{flex-basis:100%;font-size:12px;color:var(--ink-500);font-style:italic}

.weekly-avail{padding:6px 0}
.wa-row{display:flex;align-items:center;gap:13px;padding:11px 16px;border-bottom:1px solid var(--line)}
.wa-row:last-child{border-bottom:0}
.wa-toggle{width:44px;height:26px;border-radius:20px;background:var(--cream-200);position:relative;flex-shrink:0;transition:background var(--t)}
.wa-toggle span{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.22);transition:transform var(--t) var(--ease-spring)}
.wa-toggle.on{background:linear-gradient(140deg,var(--forest-500),var(--forest-600))}
.wa-toggle.on span{transform:translateX(18px)}
.wa-day{font-size:14px;font-weight:700;width:40px;flex-shrink:0;letter-spacing:-.005em}
.wa-times{display:flex;align-items:center;gap:8px;color:var(--ink-500)}
.wa-time{height:38px;border:1.5px solid var(--line-strong);border-radius:10px;padding:0 10px;font-size:13px;background:#fff}
.wa-time:focus{outline:0;border-color:var(--forest-500);box-shadow:var(--ring-focus)}
.wa-off{font-size:13px;color:var(--ink-400);font-style:italic}

.avail-grid-wrap{overflow-x:auto;padding:4px}
.avail-grid{width:100%;border-collapse:collapse;min-width:520px}
.avail-grid th{font-size:11px;font-weight:800;color:var(--ink-500);text-transform:uppercase;letter-spacing:.06em;padding:10px 4px;text-align:center}
.avail-grid th small{display:block;font-size:12px;color:var(--ink-400);font-weight:700}
.avail-grid th:first-child{text-align:left;padding-left:12px}
.ag-name{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;padding:9px 12px;white-space:nowrap;letter-spacing:-.005em}
.ag-cell{text-align:center;font-size:15px;padding:9px 4px;border-top:1px solid var(--line)}
.ag-cell.available{color:#3fa45e}
.ag-cell.partial{color:#d8a93a}
.ag-cell.unavailable{color:#cc4759}

.avail-legend{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-top:14px;font-size:12px;color:var(--ink-500);font-weight:600}
.avail-legend i{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:middle}
.lg.available{background:#3fa45e}
.lg.partial{background:#d8a93a}
.lg.unavailable{background:#cc4759}
.lg.booked{background:var(--forest-700)}


/* ──────────────────────────────────────────────────────────
   15. MODAL & SHIFT BUILDER
   ────────────────────────────────────────────────────────── */
.modal-overlay{
  position:fixed;inset:0;z-index:2000;
  background:rgba(16,28,17,.82);
  /* NOTE: no backdrop-filter here. On iOS a live blur on a fixed overlay
     repaints the whole blurred layer on every touch inside the sheet, which
     reads as a "bounce"/flicker. A solid dim looks nearly identical and is
     completely stable. */
  display:flex;align-items:flex-end;justify-content:center;
  animation:fade .2s ease;padding:0;
  overflow:hidden;max-height:100dvh;
  overscroll-behavior:none;
  touch-action:none;   /* no zoom / no pan on the dim backdrop */
}
@media(min-width:600px){.modal-overlay{align-items:center;padding:20px}}
@keyframes fade{from{opacity:0}to{opacity:1}}

.modal{
  width:100%;max-width:480px;
  background:var(--paper);border-radius:24px 24px 0 0;
  max-height:92dvh;display:flex;flex-direction:column;
  box-shadow:var(--shadow-xl);
  animation:modalRise .26s cubic-bezier(.22,.61,.36,1) both;
  overflow:hidden;min-height:0;
  /* Composite the sheet on its own layer so tapping inside it doesn't force a
     reflow/repaint of the sheet (a common iOS "bounce"). */
  transform:translateZ(0);
  -webkit-backface-visibility:hidden;backface-visibility:hidden;
  /* lock against pinch-zoom and side-to-side drift inside the popup */
  touch-action:pan-y;
  overscroll-behavior:none;
  -ms-touch-action:pan-y;
}
@media(min-width:600px){.modal{border-radius:24px;max-height:88vh}}
/* Gentle rise that cannot overshoot/bounce (easing stays < 1, no spring). */
@keyframes modalRise{from{transform:translate3d(0,22px,0);opacity:0}to{transform:translate3d(0,0,0);opacity:1}}
/* Any re-render (field change, toggle, selection, background sync) must NOT
   replay the entrance — that replay is the "bounce". This class is injected into
   the markup before paint, so every modal in the app is covered, not just a few. */
.modal.no-open-anim{animation:none!important;transform:translate3d(0,0,0)!important;opacity:1!important}
/* Once open, the sheet is a static layer — nothing inside it animates its size. */
.modal *{backface-visibility:hidden}
/* on re-render (field change) don't replay the open animation — stops bounce/shake */
.modal.no-open-anim{animation:none!important}

.modal-head{display:flex;align-items:center;padding:22px 24px 14px}
.modal-head h2{font-family:var(--font-display);font-size:22px;font-weight:500;flex:1;letter-spacing:-.022em}
.modal-x{
  width:36px;height:36px;border-radius:11px;
  font-size:22px;line-height:1;color:var(--ink-500);
  background:var(--cream-100);display:grid;place-items:center;
  transition:all var(--t-fast);
}
.modal-x:hover{background:var(--sage-100);color:var(--forest-700)}
.modal-body{padding:0 24px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:none;-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:0;touch-action:pan-y}
.modal-foot{
  display:flex;align-items:center;gap:10px;
  padding:16px 24px calc(18px + var(--safe-b));
  border-top:1px solid var(--line);margin-top:8px;
  flex:0 0 auto;
}
/* footer buttons share width evenly and align on one row */
.modal-foot>.btn{flex:1 1 0;min-width:0;height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
.modal-foot>.btn.btn-danger{flex:0 0 auto}

.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.chip-select,.sv-time{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sel-chip.on{background:var(--forest-600);border-color:transparent;color:#fff;box-shadow:0 2px 6px rgba(30,55,30,.22)}
.sv-time{margin-bottom:14px;font-size:15px}
.sv-time em{font-style:normal;color:var(--clay-600);font-weight:800}
.person-hero{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.ph-title{font-size:13.5px;color:var(--ink-500);margin-bottom:6px}

/* Shift modal */
.shift-modal{height:auto;max-height:min(92dvh,820px)}

/* Desktop / laptop: make the Add a shift panel much wider and taller */
@media(min-width:1024px){
  .shift-modal{max-width:860px!important;max-height:94dvh!important;width:94vw}
  .shift-modal .modal-body{padding:6px 28px 8px}
  /* lay the builder panels out in two columns to use the width and show more at once */
  .shift-modal .shift-builder{
    display:grid!important;grid-template-columns:1fr 1fr;gap:14px;align-items:start;
  }
  /* the client/job search panel spans the full width on top */
  .shift-modal .client-search-panel{grid-column:1 / -1}
  .shift-modal .notes-open-panel:last-of-type{grid-column:1 / -1}
}
@media(min-width:1280px){
  .shift-modal{max-width:960px!important}
}
.shift-modal .modal-body{overflow-y:auto;overscroll-behavior:none;-webkit-overflow-scrolling:touch}
.shift-modal .modal-foot{margin-top:0;box-shadow:0 -10px 24px rgba(25,40,25,.08)}

.shift-builder{display:grid;gap:8px;padding-bottom:8px}
.shift-panel{
  background:linear-gradient(180deg,#fffdf8,#f6f1e6);
  border:1px solid var(--line-strong);border-radius:14px;
  box-shadow:var(--shadow-xs);padding:11px 12px;overflow:hidden;
}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;color:var(--forest-800);font-weight:900;font-size:13.5px}
.panel-title span{display:flex;align-items:center;gap:8px;min-width:0}
.panel-title svg{width:17px;height:17px;color:var(--forest-600)}
.panel-title small{font-size:11px;color:var(--ink-500);font-weight:800;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46%}

.client-search-panel .client-picker.is-collapsed{display:none}
.client-search-panel .client-picker{
  margin-top:8px;margin-bottom:2px;max-height:300px;overflow:auto;
  border:1px solid var(--line-strong);border-radius:14px;
  background:var(--paper);box-shadow:var(--shadow-xs);padding:5px;
}
.client-search-panel .client-search-row{
  width:100%;min-height:54px;padding:11px 12px;border-radius:11px;
  background:transparent;box-shadow:none;border:0;color:var(--ink-900);
  display:flex;align-items:center;cursor:pointer;text-align:left;
  transition:background var(--t-fast);
}
.client-search-panel .client-search-row:hover,.client-search-panel .client-search-row:active{background:var(--cream-50)}
.client-search-panel .client-search-row .pick-main{display:flex;flex-direction:column;gap:1px;min-width:0}
.client-search-panel .client-search-row .pick-main strong{font-size:16px;line-height:1.15;color:var(--ink-900);font-weight:800;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.client-search-panel .client-search-row .pick-main em{font-style:normal;font-size:13px;color:var(--ink-500);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.picker-empty{padding:14px 12px;text-align:center;font-size:12.5px;font-weight:600;color:var(--ink-400)}

/* clean search bar with clear button */
.client-search-box{
  display:flex;align-items:center;gap:9px;
  height:48px;border-radius:13px;padding:0 12px;margin:0;
  background:#fff;border:1.5px solid var(--line-strong);
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
.client-search-box:focus-within{border-color:var(--forest-500);box-shadow:var(--ring-focus)}
.client-search-box.has-selected{border-color:var(--forest-500);background:var(--sage-50,#eef3e7)}
.csb-ic{display:flex;flex-shrink:0}
.csb-ic svg{width:17px;height:17px;color:var(--ink-500);fill:none;stroke:currentColor;stroke-width:2}
.client-search-box.has-selected .csb-ic svg{color:var(--forest-600)}
.client-search-box input{flex:1;border:0;outline:0;background:transparent;font-size:15px;font-weight:700;color:var(--ink-900);min-width:0}
.client-search-box input::placeholder{color:var(--ink-400);font-weight:600}
.client-search-box input[readonly]{cursor:default}
.client-search-box input::-webkit-search-cancel-button{display:none;-webkit-appearance:none}
.csb-clear{flex-shrink:0;width:28px;height:28px;border-radius:50%;border:0;cursor:pointer;
  display:grid;place-items:center;background:var(--forest-600);color:#fff}
.csb-clear svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.4}
.csb-clear:active{transform:scale(.9)}

.smart-picker{display:flex;flex-direction:column;gap:0;margin:0 0 10px;padding-bottom:4px}
.picker-row{
  display:grid;align-items:center;gap:10px;
  padding:10px;border-radius:13px;
  background:transparent;
  transition:background var(--t-fast);
}
.picker-row:hover{background:var(--cream-50)}
.picker-row.selected{background:var(--sage-100)}
.pick-check{
  width:24px;height:24px;border-radius:50%;
  border:1.5px solid var(--sage-300);background:#fff;
  color:transparent;font-size:14px;display:grid;place-items:center;line-height:1;flex-shrink:0;
}
.picker-row.selected .pick-check{background:var(--forest-600);border-color:var(--forest-600);color:#fff}
.pick-main{display:grid;gap:1px;min-width:0}
.pick-main strong{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.005em}

.shift-section{border-radius:14px;overflow:hidden;background:transparent}
.shift-section>summary{
  display:flex;align-items:center;list-style:none;cursor:pointer;
  padding:10px 12px;min-height:42px;
}
.shift-section>summary::-webkit-details-marker{display:none}
.shift-section>summary span{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:800;color:var(--ink-900)}
.shift-section>summary svg{width:17px;height:17px;color:var(--forest-600)}
.shift-section>summary small{margin-left:auto;font-size:10.5px;color:var(--ink-500);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:44%}

/* Employee picker dark variant */
.employee-picker.simple-list{
  gap:0;background:var(--paper);border:1px solid var(--line-strong);
  border-radius:14px;padding:4px;max-height:222px;
  box-shadow:none;overflow:auto;
}
.employee-picker.simple-list.is-collapsed{display:none}
.emp-dd-foot.is-collapsed{display:none}
.employee-picker.simple-list .picker-row{
  display:grid;grid-template-columns:24px minmax(0,1fr);gap:9px;
  min-height:48px;border:0;border-radius:10px;
  background:transparent;color:var(--ink-900);
  box-shadow:none;padding:8px 9px;
}
.employee-picker.simple-list .picker-row + .picker-row{border-top:1px solid var(--line);border-radius:0}
.employee-picker.simple-list .picker-row:hover{background:var(--cream-50);transform:none;box-shadow:none}
.employee-picker.simple-list .picker-row.selected{background:var(--sage-100);color:var(--forest-900);border-radius:10px}
.employee-picker.simple-list .picker-row.is-unavailable:not(.selected){opacity:.7;background:transparent}
.employee-picker.simple-list .pick-check{
  width:20px;height:20px;border-radius:50%;background:#fff;
  border:1.5px solid var(--sage-300);color:transparent;font-size:12px;
}
.employee-picker.simple-list .picker-row.selected .pick-check{background:var(--forest-600);color:#fff;border-color:var(--forest-600)}

.simple-emp-text{min-width:0;display:grid;gap:0}
.simple-emp-text strong{font-size:15px;line-height:1.15;color:var(--ink-900);font-weight:700;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.simple-emp-text em{font-style:normal;font-size:10px;font-weight:800;color:var(--ink-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.simple-emp-text em.av-off{color:var(--status-bad);background:transparent}
.simple-emp-text em.av-part{color:var(--status-warn);background:transparent}
.simple-emp-text em.av-free{color:var(--status-ok);background:transparent}
.quick-add-grid .btn{grid-column:1/-1}
.quick-add-client-details[open]>summary:after{transform:rotate(180deg)}

.notes-open-panel{padding-bottom:10px}
.notes-open-panel .field{margin-top:2px}
.notes-textarea{min-height:78px;resize:vertical;line-height:1.45}

.visibility-section select.input{font-weight:800;color:var(--forest-800)}
.vis-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.vis-opt{
  position:relative;display:flex;flex-direction:row;align-items:center;gap:8px;
  padding:10px 12px;border-radius:11px;cursor:pointer;
  background:#f5f7f1;border:1.5px solid rgba(60,80,60,.14);
  transition:background .12s ease,border-color .12s ease,transform .1s ease;
}
.vis-opt-icon{width:22px;height:22px;border-radius:0;display:grid;place-items:center;background:transparent;color:#8a948a;flex-shrink:0}
.vis-opt-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.vis-opt-copy{display:flex;flex-direction:column;gap:0;min-width:0}
.vis-opt-copy strong{font-size:14px;font-weight:800;color:#2a342c;line-height:1.15}
.vis-opt-copy small{display:none}
.vis-opt-check{position:absolute;top:50%;right:11px;transform:translateY(-50%) scale(.7);width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.22);color:#fff;font-size:12px;font-weight:900;opacity:0;transition:opacity .15s,transform .15s}
.vis-opt:active{transform:scale(.98)}
.vis-opt.active{
  background:linear-gradient(180deg,#5c8f5f,#2f5a34);
  border-color:#2f5a34;
  box-shadow:0 8px 20px -8px rgba(40,80,45,.55),inset 0 1px 0 rgba(255,255,255,.18);
}
.vis-opt.active .vis-opt-icon{color:#fff}
.vis-opt.active .vis-opt-copy strong{color:#fff}
.vis-opt.active .vis-opt-check{opacity:1;transform:translateY(-50%) scale(1)}
.vis-hint{margin:9px 2px 0;font-size:12px;font-weight:600;color:var(--ink-500);line-height:1.4}
.visibility-section .co-hint{font-size:11.5px;line-height:1.4}

body.modal-open,body.modal-open #app{height:100dvh;max-height:100dvh;overflow:hidden}
html:has(body.modal-open){height:100dvh;max-height:100dvh;overflow:hidden}
/* fully pin the background page so it can't rubber-band or peek through the
   modal's rounded top/bottom edges */
body.modal-open #app{position:fixed!important;inset:0!important;overflow:hidden!important;overscroll-behavior:none!important}
body.modal-open #modalHost{position:fixed;inset:0;overflow:hidden;z-index:2000;overscroll-behavior:none}
/* solid dark layer that fills the WHOLE screen behind the sheet, so the page
   underneath is never visible even while the sheet bounces */
body.modal-open #modalHost::before{content:"";position:fixed;inset:0;background:rgba(16,28,17,.74);z-index:0;pointer-events:none}


/* ──────────────────────────────────────────────────────────
   16. EMPLOYEE SHIFT CARDS
   ────────────────────────────────────────────────────────── */
.emp-shift{
  position:relative;background:#fff;
  border:1px solid var(--line);border-radius:18px;
  padding:16px 17px;margin-bottom:11px;overflow:hidden;
  --solid:#2f7d4a;--deep:#1f5e34;
  box-shadow:
    0 1px 2px rgba(20,30,20,.04),
    0 6px 16px -8px color-mix(in srgb,var(--solid) 30%,transparent);
  transition:box-shadow var(--t),transform .12s;
}
.emp-shift:hover{transform:translateY(-1px);box-shadow:0 2px 4px rgba(20,30,20,.05),0 10px 24px -8px color-mix(in srgb,var(--solid) 40%,transparent)}
.emp-shift::before{content:"";position:absolute;top:0;left:0;width:80px;height:80px;background:radial-gradient(circle at top left,color-mix(in srgb,var(--solid) 22%,transparent),transparent 70%);pointer-events:none}
.emp-shift::after{content:"";position:absolute;bottom:0;right:0;width:90px;height:90px;background:radial-gradient(circle at bottom right,color-mix(in srgb,var(--solid) 16%,transparent),transparent 70%);pointer-events:none}
.emp-shift.done,.emp-shift.declined{opacity:.7}
.ec-accept:active,.ec-reject:active,.ec-start:active{transform:scale(.96)}


/* ──────────────────────────────────────────────────────────
   17. TOPBAR PROFILE + MOBILE-SPECIFIC POLISH
   ────────────────────────────────────────────────────────── */
.top-profile{
  height:44px;border-radius:14px;
  display:flex;align-items:center;gap:9px;padding:0 6px 0 7px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);
  color:#eef3e8;font-weight:800;letter-spacing:-.005em;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  transition:background var(--t-fast),transform .1s;
}
.top-profile:hover{background:rgba(255,255,255,.20)}
.top-profile:active{transform:scale(.97)}
.top-profile .avatar{box-shadow:0 0 0 2px rgba(255,255,255,.22)}
.tp-meta{display:flex;flex-direction:column;line-height:1.1;text-align:left}
.tp-name{font-size:13px;font-weight:800;color:#fff}
.tp-role{font-size:10px;font-weight:700;text-transform:capitalize;color:rgba(238,243,232,.7)}
.top-signout:active{transform:scale(.96)}
.ts-day-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:var(--shadow-xs)}
.ts-day-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.ts-day-row{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}

.payroll-mobile-simple .section-head h2{font-size:19px}


/* ──────────────────────────────────────────────────────────
   18. RESPONSIVE OVERRIDES (consolidated)
   ────────────────────────────────────────────────────────── */
@media(max-width:1023px){
  .main{min-height:100dvh}
  .topbar{padding:calc(14px + var(--safe-t)) 14px 13px}
  .topbar h1{font-size:21px}
  .topbar .sub{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:72vw}
  .content{padding:14px 12px calc(108px + var(--safe-b));max-width:100%;overflow-x:hidden}
  .icon-btn{width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.15)}
}

@media(max-width:720px){
  .clock-admin-hero .rh-nav{width:40px!important;height:40px!important}
  .clock-emp{border-radius:20px}
  .clock-emp summary{grid-template-columns:48px minmax(0,1fr) auto auto;padding:12px 13px;gap:11px}
  .clock-emp .ce-avatar{width:46px;height:46px;font-size:16px}
  .clock-emp .ce-info strong{font-size:15px}
  .clock-emp .ce-info em{font-size:12px}
  .clock-emp .ce-pill{height:25px;font-size:10.5px;padding:0 9px}
  .clock-emp .ce-stats{grid-template-columns:repeat(2,1fr);gap:7px;margin:12px 0 10px}
  .clock-emp .ce-stats > div{padding:9px 6px;border-radius:12px}
  .clock-emp .ce-stats b{font-size:14px}
  .ts-day-row{gap:5px;grid-template-columns:repeat(7,1fr)}
  .ts-day-card{padding:13px 13px 14px;border-radius:18px}
  .clock-exports .cx-grid{grid-template-columns:1fr}
  .payroll-toolbar .btn{width:100%;height:40px}
  .profile-modules{grid-template-columns:repeat(2,1fr);gap:10px}
  .profile-mini{min-height:84px;padding:13px}
  .ts-row-actions .btn{flex:1}
  .payroll-emp summary .pill{font-size:11px}
  .variance{font-size:10.8px}
  .payroll-emp.xero-emp summary .avatar{width:32px;height:32px;font-size:11px}
  .payroll-emp.xero-emp summary .pill{font-size:10px;padding:4px 7px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .payroll-emp-body .variance{display:block;line-height:1.3;margin-top:6px}
  .payroll-emp-body .ts-row-actions .btn{min-width:0;width:100%;height:32px}

  .payroll-mobile-simple .ts-day-row{gap:5px}
}

@media(max-width:640px){
  .topbar{gap:9px}
  .topbar-actions{gap:6px}
  .tp-meta,.tp-chev{display:none}
  .top-profile{padding:0;width:42px;justify-content:center}
  .topbar h1{max-width:72vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar .sub{max-width:52vw}

  /* Shift modal compact */
  .shift-modal{max-width:100%;height:auto!important;max-height:calc(100dvh - 28px);border-radius:22px 22px 0 0}
  .shift-modal .modal-body{padding:0 12px 4px;flex:0 1 auto}
  .shift-modal .modal-head{padding:14px 16px 10px}
  .shift-modal .modal-head h2{font-size:20px}
  .shift-modal .modal-foot{padding:9px 12px calc(6px + (var(--safe-b) * 0.5));gap:8px;margin-top:4px}
  .shift-modal .modal-foot .btn{height:38px;font-size:12.2px;border-radius:10px;padding:0 11px;min-width:100px}
  .shift-builder{gap:8px}
  .shift-panel{padding:11px;border-radius:16px}
  .panel-title{margin-bottom:8px}
  .panel-title span{font-size:13px}
  .panel-title small{font-size:10.5px;max-width:42%}
  .shift-section{border-radius:16px}
  .shift-section>summary{padding:11px 12px;min-height:44px}
  .shift-section>summary span{font-size:13px;gap:8px}
  .shift-section>summary svg{width:16px;height:16px}
  .shift-section>summary small{font-size:10px;max-width:40%}
  .shift-modal .field{gap:5px;margin-bottom:9px}
  .shift-modal .field label{font-size:11.5px;line-height:1.15}
  .shift-modal .input{height:40px;border-radius:11px;padding:0 11px;font-size:13.5px;border-width:1.2px}
  .shift-modal select.input{padding-right:42px;background-position:right 11px center,right 4px center;background-size:15px,30px 34px}
  .shift-modal textarea.input{height:auto;min-height:82px;padding:9px 11px;font-size:13.5px}
  .client-search-panel .client-picker{margin-top:6px;margin-bottom:8px;max-height:300px;border-radius:12px;padding:3px}
  .client-search-panel .client-search-row{min-height:50px;padding:9px 9px;grid-template-columns:20px minmax(0,1fr);gap:7px}
  .client-search-panel .client-search-row .pick-check{width:18px;height:18px;font-size:10px}
  .client-search-panel .client-search-row .pick-main strong{font-size:15.5px}
  .client-search-panel .client-search-row .pick-main em{font-size:12.5px}
  .employee-picker.simple-list{max-height:440px;border-radius:12px;padding:3px}
  .employee-picker.simple-list .picker-row{min-height:44px;padding:7px 8px;grid-template-columns:20px minmax(0,1fr);gap:8px}
  .employee-picker.simple-list .pick-check{width:20px;height:20px;font-size:11px}
  .simple-emp-text strong{font-size:14.5px;line-height:1.15}
  .simple-emp-text em{font-size:10.5px;line-height:1.15}
  .notes-open-panel{padding-bottom:10px}
  .notes-textarea{min-height:86px}
  .modal-foot .btn{flex:1;min-width:120px}
  .modal-foot .btn-danger{flex:0 0 auto;min-width:unset}
  .visibility-section .co-hint{font-size:10.5px;padding-bottom:8px}
  .visibility-section select.input{font-size:13px}
}

@media(max-width:520px){
  .modal-foot .btn{min-width:0;font-size:12.3px;padding:0 11px;white-space:normal;line-height:1.2}
  .modal-foot{gap:8px}
}


/* ──────────────────────────────────────────────────────────
   V13 MOBILE HEADER FIX — sticky header + redesigned actions
   Keeps the profile, notification and logout buttons compact,
   cleaner, and consistent on every page.
   ────────────────────────────────────────────────────────── */
.topbar{
  position:sticky!important;
  top:0!important;
  z-index:120;
  isolation:isolate;
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
  min-height:calc(78px + var(--safe-t));
}
.topbar-actions{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap:6px;
  flex-shrink:0;
  padding:5px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.18);
  background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.055));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.20),0 14px 28px rgba(5,18,9,.18);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.icon-btn,.top-profile,.top-signout{
  height:46px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.30);
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.045));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.20),0 6px 16px rgba(0,0,0,.13);
}
.icon-btn,.top-signout{
  width:46px;
  display:grid;
  place-items:center;
  padding:0;
}
.icon-btn:hover,.top-profile:hover,.top-signout:hover{
  background:linear-gradient(180deg,rgba(255,255,255,.20),rgba(255,255,255,.09));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.26),0 8px 18px rgba(0,0,0,.16);
}
.icon-btn:active,.top-profile:active,.top-signout:active{transform:scale(.96)}
.icon-btn svg,.top-signout svg{width:19px;height:19px;stroke-width:2.15}
.top-profile{
  display:grid;
  place-items:center;
  gap:0;
  width:46px;min-width:46px;
  padding:0;
  color:#fff;
}
.top-profile .avatar.sm{
  width:38px;height:38px;
  border-radius:50%;
  font-size:13px;
  font-weight:900;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 0 0 1px rgba(255,255,255,.16),0 5px 12px rgba(0,0,0,.18);
}
.top-profile .tp-meta{display:none!important}
.top-profile .tp-name{font-size:12.5px;line-height:1;color:#fff}
.top-profile .tp-role{font-size:9.5px;line-height:1.05;color:rgba(238,243,232,.72)}
.top-profile .tp-chev{display:none!important}
.icon-btn .dot{
  top:8px;right:8px;
  width:9px;height:9px;
  background:#c97647;
  border:2px solid #1a2d20;
}
@media(max-width:1023px){
  .main{padding-top:calc(76px + var(--safe-t))}
  .topbar{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    z-index:120;
    padding:calc(12px + var(--safe-t)) 14px 12px;
    min-height:calc(76px + var(--safe-t));
  }
  .topbar h1{font-size:clamp(24px,7vw,34px);max-width:72vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar .sub{font-size:13px;max-width:50vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .content{padding-top:16px;scroll-margin-top:calc(82px + var(--safe-t))}
}
@media(max-width:640px){
  .main{padding-top:calc(72px + var(--safe-t))}
  .topbar{gap:8px;padding:calc(11px + var(--safe-t)) 12px 11px;min-height:calc(72px + var(--safe-t))}
  .topbar-actions{gap:4px;padding:5px;border-radius:999px}
  .icon-btn,.top-signout{width:44px;height:44px;border-radius:50%}
  .top-profile{height:44px;min-width:44px;width:44px;border-radius:50%;padding:0}
  .top-profile .avatar.sm{width:36px;height:36px;border-radius:50%;font-size:12px}
  .top-profile .tp-meta{display:none!important}
  .icon-btn svg,.top-signout svg{width:18px;height:18px}
  .topbar h1{max-width:70vw;font-size:clamp(23px,7.2vw,32px)}
  .topbar .sub{max-width:47vw;font-size:12.5px}
}
@media(max-width:380px){
  .topbar{padding-left:10px;padding-right:10px}
  .topbar-actions{gap:3px;padding:3px;border-radius:18px}
  .icon-btn,.top-signout,.top-profile{width:34px;height:34px;border-radius:13px;min-width:34px}
  .top-profile .avatar.sm{width:26px;height:26px;border-radius:10px;font-size:9.5px}
  .topbar h1{max-width:66vw;font-size:22px}
  .topbar .sub{max-width:43vw;font-size:11.5px}
}



/* ──────────────────────────────────────────────────────────
   V14 CLEAN MOBILE NAV + HEADER ACTION ICONS + DIRECTORIES
   ────────────────────────────────────────────────────────── */
.topbar-actions{
  padding:5px!important;
  gap:9px!important;
  border:1px solid rgba(231,213,164,.42)!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 12px 26px rgba(5,18,9,.18)!important;
  backdrop-filter:blur(10px)!important;
  -webkit-backdrop-filter:blur(10px)!important;
}
.icon-btn,.top-profile,.top-signout{
  width:42px!important;
  min-width:42px!important;
  height:42px!important;
  border-radius:50%!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  overflow:visible;
  background:linear-gradient(145deg,rgba(239,231,211,.16),rgba(107,132,93,.12))!important;
  border:1.4px solid rgba(231,213,164,.72)!important;
  color:#f7f0dc!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 18px rgba(0,0,0,.16)!important;
}
.top-profile{
  background:radial-gradient(circle at 35% 25%,rgba(221,211,176,.30),rgba(88,123,83,.18) 52%,rgba(32,57,38,.24))!important;
}
.icon-btn{
  background:radial-gradient(circle at 35% 25%,rgba(244,238,218,.20),rgba(81,108,73,.15) 55%,rgba(20,38,24,.20))!important;
}
.icon-btn:hover,.top-profile:hover,.top-signout:hover{
  transform:translateY(-1px);
  background:linear-gradient(145deg,rgba(244,238,218,.24),rgba(108,139,93,.18))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 10px 20px rgba(0,0,0,.19)!important;
}
.icon-btn:active,.top-profile:active,.top-signout:active{transform:scale(.95)!important}
.top-profile .avatar.sm{
  width:100%!important;height:100%!important;border-radius:50%!important;
  background:transparent!important;
  color:#fff7e8!important;
  font-size:12px!important;font-weight:950!important;
  box-shadow:none!important;
  letter-spacing:.02em;
}
.top-profile .tp-meta,.top-profile .tp-name,.top-profile .tp-role,.top-signout span{display:none!important}
.icon-btn svg,.top-signout svg{width:20px!important;height:20px!important;stroke-width:2.25!important}
.icon-btn .dot{
  top:2px!important;right:2px!important;width:10px!important;height:10px!important;
  background:#bc7b49!important;border:2px solid #27432c!important;
  box-shadow:0 0 0 2px rgba(255,247,226,.16),0 0 10px rgba(188,123,73,.55)!important;
}
@media(max-width:1023px){
  .topbar{border-radius:0 0 24px 24px;box-shadow:0 14px 28px -16px rgba(8,23,12,.58)!important}
  .topbar-actions{gap:7px!important}
  .mtab.active{
    background:linear-gradient(180deg,#506c48 0%,#365c39 56%,#223f29 100%)!important;
    border-color:rgba(255,244,214,.38)!important;
    box-shadow:0 10px 22px rgba(31,70,38,.34),inset 0 1px 0 rgba(255,255,255,.18)!important;
  }
  .mtab.active > svg{
    background:rgba(246,235,207,.16)!important;
    border-color:rgba(246,235,207,.18)!important;
    color:#fff5da!important;
  }
  .mtab.active span{color:#fff5da!important}
  .mtab.active::after{background:#c39a55!important;box-shadow:0 1px 6px rgba(195,154,85,.42)!important}
}
@media(max-width:640px){
  .topbar-actions{gap:6px!important}
  .icon-btn,.top-profile,.top-signout{width:38px!important;min-width:38px!important;height:38px!important}
  .icon-btn svg,.top-signout svg{width:19px!important;height:19px!important}
  .top-profile .avatar.sm{font-size:11px!important}
}
@media(max-width:380px){
  .topbar-actions{gap:5px!important}
  .icon-btn,.top-profile,.top-signout{width:34px!important;min-width:34px!important;height:34px!important}
  .top-profile .avatar.sm{font-size:10px!important}
}
.manager-hero{
  display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:15px;align-items:center;
  padding:18px;border-radius:24px;overflow:hidden;
  background:radial-gradient(circle at 7% 8%,rgba(180,198,158,.34),transparent 35%),linear-gradient(135deg,#fffdf7,#eee5d3)!important;
  border-color:rgba(64,91,62,.14)!important;
}
.manager-hero.clients{background:radial-gradient(circle at 7% 8%,rgba(207,154,104,.30),transparent 35%),linear-gradient(135deg,#fffdf7,#eee5d3)!important}
.mh-icon{width:62px;height:62px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(145deg,var(--forest-600),var(--forest-800));color:#fff7e8;box-shadow:0 12px 24px rgba(30,56,34,.18),inset 0 1px 0 rgba(255,255,255,.18)}
.mh-icon svg{width:28px;height:28px;stroke-width:2.15}
.manager-hero.clients .mh-icon{background:linear-gradient(145deg,var(--clay-500),var(--forest-700))}
.mh-copy span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.16em;font-weight:900;color:var(--clay-600);margin-bottom:3px}
.mh-copy h2{font-family:var(--font-display);font-size:31px;line-height:1.04;font-weight:520;color:var(--forest-900);letter-spacing:-.03em}
.mh-copy p{font-size:13px;color:var(--ink-600);max-width:580px;line-height:1.4;margin-top:5px}
.directory-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.dir-stat{padding:13px 14px;border-radius:18px;background:linear-gradient(180deg,rgba(255,253,247,.94),rgba(239,233,219,.94));border:1px solid var(--line);box-shadow:var(--shadow-xs)}
.dir-stat strong{display:block;font-size:24px;line-height:1;font-weight:900;color:var(--forest-800)}
.dir-stat span{font-size:11px;font-weight:800;color:var(--ink-500);text-transform:uppercase;letter-spacing:.05em}
.directory-toolbar{display:flex;align-items:center;gap:10px;padding:10px;margin-bottom:10px;border-radius:19px;background:rgba(255,253,247,.86)!important}
.dir-search{height:43px;min-width:0;flex:1;display:flex;align-items:center;gap:8px;padding:0 12px;border-radius:14px;background:var(--cream-100);border:1px solid var(--line-strong);color:var(--forest-700)}
.dir-search svg{width:18px;height:18px;flex:0 0 auto;opacity:.76}
.dir-search input{width:100%;border:0;background:transparent;outline:0;font-weight:700;color:var(--ink-800)}
.dir-search input::placeholder{color:var(--ink-400);font-weight:700}

/* ---- v114 simplified directory toolbar (staff + clients) ---- */
.dir-toolbar-v2{
  display:flex;flex-direction:column;gap:10px;align-items:stretch;
  padding:12px;margin-bottom:8px;border-radius:18px;
  background:rgba(255,253,247,.92)!important;
}
.dir-toolbar-v2 .dir-search{height:46px;flex:0 0 auto;width:100%;border-radius:13px}
.dir-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.dir-tool{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:42px;padding:0 10px;border-radius:12px;
  background:var(--cream-100);border:1px solid var(--line-strong);
  color:var(--forest-700);font-weight:750;font-size:14px;cursor:pointer;
  transition:background .12s ease,border-color .12s ease,transform .06s ease;
}
.dir-tool span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dir-tool svg{width:17px;height:17px;flex:0 0 17px;stroke-width:2}
.dir-tool:active{transform:scale(.97);background:#f1ede1}
.dir-tool-primary{
  background:var(--forest-600);border-color:transparent;color:#fff;
  box-shadow:0 2px 8px rgba(30,55,30,.18);
}
.dir-tool-primary:active{background:var(--forest-700)}
.dir-count{
  margin:0 4px 12px;font-size:12.5px;font-weight:650;color:var(--ink-400);
  letter-spacing:.01em;
}
.directory-list{display:grid;gap:9px}
.directory-card{
  width:100%;display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:13px;text-align:left;
  padding:12px 14px;border-radius:20px!important;background:rgba(255,253,247,.94)!important;
  transition:transform var(--t-fast),box-shadow var(--t-fast),border-color var(--t-fast);
}
button.directory-card:hover{transform:translateY(-1px);border-color:rgba(74,115,81,.24)!important;box-shadow:var(--shadow-md)!important}
.directory-card .avatar.lg{width:54px;height:54px;border-radius:19px;font-size:18px;margin:0!important}
.dir-main{min-width:0;display:grid;gap:2px}
.dir-main strong{font-size:16px;font-weight:900;color:var(--ink-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dir-main em{font-style:normal;font-size:12.5px;font-weight:750;color:var(--ink-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dir-main small{display:flex;align-items:center;gap:5px;min-width:0;font-size:11.5px;font-weight:650;color:var(--ink-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dir-main small svg{width:14px;height:14px;flex:0 0 auto;opacity:.75}
.dir-pills{display:flex;gap:5px;align-items:flex-end;justify-content:flex-end;flex-wrap:wrap;max-width:260px}
.dir-pills i{font-style:normal;font-size:10.5px;font-weight:900;color:var(--forest-700);background:var(--sage-100);border:1px solid rgba(74,115,81,.12);border-radius:999px;padding:5px 8px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.client-card-list .dir-pills i{background:var(--cream-100);color:var(--clay-700);border-color:rgba(163,90,53,.13)}
.client-card-list .dir-docpill{display:flex;align-items:center;gap:4px;background:var(--sage-100)!important;color:var(--forest-700)!important;border-color:rgba(74,115,81,.16)!important}
.client-card-list .dir-docpill svg{width:12px;height:12px}
/* ---- Client profile screen ---- */
.client-profile-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:15px;padding:18px 18px}
.avatar.xl{width:66px;height:66px;border-radius:22px;font-size:24px;font-weight:900;display:grid;place-items:center;margin:0}
.avatar.clay{background:linear-gradient(150deg,var(--clay-400),var(--forest-700));color:#fff}
.cph-copy{min-width:0}
.cph-copy h2{font-size:23px;font-weight:900;letter-spacing:-.02em;color:var(--ink-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.cph-copy p{font-size:13px;font-weight:700;color:var(--ink-500);margin:3px 0 0}
.cph-edit{flex-shrink:0;white-space:nowrap}
.client-quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.cqa{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:15px 8px;border-radius:18px;background:linear-gradient(180deg,rgba(255,253,247,.96),rgba(239,233,219,.9));border:1px solid var(--line);box-shadow:var(--shadow-xs);color:var(--forest-700);font-size:12.5px;font-weight:800;text-decoration:none;transition:.15s}
.cqa:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.cqa svg{width:22px;height:22px}
.cqa-off{opacity:.4;pointer-events:none}
.client-info-card{padding:6px 4px}
.ci-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px;align-items:start;padding:13px 16px;border-bottom:1px solid var(--line)}
.ci-row:last-child{border-bottom:0}
.ci-label{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;color:var(--ink-500)}
.ci-label svg{width:16px;height:16px;opacity:.7}
.ci-val{font-size:14px;font-weight:650;color:var(--ink-900);word-break:break-word}
.ci-notes{align-items:start}.ci-notes .ci-val{white-space:pre-wrap}
.client-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.client-stat-row .dir-stat{text-align:center}
.client-stat-row .dir-stat strong{display:block;font-size:19px;font-weight:900;color:var(--forest-700)}
.client-stat-row .dir-stat span{font-size:10.5px;font-weight:750;color:var(--ink-500)}
.client-docs-card{padding:16px}
.cd-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.cd-head strong{font-size:16px;font-weight:900;color:var(--ink-900);display:block}
.cd-head em{font-style:normal;font-size:12px;font-weight:700;color:var(--ink-500)}
.cd-cat{margin-bottom:14px}
.cd-cat:last-child{margin-bottom:0}
.cd-cat-title{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:var(--forest-600);margin-bottom:8px}
.cd-cat-title i{font-style:normal;font-size:10.5px;background:var(--sage-100);color:var(--forest-700);border-radius:999px;padding:2px 8px;font-weight:900}
.cd-file{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 13px;border-radius:14px;background:linear-gradient(180deg,rgba(255,253,247,.96),rgba(244,241,230,.9));border:1px solid var(--line);margin-bottom:8px}
.cd-file:last-child{margin-bottom:0}
.cd-file-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--sage-100);color:var(--forest-700)}
.cd-file-ic svg{width:19px;height:19px}
.cd-file-main{min-width:0}
.cd-file-main strong{display:block;font-size:14px;font-weight:800;color:var(--ink-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cd-file-main small{font-size:11.5px;font-weight:650;color:var(--ink-500)}
.cd-file-actions{display:flex;gap:6px;flex-shrink:0}
.cd-act{width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--forest-700);display:grid;place-items:center;cursor:pointer;transition:.15s}
.cd-act:hover{background:var(--sage-50);transform:translateY(-1px)}
.cd-act svg{width:16px;height:16px}
.cd-del{color:var(--clay-600)}.cd-del:hover{background:#fbeee7}
.cd-empty{text-align:center;padding:26px 16px;color:var(--ink-400)}
.cd-empty svg{width:34px;height:34px;opacity:.5;margin-bottom:8px}
.cd-empty p{font-size:13px;font-weight:600;color:var(--ink-500);max-width:34ch;margin:0 auto}
@media(max-width:720px){
  .client-profile-hero{grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px}
  .avatar.xl{width:56px;height:56px;border-radius:18px;font-size:20px}
  .cph-copy h2{font-size:20px}
  .cph-edit{grid-column:1/-1;width:100%;margin-top:4px}
  .cqa{padding:13px 6px;border-radius:15px;font-size:11.5px}.cqa svg{width:20px;height:20px}
  .ci-row{grid-template-columns:110px minmax(0,1fr);padding:12px 13px}
  .client-docs-card{padding:13px}
}
@media(max-width:720px){
  .manager-hero{grid-template-columns:48px minmax(0,1fr);padding:14px;border-radius:20px;gap:11px}
  .mh-icon{width:48px;height:48px;border-radius:17px}.mh-icon svg{width:23px;height:23px}
  .mh-copy h2{font-size:25px}.mh-copy p{font-size:12px;line-height:1.36}
  .mh-add{grid-column:1/-1;width:100%;height:40px}
  .directory-stats{gap:7px}.dir-stat{padding:10px 9px;border-radius:15px}.dir-stat strong{font-size:20px}.dir-stat span{font-size:9.5px;line-height:1.1}
  .directory-toolbar{padding:8px;border-radius:17px;gap:7px}.dir-search{height:39px;border-radius:12px;padding:0 10px}.directory-toolbar .btn{height:39px;padding:0 12px}
  .dir-toolbar-v2{padding:10px;gap:9px}.dir-toolbar-v2 .dir-search{height:44px;border-radius:13px}.dir-tools{gap:7px}.dir-tool{height:42px;font-size:13.5px;gap:6px}.dir-tool svg{width:16px;height:16px;flex:0 0 16px}.dir-count{font-size:12px;margin:0 4px 11px}
  .directory-card{grid-template-columns:44px minmax(0,1fr);gap:10px;padding:10px 11px;border-radius:17px!important}
  .directory-card .avatar.lg{width:44px;height:44px;border-radius:16px;font-size:15px}
  .dir-main strong{font-size:14.2px}.dir-main em{font-size:11.2px}.dir-main small{font-size:10.8px}
  .dir-pills{grid-column:1/-1;justify-content:flex-start;max-width:none;margin-left:54px}.dir-pills i{font-size:9.5px;padding:4px 7px}
}


/* ──────────────────────────────────────────────────────────
   V15 CLEAN MOBILE MENU + DIRECTORY HUB
   Messages is back as the 3rd mobile item. Documents are now
   accessed from Profile, while Staff + Clients live in Directory.
   ────────────────────────────────────────────────────────── */
/* ============================================================
   DIRECTORY PAGE — crisp, professional redesign (v135)
   Flat clean surfaces, a calm forest hero, two clear summary
   cards, and a full-width "Quick preview" contact list with
   hairline dividers instead of cramped side-by-side boxes.
   ============================================================ */
.directory-hub-hero{
  display:grid;grid-template-columns:56px minmax(0,1fr);gap:15px;align-items:center;
  padding:18px 18px;border-radius:22px!important;overflow:hidden;
  background:linear-gradient(150deg,#22432e 0%,#1a3725 60%,#15301f 100%)!important;
  border:1px solid rgba(255,255,255,.07)!important;
  box-shadow:0 12px 28px rgba(20,42,26,.22)!important;
}
.dhh-badge{
  width:56px;height:56px;border-radius:18px;display:grid;place-items:center;
  background:rgba(255,255,255,.10);color:#f3efe4;
  border:1px solid rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.14);
}
.dhh-badge svg{width:26px;height:26px;stroke-width:2.1}
.dhh-copy span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:#cf9a68;margin-bottom:4px}
.dhh-copy h2{font-family:var(--font-display,"Fraunces",Georgia,serif);font-size:25px;line-height:1.05;font-weight:600;color:#fbf8f0;letter-spacing:-.01em}
.dhh-copy p{font-size:12.5px;line-height:1.4;font-weight:500;color:rgba(233,238,229,.72);margin-top:5px;max-width:620px}

.directory-hub-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}
.directory-hub-card{
  width:100%;text-align:left;display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:13px;
  padding:14px 15px;border-radius:18px!important;overflow:hidden;
  background:#fffefb!important;
  border:1px solid rgba(40,58,42,.10)!important;
  box-shadow:0 2px 8px rgba(35,50,37,.05)!important;
  transition:transform var(--t-fast),box-shadow var(--t-fast),border-color var(--t-fast);
}
.directory-hub-card:active{transform:scale(.99)}
@media(hover:hover){.directory-hub-card:hover{border-color:rgba(74,115,81,.30)!important;box-shadow:0 6px 16px rgba(35,50,37,.10)!important}}
.dhc-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:#fff7e8;background:linear-gradient(150deg,var(--forest-500),var(--forest-800));box-shadow:0 4px 10px rgba(33,71,40,.18)}
.directory-hub-card.clients .dhc-icon{background:linear-gradient(150deg,var(--clay-500),var(--clay-700))}
.dhc-icon svg{width:23px;height:23px;stroke-width:2.1}
.dhc-main{min-width:0;display:grid;gap:2px}
.dhc-main strong{font-size:16px;font-weight:800;color:var(--ink-900);letter-spacing:-.01em}
.dhc-main em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--ink-600)}
.dhc-main small{font-size:11.5px;font-weight:600;color:var(--ink-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dhc-go{font-size:11.5px;font-weight:800;color:var(--forest-700);background:var(--sage-100);border:1px solid rgba(74,115,81,.16);border-radius:999px;padding:7px 14px}
.directory-hub-card.clients .dhc-go{color:var(--clay-700);background:#f6ece3;border-color:rgba(163,90,53,.16)}

.directory-action-row{display:grid;grid-template-columns:1fr;gap:10px;margin-top:12px}

/* Quick preview — full-width contact lists, hairline dividers */
.directory-preview-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:8px}
.dir-preview-card{padding:6px 16px 10px!important;border-radius:18px!important;background:#fffefb!important;border:1px solid rgba(40,58,42,.10)!important;box-shadow:0 2px 8px rgba(35,50,37,.05)!important}
.dir-preview-head{display:flex;align-items:center;justify-content:space-between;padding:12px 0 10px;margin-bottom:2px;border-bottom:1px solid rgba(40,58,42,.08)}
.dir-preview-head strong{font-size:14px;font-weight:800;color:var(--forest-800);letter-spacing:.01em}
.dir-preview-head button{font-size:11px;font-weight:800;color:var(--clay-700);padding:6px 12px;border-radius:999px;background:#f6ece3;border:1px solid rgba(163,90,53,.14)}
.dir-mini-row{width:100%;display:flex;align-items:center;gap:12px;padding:11px 4px;border-radius:0;text-align:left;border-bottom:1px solid rgba(40,58,42,.07)}
.dir-mini-row:last-child{border-bottom:0}
@media(hover:hover){.dir-mini-row:hover{background:transparent}}
.dir-mini-row b{display:block;font-size:14px;font-weight:800;color:var(--ink-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.005em}
.dir-mini-row em{display:block;font-style:normal;font-size:12px;font-weight:600;color:var(--ink-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.dir-mini-row.client{cursor:default}
@media(max-width:1023px){
}
@media(max-width:720px){
  .directory-hub-hero{grid-template-columns:52px minmax(0,1fr);gap:13px;padding:16px;border-radius:20px!important}.dhh-badge{width:52px;height:52px;border-radius:16px}.dhh-badge svg{width:24px;height:24px}.dhh-copy h2{font-size:23px}.dhh-copy p{font-size:12px;line-height:1.38}
  .directory-hub-grid,.directory-preview-grid,.directory-action-row{grid-template-columns:1fr;gap:10px}.directory-hub-card{grid-template-columns:44px minmax(0,1fr) auto;padding:13px;border-radius:16px!important}.dhc-icon{width:44px;height:44px;border-radius:13px}.dhc-main strong{font-size:15.5px}.dhc-main em{font-size:12px}.dhc-main small{font-size:11px}.dhc-go{font-size:11px;padding:6px 13px}
}
@media(max-width:380px){}



/* ──────────────────────────────────────────────────────────
   V16 HEADER CLEANUP — logout removed from top bar
   ────────────────────────────────────────────────────────── */
.topbar-actions{
  gap:12px!important;
  align-items:center!important;
}
.topbar-actions .top-signout{display:none!important}
.topbar-actions .top-profile,
.topbar-actions .icon-btn{
  isolation:isolate;
}
.topbar-actions .top-profile{
  order:1;
}
.topbar-actions .icon-btn{
  order:2;
}
.topbar-actions::after{
  content:"";
  position:absolute;
  inset:-5px -6px;
  border-radius:999px;
  background:linear-gradient(135deg,rgba(239,231,211,.08),rgba(111,139,93,.05));
  border:1px solid rgba(239,231,211,.10);
  pointer-events:none;
  z-index:-1;
}
@media(max-width:1023px){
  .topbar-actions{gap:10px!important;margin-right:2px!important}
  .topbar-actions::after{inset:-4px -5px;border-radius:999px}
}
@media(max-width:640px){
  .topbar-actions{gap:9px!important}
  .topbar-actions .top-profile,.topbar-actions .icon-btn{width:40px!important;min-width:40px!important;height:40px!important}
}
@media(max-width:380px){
  .topbar-actions{gap:8px!important}
  .topbar-actions .top-profile,.topbar-actions .icon-btn{width:36px!important;min-width:36px!important;height:36px!important}
}



/* ============================================================
   V27 Sleek Roster Card Edge + Time Range + Solid Mobile Dock
   ============================================================ */
.shift-card{
  border-radius:18px!important;
  min-height:68px!important;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--solid) 16%,#fff5e4) 0%,#fff8eb 48%,color-mix(in srgb,var(--solid) 12%,#e7eedf) 100%)!important;
  border:1px solid color-mix(in srgb,var(--solid) 34%,rgba(42,65,42,.13))!important;
  box-shadow:
    0 10px 24px rgba(26,39,26,.075),
    0 3px 12px -8px color-mix(in srgb,var(--solid) 80%,transparent),
    inset 0 1px 0 rgba(255,255,255,.72),
    inset 0 0 0 1px rgba(255,255,255,.34)!important;
}
.shift-card::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:18px!important;
  padding:2px!important;
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--solid) 72%,#e9c886) 0%,
      rgba(255,255,255,.72) 26%,
      color-mix(in srgb,var(--deep) 56%,#b99566) 55%,
      rgba(255,255,255,.55) 76%,
      color-mix(in srgb,var(--solid) 66%,#d7bd8c) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0)!important;
  -webkit-mask-composite:xor!important;
  mask-composite:exclude!important;
  pointer-events:none!important;
  z-index:3!important;
}
.shift-card .sc-time{
  width:52px!important;
  border-right:1px solid rgba(255,255,255,.20)!important;
  box-shadow:inset -1px 0 0 rgba(0,0,0,.09), inset 1px 0 0 rgba(255,255,255,.18)!important;
}
.shift-card .sc-main{position:relative;z-index:2!important;background:linear-gradient(90deg,rgba(255,253,247,.44),rgba(255,253,247,.12))!important}
.shift-card .sc-row1{gap:6px!important;align-items:center!important}
.shift-card .sc-status{margin-left:0!important}
.shift-card .sc-end{display:none!important}
.wk-cell{
  border-radius:13px!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,#fff8ed),#fffaf0 58%,color-mix(in srgb,var(--accent) 10%,#e9efe1))!important;
  border-color:color-mix(in srgb,var(--accent) 30%,rgba(42,65,42,.13))!important;
  box-shadow:0 6px 14px rgba(26,39,26,.055),inset 0 1px 0 rgba(255,255,255,.72)!important;
}
.wk-cell::before{width:5px!important;border-radius:0 10px 10px 0;background:linear-gradient(180deg,var(--accent),var(--accent-deep),color-mix(in srgb,var(--accent) 70%,#d7bd8c))!important}
.wkc-time{
  display:inline-flex!important;align-items:center!important;
  padding:2px 7px!important;border-radius:999px!important;
  background:color-mix(in srgb,var(--accent) 13%,#fff8e8)!important;
  border:1px solid color-mix(in srgb,var(--accent) 24%,rgba(42,65,42,.10))!important;
  font-size:10.9px!important;
}
@media(max-width:1023px){
  /* v447: legacy 94px bottom gradient + oversized content padding removed */
  .mtab.active{background:linear-gradient(180deg,#5f824f,#477046 58%,#335735)!important;border-color:rgba(232,222,198,.36)!important}
  .shift-card{min-height:62px!important;margin-bottom:7px!important;border-radius:16px!important}
  .shift-card::before{border-radius:16px!important;padding:1.5px!important}
  .shift-card .sc-time{width:47px!important;padding:6px 2px!important}
}
@media(max-width:390px){
  .shift-card .sc-time{width:44px!important}
  /* v447: legacy 98px bottom fill removed */
}



/* ============================================================
   V28 Employee Clock + Timesheet Polish
   ============================================================ */
.clock-subnav{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px!important;border-radius:22px!important;
  background:linear-gradient(180deg,#efe7d8,#dfe9d8)!important;border:1px solid rgba(60,88,55,.16)!important;
  box-shadow:0 10px 22px rgba(31,47,31,.06)!important;margin-bottom:10px!important;position:relative;z-index:2;
}
.clock-subnav button{
  height:44px;border-radius:16px;border:1px solid transparent;background:rgba(255,250,236,.48);display:flex;align-items:center;justify-content:center;gap:7px;
  font-weight:900;color:#334b34;font-size:12.8px;letter-spacing:-.01em;position:relative;overflow:hidden;
}
.clock-subnav button svg{width:16px;height:16px;stroke-width:2.1}.clock-subnav button em{position:absolute;right:8px;top:6px;min-width:18px;height:18px;border-radius:999px;background:#b77a3e;color:#fff8e8;font-size:10px;font-style:normal;display:grid;place-items:center}.clock-subnav button.active{background:linear-gradient(180deg,#4f754d,#264b2c)!important;color:#fff8e8!important;box-shadow:0 8px 18px rgba(35,70,39,.22),inset 0 1px 0 rgba(255,255,255,.16)}.clock-hand.h1{height:20px;transform:translate(-50%,-100%) rotate(45deg)}.clock-hand.h2{height:15px;transform:translate(-50%,-100%) rotate(145deg);background:#b17641}.active-face{width:150px;height:150px;border-radius:42px;margin:14px auto 10px;background:radial-gradient(circle at 50% 42%,#fffdf5,#deead7 64%,#bfcfb7)}.active-face::before{display:none}.active-face .ring-svg{position:absolute;inset:7px;width:calc(100% - 14px);height:calc(100% - 14px)}.emp-shift.v28-slim-shift{position:relative;overflow:hidden;padding:9px 10px 10px!important;border-radius:18px!important;background:linear-gradient(135deg,color-mix(in srgb,var(--solid) 20%,#fff3dd) 0%,#fff8ec 50%,color-mix(in srgb,var(--solid) 13%,#e2eadb) 100%)!important;border:1px solid color-mix(in srgb,var(--solid) 35%,rgba(39,63,39,.14))!important;box-shadow:0 9px 20px rgba(30,45,31,.065),inset 0 1px 0 rgba(255,255,255,.72)!important}.emp-shift.v28-slim-shift::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--solid),color-mix(in srgb,var(--solid) 50%,#c69a58),transparent)}.emp-shift.v28-slim-shift::after{content:"";position:absolute;right:-26px;top:-34px;width:95px;height:95px;border-radius:50%;background:color-mix(in srgb,var(--solid) 12%,transparent);pointer-events:none}.emp-shift.v28-slim-shift .es-copy{position:relative;z-index:1;min-width:0}.emp-shift.v28-slim-shift h3{font-family:var(--font-display);font-size:20px!important;line-height:1.05!important;font-weight:650!important;color:#1d2d20!important;margin:0 0 5px!important}.emp-shift.v28-slim-shift .es-loc{display:flex;align-items:center;gap:5px;font-size:12px!important;color:#667061!important;margin:0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emp-shift.v28-slim-shift .es-loc svg{width:13px;height:13px;flex-shrink:0;color:var(--solid)}.emp-shift.v28-slim-shift .es-note{margin-top:7px!important;border-radius:12px!important;padding:7px 9px!important;font-size:12px!important;background:rgba(255,251,241,.68)!important;border:1px solid rgba(75,90,65,.08)!important;color:#4e564e!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emp-shift.v28-slim-shift .es-actions{position:relative;z-index:1;display:grid!important;grid-template-columns:1fr 1fr 1.1fr!important;gap:7px!important;margin-top:8px!important;padding-top:8px!important;border-top:1px solid color-mix(in srgb,var(--solid) 15%,rgba(38,61,38,.11))!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start,.emp-shift.v28-slim-shift .ec-done,.emp-shift.v28-slim-shift .ec-declined{height:36px!important;border-radius:13px!important;font-size:12px!important;font-weight:950!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important}.emp-shift.v28-slim-shift .ec-start{background:linear-gradient(135deg,var(--solid),var(--deep))!important;color:#fff8e8!important;box-shadow:0 8px 16px color-mix(in srgb,var(--solid) 25%,transparent)!important}.emp-shift.v28-slim-shift .ec-accept{background:#e4eedc!important;color:#355b37!important}.emp-shift.v28-slim-shift .ec-reject{background:#fff8f5!important;color:#a0443b!important;border:1px solid rgba(160,68,59,.22)!important}.clock-empty-card .btn{margin-top:8px}
.clock-timesheet-page .payroll-mobile-simple{margin-top:0!important}.clock-timesheet-page .payroll-mobile-simple .section-head{margin-top:6px!important}.locked-pill{display:inline-flex!important;align-items:center!important;gap:4px!important}.locked-pill svg{width:12px!important;height:12px!important;stroke-width:2.2}.rec-row.ts-compact.locked{background:linear-gradient(135deg,#f6f0e2,#e9efe2)!important;border-color:rgba(72,92,62,.18)!important}.rec-row.ts-compact.locked .rec-ic{background:linear-gradient(135deg,#385f3b,#213e26)!important;color:#fff8e8!important}
@media(max-width:720px){
  .clock-subnav{gap:6px;padding:5px!important;border-radius:19px!important;margin-bottom:8px!important}.clock-subnav button{height:39px;border-radius:14px;font-size:11.5px}.clock-subnav button svg{width:14px;height:14px}.active-face{width:122px;height:122px;border-radius:34px;margin:10px auto 8px}.emp-shift.v28-slim-shift{padding:8px 9px 9px!important;border-radius:16px!important}.emp-shift.v28-slim-shift h3{font-size:17px!important}.emp-shift.v28-slim-shift .es-loc{font-size:11px!important}.emp-shift.v28-slim-shift .es-note{padding:6px 8px!important;font-size:11px!important;margin-top:6px!important}.emp-shift.v28-slim-shift .es-actions{gap:6px!important;margin-top:7px!important;padding-top:7px!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start,.emp-shift.v28-slim-shift .ec-done,.emp-shift.v28-slim-shift .ec-declined{height:31px!important;border-radius:11px!important;font-size:10.5px!important}.payroll-mobile-simple .ts-day-card{border-radius:18px!important;padding:10px!important}
}
@media(max-width:390px){.emp-shift.v28-slim-shift .es-actions{grid-template-columns:.95fr .95fr 1.05fr!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start{font-size:9.6px!important}.clock-subnav button span{max-width:86px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emp-shift.v28-slim-shift h3{font-size:16px!important}}
@media(max-width:1023px){
  /* v447: legacy 118px bottom gradient removed - the .wwnav bar now paints its own background */
}



/* V28b extra squeeze for employee clock cards */
@media(max-width:720px){.emp-shift.v28-slim-shift{padding:7px 8px 8px!important;border-radius:15px!important}.emp-shift.v28-slim-shift h3{font-size:15.6px!important;margin-bottom:3px!important}.emp-shift.v28-slim-shift .es-loc{font-size:10.5px!important}.emp-shift.v28-slim-shift .es-note{margin-top:5px!important;padding:5px 7px!important;font-size:10.6px!important;border-radius:10px!important}.emp-shift.v28-slim-shift .es-actions{margin-top:6px!important;padding-top:6px!important;gap:5px!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start,.emp-shift.v28-slim-shift .ec-done,.emp-shift.v28-slim-shift .ec-declined{height:28px!important;border-radius:10px!important;font-size:9.8px!important}.emp-shift.v28-slim-shift .ec-reject svg,.emp-shift.v28-slim-shift .ec-accept svg,.emp-shift.v28-slim-shift .ec-start svg{width:13px!important;height:13px!important}
}


/* ============================================================
   V29 Timesheet Request Polish — no break, client search + add
   ============================================================ */
.timesheet-modal{
  max-width:640px!important;
  border-radius:26px!important;
  background:linear-gradient(180deg,#fffdf7 0%,#f4efe4 100%)!important;
}
.timesheet-modal .modal-head{
  padding:22px 24px 12px!important;
  background:linear-gradient(180deg,#fffdf7,#f7f1e6)!important;
  border-bottom:1px solid rgba(55,75,48,.08)!important;
}
.timesheet-modal .modal-body{padding:14px 24px 6px!important}
.timesheet-modal .modal-foot{
  background:linear-gradient(180deg,rgba(247,241,230,.72),#efe8d9)!important;
  border-top:1px solid rgba(55,75,48,.10)!important;
  box-shadow:0 -12px 28px rgba(35,47,31,.08)!important;
}
.missed-intro{
  display:grid;gap:4px;margin-bottom:12px;padding:12px 13px;border-radius:17px;
  background:linear-gradient(135deg,#e5eedf,#f4e7d4);
  border:1px solid rgba(67,95,61,.13);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.62);
}
.missed-intro strong{font-family:var(--font-display);font-size:18px;font-weight:650;color:#203525;letter-spacing:-.02em}
.missed-intro span{font-size:12.2px;line-height:1.35;color:#62705f;font-weight:650}
.ts-client-picker{display:grid;gap:8px}
.ts-client-selected{
  display:grid;gap:2px;padding:9px 11px;border-radius:15px;
  background:linear-gradient(135deg,#fff8ec,#e8efe1);
  border:1px solid rgba(58,88,55,.14);
  box-shadow:0 4px 12px rgba(35,47,31,.045),inset 0 1px 0 rgba(255,255,255,.72);
}
.ts-client-selected strong{font-size:13.5px;color:#203525;font-weight:900;line-height:1.1}
.ts-client-selected span{font-size:11.2px;color:#667061;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ts-client-search{
  height:42px;border-radius:14px;background:#fffaf0;border:1px solid rgba(58,78,51,.15);
  display:flex;align-items:center;gap:8px;padding:0 11px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
.ts-client-search svg{width:16px;height:16px;color:#64755f;flex-shrink:0}.ts-client-search input{border:0;background:transparent;outline:0;min-width:0;flex:1;font-size:14px;font-weight:800;color:#243128}.ts-client-search input::placeholder{color:#8a9288}
.ts-client-results{display:grid;gap:5px;max-height:172px;overflow:auto;padding:3px;border-radius:16px;background:rgba(235,228,214,.55);border:1px solid rgba(58,78,51,.08)}
.ts-client-results.is-collapsed{display:none}
.ts-client-row{
  min-height:43px;border:1px solid rgba(55,75,48,.10);border-radius:13px;background:rgba(255,253,247,.82);
  display:flex;align-items:center;gap:9px;text-align:left;padding:7px 9px;color:#263128;
  box-shadow:0 2px 8px rgba(36,49,40,.035);
}
.ts-client-row.selected{background:linear-gradient(135deg,#e1ecd9,#f4ead8);border-color:rgba(61,94,58,.24)}
.ts-client-dot{width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(65,92,61,.25);display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(65,92,61,.10);font-size:12px;font-weight:900;flex-shrink:0}
.ts-client-row.selected .ts-client-dot{background:linear-gradient(135deg,#4b7548,#213f26);border-color:rgba(255,255,255,.35)}
.ts-client-row strong{display:block;font-size:12.8px;font-weight:900;color:#203525;line-height:1.1}.ts-client-row small{display:block;font-size:10.8px;color:#687366;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:430px;margin-top:2px}
.ts-add-client-toggle{
  height:36px;border-radius:13px;border:1px solid rgba(58,88,55,.12);background:linear-gradient(135deg,#e7efdf,#f4ead8);
  color:#2e5432;font-size:12.2px;font-weight:900;text-align:center;
}
.ts-add-client-panel{display:none;gap:8px;padding:10px;border-radius:16px;background:linear-gradient(135deg,#fff8ec,#e8efe1);border:1px solid rgba(64,91,59,.12)}
.ts-add-client-panel.open{display:grid}
.ts-add-client-panel .btn{height:38px;border-radius:12px;font-size:12px;font-weight:900}
.timesheet-modal .row2{gap:10px!important}
.timesheet-modal .field{margin-bottom:10px!important;gap:5px!important}
.timesheet-modal .field label{font-size:12.4px!important;color:#354437!important}
.timesheet-modal .input{height:44px!important;border-radius:14px!important;background:#fffaf0!important;border-color:rgba(54,74,48,.14)!important;font-size:14px!important;padding:0 12px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.78)!important}
.timesheet-modal textarea.input{height:auto!important;min-height:76px!important;padding:10px 12px!important;line-height:1.35!important}
@media(max-width:720px){
  .timesheet-modal{max-height:calc(100dvh - 28px)!important;border-radius:24px 24px 0 0!important}
  .timesheet-modal .modal-head{padding:15px 16px 9px!important}.timesheet-modal .modal-head h2{font-size:21px!important}
  .timesheet-modal .modal-body{padding:10px 14px 5px!important}.timesheet-modal .modal-foot{padding:9px 14px calc(11px + var(--safe-b))!important;gap:8px!important}.timesheet-modal .modal-foot .btn{height:40px!important;border-radius:13px!important;font-size:13px!important;min-width:0!important;flex:1!important}
  .missed-intro{padding:10px 11px!important;border-radius:15px!important;margin-bottom:9px!important}.missed-intro strong{font-size:16px!important}.missed-intro span{font-size:11px!important}
  .timesheet-modal .input{height:40px!important;border-radius:12px!important;font-size:13.3px!important;padding:0 10px!important}.timesheet-modal textarea.input{min-height:66px!important;padding:9px 10px!important;font-size:13.2px!important}
  .timesheet-modal .field{margin-bottom:8px!important}.timesheet-modal .field label{font-size:11px!important}
  .ts-client-selected{padding:8px 10px!important;border-radius:13px!important}.ts-client-selected strong{font-size:12.7px!important}.ts-client-selected span{font-size:10.4px!important}
  .ts-client-search{height:39px!important;border-radius:13px!important}.ts-client-search input{font-size:13.2px!important}.ts-client-results{max-height:136px!important;border-radius:14px!important}.ts-client-row{min-height:38px!important;padding:6px 8px!important;border-radius:12px!important}.ts-client-row strong{font-size:12px!important}.ts-client-row small{font-size:10px!important}.ts-add-client-toggle{height:33px!important;border-radius:12px!important;font-size:11.5px!important}.ts-add-client-panel{padding:8px!important;border-radius:14px!important}.ts-add-client-panel .row2{gap:7px!important}.ts-add-client-panel .btn{height:35px!important}
}
@media(max-width:390px){.timesheet-modal .row2{grid-template-columns:1fr 1fr!important;gap:7px!important}.timesheet-modal .modal-head h2{font-size:19px!important}.ts-client-row small{max-width:240px!important}.timesheet-modal .modal-foot .btn{font-size:11.5px!important}}


/* V29 animation stability: keep modals solid and readable */
.modal-overlay{animation:none!important;opacity:1!important}
.timesheet-modal{animation:none!important;opacity:1!important;transform:none!important;background:linear-gradient(180deg,#fffdf7 0%,#f4efe4 100%)!important}





/* v34 — restore isolated Next Shift layout only */
.employee-dashboard > .section-head.next-title{
  display:flex!important;
  align-items:center!important;
  margin-top:18px!important;
  margin-bottom:10px!important;
  clear:both!important;
}
.employee-dashboard > .section-head.next-title h2{
  margin:0!important;
}
@media(max-width:720px){
}



/* Easy employee login upgrade */
.employee-login-help{
  display:grid;
  gap:6px;
  margin:0 0 14px;
  padding:12px 13px;
  border-radius:17px;
  background:linear-gradient(135deg,#eef6e8,#fff8eb);
  border:1px solid rgba(55,88,49,.16);
  color:#213b22;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
}
.employee-login-help strong{font-size:13px;font-weight:900;color:#17351c;letter-spacing:-.01em}
.employee-login-help span{font-size:12px;font-weight:700;color:#526252;line-height:1.25}
.employee-login-help b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.employee-first-login-btn{
  width:100%;
  min-height:44px;
  margin-top:9px;
  border:1px solid rgba(55,88,49,.18);
  background:#fffaf0;
  border-radius:15px;
  color:#24452a;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
}
.employee-first-login-btn:hover{background:#eef6e8}
.login-share-note,.login-details-card{
  margin-top:10px;
  padding:12px 13px;
  border-radius:16px;
  background:linear-gradient(135deg,#f3eadb,#e6f0df);
  border:1px solid rgba(58,88,54,.14);
  color:#2c4630;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}
.login-details-card{display:grid;gap:6px;margin:12px 0}
.login-details-card strong{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:950;color:#18341d}
.login-details-card strong svg{width:16px;height:16px}
.login-details-card span{font-size:12px;color:#526252}
.login-details-card b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.login-details-card small{font-size:11.5px;color:#687467;font-weight:700}
@media(max-width:480px){.employee-login-help{padding:10px 11px}.employee-first-login-btn{min-height:42px;font-size:12px}}




/* FINAL FIX: remove old thick green bottom spacer layer above the circular menu */
@media (max-width:1023px){
  html, body{background:var(--bg)!important;}
  .app-shell::before,.app-shell::after,.content::before,.content::after{display:none!important;content:none!important;}
  .content{padding-bottom:96px!important;}
  body.chat-thread-open .content{padding-bottom:0!important;}
  .mtab.active{transform:none!important;}
}
@media (max-width:380px){
}



/* ---- inline style 2 ---- */

/* V23: timesheet layout kept from V21, menu kept from V16 */
.payroll-mobile-simple .section-head h2{font-family:var(--font-display);font-weight:600;letter-spacing:-.025em}.payroll-mobile-simple .section-head{margin-bottom:0}.payroll-mobile-simple .section-head h2{font-size:22px!important;color:var(--forest-900)}.payroll-mobile-simple .section-head .count{background:linear-gradient(180deg,#e5eede,#d8e5cf);color:#2f5b3b;border-color:rgba(75,112,83,.18)}.payroll-mobile-simple .section-head .rh-nav{background:linear-gradient(180deg,#fffdf8,#ede7d8)!important;border-color:rgba(73,91,64,.14)!important}.payroll-mobile-simple .ts-day-row{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.payroll-mobile-simple .ts-chip.sel{background:linear-gradient(180deg,var(--forest-600),var(--forest-800))!important}.ts-day-card{border-radius:20px!important;background:linear-gradient(180deg,#fffdf8,#f5f0e7)!important;border-color:rgba(73,91,64,.12)!important;box-shadow:0 8px 20px rgba(35,47,31,.05)!important}.ts-day-card .ts-day-head strong{color:var(--forest-900)}
@media(max-width:560px){.payroll-mobile-simple .ts-day-row{gap:5px}}
@media(max-width:390px){}.acs-week-nav .rh-nav{width:40px;height:40px;border-radius:14px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);color:#fff}.acs-stat.warn strong{color:var(--clay-600)}.acs-employee-picker summary span:not(.ce-chev){display:block;font-size:12px;color:var(--ink-500);font-weight:650;margin-top:2px}.acs-employee-picker[open] .ce-chev{transform:rotate(270deg)}.acs-emp-btn.active{background:linear-gradient(180deg,#e5ecdd,#d9e5d1);border-color:rgba(74,115,81,.24)}.acs-emp-btn b.warn{color:var(--clay-600)}.acs-emp-nav .btn{height:34px;border-radius:12px;font-size:11.5px;padding:0 9px}.acs-emp-nav .btn:last-child svg{transform:rotate(180deg)}.acs-day.sel{background:linear-gradient(180deg,var(--forest-600),var(--forest-800));border-color:rgba(255,255,255,.14);box-shadow:0 9px 18px rgba(41,73,47,.18)}.acs-day.sel span,.acs-day.sel strong,.acs-day.sel em{color:#fffaf0}.acs-day.today:not(.sel){background:linear-gradient(180deg,#fffaf4,#f6e3ce);border-color:rgba(189,112,72,.24)}.acs-record-list{display:grid;gap:9px}.admin-clock-simple .ts-row-actions .btn{height:31px;border-radius:10px;font-size:10.5px;padding:0 8px}.admin-clock-simple .clock-exports{margin-top:2px!important}
@media(max-width:560px){.admin-clock-simple .rec-row.ts-compact .pill{grid-column:2;justify-self:start;margin-top:6px}}
@media(max-width:430px){.acs-week-nav .rh-nav{width:34px!important;height:34px!important;border-radius:12px!important}.acs-employee-picker summary span:not(.ce-chev){font-size:10.5px!important}.acs-selected-head .avatar{width:34px!important;height:34px}.acs-emp-nav .btn{height:30px!important;font-size:10px!important;padding:0 8px!important}}


/* ============================================================
   V27 Sleek Roster Card Edge + Time Range + Solid Mobile Dock
   ============================================================ */
.shift-card{
  border-radius:18px!important;
  min-height:68px!important;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--solid) 16%,#fff5e4) 0%,#fff8eb 48%,color-mix(in srgb,var(--solid) 12%,#e7eedf) 100%)!important;
  border:1px solid color-mix(in srgb,var(--solid) 34%,rgba(42,65,42,.13))!important;
  box-shadow:
    0 10px 24px rgba(26,39,26,.075),
    0 3px 12px -8px color-mix(in srgb,var(--solid) 80%,transparent),
    inset 0 1px 0 rgba(255,255,255,.72),
    inset 0 0 0 1px rgba(255,255,255,.34)!important;
}
.shift-card::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:18px!important;
  padding:2px!important;
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--solid) 72%,#e9c886) 0%,
      rgba(255,255,255,.72) 26%,
      color-mix(in srgb,var(--deep) 56%,#b99566) 55%,
      rgba(255,255,255,.55) 76%,
      color-mix(in srgb,var(--solid) 66%,#d7bd8c) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0)!important;
  -webkit-mask-composite:xor!important;
  mask-composite:exclude!important;
  pointer-events:none!important;
  z-index:3!important;
}
.shift-card .sc-time{
  width:52px!important;
  border-right:1px solid rgba(255,255,255,.20)!important;
  box-shadow:inset -1px 0 0 rgba(0,0,0,.09), inset 1px 0 0 rgba(255,255,255,.18)!important;
}
.shift-card .sc-main{position:relative;z-index:2!important;background:linear-gradient(90deg,rgba(255,253,247,.44),rgba(255,253,247,.12))!important}
.shift-card .sc-row1{gap:6px!important;align-items:center!important}
.shift-card .sc-status{margin-left:0!important}
.shift-card .sc-end{display:none!important}
.wk-cell{
  border-radius:13px!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,#fff8ed),#fffaf0 58%,color-mix(in srgb,var(--accent) 10%,#e9efe1))!important;
  border-color:color-mix(in srgb,var(--accent) 30%,rgba(42,65,42,.13))!important;
  box-shadow:0 6px 14px rgba(26,39,26,.055),inset 0 1px 0 rgba(255,255,255,.72)!important;
}
.wk-cell::before{width:5px!important;border-radius:0 10px 10px 0;background:linear-gradient(180deg,var(--accent),var(--accent-deep),color-mix(in srgb,var(--accent) 70%,#d7bd8c))!important}
.wkc-time{
  display:inline-flex!important;align-items:center!important;
  padding:2px 7px!important;border-radius:999px!important;
  background:color-mix(in srgb,var(--accent) 13%,#fff8e8)!important;
  border:1px solid color-mix(in srgb,var(--accent) 24%,rgba(42,65,42,.10))!important;
  font-size:10.5px!important;
}
@media(max-width:1023px){
  /* v447: legacy 94px bottom gradient + oversized content padding removed */
  .mtab.active{background:linear-gradient(180deg,#5f824f,#477046 58%,#335735)!important;border-color:rgba(232,222,198,.36)!important}
  .shift-card{min-height:62px!important;margin-bottom:7px!important;border-radius:16px!important}
  .shift-card::before{border-radius:16px!important;padding:1.5px!important}
  .shift-card .sc-time{width:47px!important;padding:6px 2px!important}
}
@media(max-width:390px){
  .shift-card .sc-time{width:44px!important}
  /* v447: legacy 98px bottom fill removed */
}



/* ============================================================
   V28 Employee Clock + Timesheet Polish
   ============================================================ */
.clock-subnav{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px!important;border-radius:22px!important;
  background:linear-gradient(180deg,#efe7d8,#dfe9d8)!important;border:1px solid rgba(60,88,55,.16)!important;
  box-shadow:0 10px 22px rgba(31,47,31,.06)!important;margin-bottom:10px!important;position:relative;z-index:2;
}
.clock-subnav button{
  height:44px;border-radius:16px;border:1px solid transparent;background:rgba(255,250,236,.48);display:flex;align-items:center;justify-content:center;gap:7px;
  font-weight:900;color:#334b34;font-size:12.8px;letter-spacing:-.01em;position:relative;overflow:hidden;
}
.clock-subnav button svg{width:16px;height:16px;stroke-width:2.1}.clock-subnav button em{position:absolute;right:8px;top:6px;min-width:18px;height:18px;border-radius:999px;background:#b77a3e;color:#fff8e8;font-size:10px;font-style:normal;display:grid;place-items:center}.clock-subnav button.active{background:linear-gradient(180deg,#4f754d,#264b2c)!important;color:#fff8e8!important;box-shadow:0 8px 18px rgba(35,70,39,.22),inset 0 1px 0 rgba(255,255,255,.16)}.clock-hand.h1{height:20px;transform:translate(-50%,-100%) rotate(45deg)}.clock-hand.h2{height:15px;transform:translate(-50%,-100%) rotate(145deg);background:#b17641}.active-face{width:150px;height:150px;border-radius:42px;margin:14px auto 10px;background:radial-gradient(circle at 50% 42%,#fffdf5,#deead7 64%,#bfcfb7)}.active-face::before{display:none}.active-face .ring-svg{position:absolute;inset:7px;width:calc(100% - 14px);height:calc(100% - 14px)}.emp-shift.v28-slim-shift{position:relative;overflow:hidden;padding:9px 10px 10px!important;border-radius:18px!important;background:linear-gradient(135deg,color-mix(in srgb,var(--solid) 20%,#fff3dd) 0%,#fff8ec 50%,color-mix(in srgb,var(--solid) 13%,#e2eadb) 100%)!important;border:1px solid color-mix(in srgb,var(--solid) 35%,rgba(39,63,39,.14))!important;box-shadow:0 9px 20px rgba(30,45,31,.065),inset 0 1px 0 rgba(255,255,255,.72)!important}.emp-shift.v28-slim-shift::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--solid),color-mix(in srgb,var(--solid) 50%,#c69a58),transparent)}.emp-shift.v28-slim-shift::after{content:"";position:absolute;right:-26px;top:-34px;width:95px;height:95px;border-radius:50%;background:color-mix(in srgb,var(--solid) 12%,transparent);pointer-events:none}.emp-shift.v28-slim-shift .es-copy{position:relative;z-index:1;min-width:0}.emp-shift.v28-slim-shift h3{font-family:var(--font-display);font-size:20px!important;line-height:1.05!important;font-weight:650!important;color:#1d2d20!important;margin:0 0 5px!important}.emp-shift.v28-slim-shift .es-loc{display:flex;align-items:center;gap:5px;font-size:12px!important;color:#667061!important;margin:0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emp-shift.v28-slim-shift .es-loc svg{width:13px;height:13px;flex-shrink:0;color:var(--solid)}.emp-shift.v28-slim-shift .es-note{margin-top:7px!important;border-radius:12px!important;padding:7px 9px!important;font-size:12px!important;background:rgba(255,251,241,.68)!important;border:1px solid rgba(75,90,65,.08)!important;color:#4e564e!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emp-shift.v28-slim-shift .es-actions{position:relative;z-index:1;display:grid!important;grid-template-columns:1fr 1fr 1.1fr!important;gap:7px!important;margin-top:8px!important;padding-top:8px!important;border-top:1px solid color-mix(in srgb,var(--solid) 15%,rgba(38,61,38,.11))!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start,.emp-shift.v28-slim-shift .ec-done,.emp-shift.v28-slim-shift .ec-declined{height:36px!important;border-radius:13px!important;font-size:12px!important;font-weight:950!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important}.emp-shift.v28-slim-shift .ec-start{background:linear-gradient(135deg,var(--solid),var(--deep))!important;color:#fff8e8!important;box-shadow:0 8px 16px color-mix(in srgb,var(--solid) 25%,transparent)!important}.emp-shift.v28-slim-shift .ec-accept{background:#e4eedc!important;color:#355b37!important}.emp-shift.v28-slim-shift .ec-reject{background:#fff8f5!important;color:#a0443b!important;border:1px solid rgba(160,68,59,.22)!important}.clock-empty-card .btn{margin-top:8px}
.clock-timesheet-page .payroll-mobile-simple{margin-top:0!important}.clock-timesheet-page .payroll-mobile-simple .section-head{margin-top:6px!important}.locked-pill{display:inline-flex!important;align-items:center!important;gap:4px!important}.locked-pill svg{width:12px!important;height:12px!important;stroke-width:2.2}.rec-row.ts-compact.locked{background:linear-gradient(135deg,#f6f0e2,#e9efe2)!important;border-color:rgba(72,92,62,.18)!important}.rec-row.ts-compact.locked .rec-ic{background:linear-gradient(135deg,#385f3b,#213e26)!important;color:#fff8e8!important}
@media(max-width:720px){
  .clock-subnav{gap:6px;padding:5px!important;border-radius:19px!important;margin-bottom:8px!important}.clock-subnav button{height:39px;border-radius:14px;font-size:11.5px}.clock-subnav button svg{width:14px;height:14px}.active-face{width:122px;height:122px;border-radius:34px;margin:10px auto 8px}.emp-shift.v28-slim-shift{padding:8px 9px 9px!important;border-radius:16px!important}.emp-shift.v28-slim-shift h3{font-size:17px!important}.emp-shift.v28-slim-shift .es-loc{font-size:11px!important}.emp-shift.v28-slim-shift .es-note{padding:6px 8px!important;font-size:11px!important;margin-top:6px!important}.emp-shift.v28-slim-shift .es-actions{gap:6px!important;margin-top:7px!important;padding-top:7px!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start,.emp-shift.v28-slim-shift .ec-done,.emp-shift.v28-slim-shift .ec-declined{height:31px!important;border-radius:11px!important;font-size:10.5px!important}.payroll-mobile-simple .ts-day-card{border-radius:18px!important;padding:10px!important}
}
@media(max-width:390px){.emp-shift.v28-slim-shift .es-actions{grid-template-columns:.95fr .95fr 1.05fr!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start{font-size:9.6px!important}.clock-subnav button span{max-width:86px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emp-shift.v28-slim-shift h3{font-size:16px!important}}
@media(max-width:1023px){
  /* v447: legacy 118px bottom gradient removed - the .wwnav bar now paints its own background */
}



/* V28b extra squeeze for employee clock cards */
@media(max-width:720px){.emp-shift.v28-slim-shift{padding:7px 8px 8px!important;border-radius:15px!important}.emp-shift.v28-slim-shift h3{font-size:15.6px!important;margin-bottom:3px!important}.emp-shift.v28-slim-shift .es-loc{font-size:10.5px!important}.emp-shift.v28-slim-shift .es-note{margin-top:5px!important;padding:5px 7px!important;font-size:10.6px!important;border-radius:10px!important}.emp-shift.v28-slim-shift .es-actions{margin-top:6px!important;padding-top:6px!important;gap:5px!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start,.emp-shift.v28-slim-shift .ec-done,.emp-shift.v28-slim-shift .ec-declined{height:28px!important;border-radius:10px!important;font-size:9.8px!important}.emp-shift.v28-slim-shift .ec-reject svg,.emp-shift.v28-slim-shift .ec-accept svg,.emp-shift.v28-slim-shift .ec-start svg{width:13px!important;height:13px!important}
}


/* ============================================================
   V29 Timesheet Request Polish — no break, client search + add
   ============================================================ */
.timesheet-modal{
  max-width:640px!important;
  border-radius:26px!important;
  background:linear-gradient(180deg,#fffdf7 0%,#f4efe4 100%)!important;
}
.timesheet-modal .modal-head{
  padding:22px 24px 12px!important;
  background:linear-gradient(180deg,#fffdf7,#f7f1e6)!important;
  border-bottom:1px solid rgba(55,75,48,.08)!important;
}
.timesheet-modal .modal-body{padding:14px 24px 6px!important}
.timesheet-modal .modal-foot{
  background:linear-gradient(180deg,rgba(247,241,230,.72),#efe8d9)!important;
  border-top:1px solid rgba(55,75,48,.10)!important;
  box-shadow:0 -12px 28px rgba(35,47,31,.08)!important;
}
.missed-intro{
  display:grid;gap:4px;margin-bottom:12px;padding:12px 13px;border-radius:17px;
  background:linear-gradient(135deg,#e5eedf,#f4e7d4);
  border:1px solid rgba(67,95,61,.13);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.62);
}
.missed-intro strong{font-family:var(--font-display);font-size:18px;font-weight:650;color:#203525;letter-spacing:-.02em}
.missed-intro span{font-size:12.2px;line-height:1.35;color:#62705f;font-weight:650}
.ts-client-picker{display:grid;gap:8px}
.ts-client-selected{
  display:grid;gap:2px;padding:9px 11px;border-radius:15px;
  background:linear-gradient(135deg,#fff8ec,#e8efe1);
  border:1px solid rgba(58,88,55,.14);
  box-shadow:0 4px 12px rgba(35,47,31,.045),inset 0 1px 0 rgba(255,255,255,.72);
}
.ts-client-selected strong{font-size:13.5px;color:#203525;font-weight:900;line-height:1.1}
.ts-client-selected span{font-size:11.2px;color:#667061;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ts-client-search{
  height:42px;border-radius:14px;background:#fffaf0;border:1px solid rgba(58,78,51,.15);
  display:flex;align-items:center;gap:8px;padding:0 11px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
.ts-client-search svg{width:16px;height:16px;color:#64755f;flex-shrink:0}.ts-client-search input{border:0;background:transparent;outline:0;min-width:0;flex:1;font-size:14px;font-weight:800;color:#243128}.ts-client-search input::placeholder{color:#8a9288}
.ts-client-results{display:grid;gap:5px;max-height:172px;overflow:auto;padding:3px;border-radius:16px;background:rgba(235,228,214,.55);border:1px solid rgba(58,78,51,.08)}
.ts-client-results.is-collapsed{display:none}
.ts-client-row{
  min-height:43px;border:1px solid rgba(55,75,48,.10);border-radius:13px;background:rgba(255,253,247,.82);
  display:flex;align-items:center;gap:9px;text-align:left;padding:7px 9px;color:#263128;
  box-shadow:0 2px 8px rgba(36,49,40,.035);
}
.ts-client-row.selected{background:linear-gradient(135deg,#e1ecd9,#f4ead8);border-color:rgba(61,94,58,.24)}
.ts-client-dot{width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(65,92,61,.25);display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(65,92,61,.10);font-size:12px;font-weight:900;flex-shrink:0}
.ts-client-row.selected .ts-client-dot{background:linear-gradient(135deg,#4b7548,#213f26);border-color:rgba(255,255,255,.35)}
.ts-client-row strong{display:block;font-size:12.8px;font-weight:900;color:#203525;line-height:1.1}.ts-client-row small{display:block;font-size:10.8px;color:#687366;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:430px;margin-top:2px}
.ts-add-client-toggle{
  height:36px;border-radius:13px;border:1px solid rgba(58,88,55,.12);background:linear-gradient(135deg,#e7efdf,#f4ead8);
  color:#2e5432;font-size:12.2px;font-weight:900;text-align:center;
}
.ts-add-client-panel{display:none;gap:8px;padding:10px;border-radius:16px;background:linear-gradient(135deg,#fff8ec,#e8efe1);border:1px solid rgba(64,91,59,.12)}
.ts-add-client-panel.open{display:grid}
.ts-add-client-panel .btn{height:38px;border-radius:12px;font-size:12px;font-weight:900}
.timesheet-modal .row2{gap:10px!important}
.timesheet-modal .field{margin-bottom:10px!important;gap:5px!important}
.timesheet-modal .field label{font-size:11.8px!important;color:#354437!important}
.timesheet-modal .input{height:44px!important;border-radius:14px!important;background:#fffaf0!important;border-color:rgba(54,74,48,.14)!important;font-size:14px!important;padding:0 12px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.78)!important}
.timesheet-modal textarea.input{height:auto!important;min-height:76px!important;padding:10px 12px!important;line-height:1.35!important}
@media(max-width:720px){
  .timesheet-modal{max-height:calc(100dvh - 28px)!important;border-radius:24px 24px 0 0!important}
  .timesheet-modal .modal-head{padding:15px 16px 9px!important}.timesheet-modal .modal-head h2{font-size:21px!important}
  .timesheet-modal .modal-body{padding:10px 14px 5px!important}.timesheet-modal .modal-foot{padding:9px 14px calc(11px + var(--safe-b))!important;gap:8px!important}.timesheet-modal .modal-foot .btn{height:40px!important;border-radius:13px!important;font-size:12.4px!important;min-width:0!important;flex:1!important}
  .missed-intro{padding:10px 11px!important;border-radius:15px!important;margin-bottom:9px!important}.missed-intro strong{font-size:16px!important}.missed-intro span{font-size:11px!important}
  .timesheet-modal .input{height:40px!important;border-radius:12px!important;font-size:13.3px!important;padding:0 10px!important}.timesheet-modal textarea.input{min-height:66px!important;padding:9px 10px!important;font-size:13.2px!important}
  .timesheet-modal .field{margin-bottom:8px!important}.timesheet-modal .field label{font-size:11px!important}
  .ts-client-selected{padding:8px 10px!important;border-radius:13px!important}.ts-client-selected strong{font-size:12.7px!important}.ts-client-selected span{font-size:10.4px!important}
  .ts-client-search{height:39px!important;border-radius:13px!important}.ts-client-search input{font-size:13.2px!important}.ts-client-results{max-height:136px!important;border-radius:14px!important}.ts-client-row{min-height:38px!important;padding:6px 8px!important;border-radius:12px!important}.ts-client-row strong{font-size:12px!important}.ts-client-row small{font-size:10px!important}.ts-add-client-toggle{height:33px!important;border-radius:12px!important;font-size:11.5px!important}.ts-add-client-panel{padding:8px!important;border-radius:14px!important}.ts-add-client-panel .row2{gap:7px!important}.ts-add-client-panel .btn{height:35px!important}
}
@media(max-width:390px){.timesheet-modal .row2{grid-template-columns:1fr 1fr!important;gap:7px!important}.timesheet-modal .modal-head h2{font-size:19px!important}.ts-client-row small{max-width:240px!important}.timesheet-modal .modal-foot .btn{font-size:11.5px!important}}


/* V29 animation stability: keep modals solid and readable */
.modal-overlay{animation:none!important;opacity:1!important}
.timesheet-modal{animation:none!important;opacity:1!important;transform:none!important;background:linear-gradient(180deg,#fffdf7 0%,#f4efe4 100%)!important}





/* v34 — restore isolated Next Shift layout only */
.employee-dashboard > .section-head.next-title{
  display:flex!important;
  align-items:center!important;
  margin-top:18px!important;
  margin-bottom:10px!important;
  clear:both!important;
}
.employee-dashboard > .section-head.next-title h2{
  margin:0!important;
}
@media(max-width:720px){
}



/* Easy employee login upgrade */
.employee-login-help{
  display:grid;
  gap:6px;
  margin:0 0 14px;
  padding:12px 13px;
  border-radius:17px;
  background:linear-gradient(135deg,#eef6e8,#fff8eb);
  border:1px solid rgba(55,88,49,.16);
  color:#213b22;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
}
.employee-login-help strong{font-size:13px;font-weight:900;color:#17351c;letter-spacing:-.01em}
.employee-login-help span{font-size:12px;font-weight:700;color:#526252;line-height:1.25}
.employee-login-help b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.employee-first-login-btn{
  width:100%;
  min-height:44px;
  margin-top:9px;
  border:1px solid rgba(55,88,49,.18);
  background:#fffaf0;
  border-radius:15px;
  color:#24452a;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
}
.employee-first-login-btn:hover{background:#eef6e8}
.login-share-note,.login-details-card{
  margin-top:10px;
  padding:12px 13px;
  border-radius:16px;
  background:linear-gradient(135deg,#f3eadb,#e6f0df);
  border:1px solid rgba(58,88,54,.14);
  color:#2c4630;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}
.login-details-card{display:grid;gap:6px;margin:12px 0}
.login-details-card strong{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:950;color:#18341d}
.login-details-card strong svg{width:16px;height:16px}
.login-details-card span{font-size:12px;color:#526252}
.login-details-card b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.login-details-card small{font-size:11.5px;color:#687467;font-weight:700}
@media(max-width:480px){.employee-login-help{padding:10px 11px}.employee-first-login-btn{min-height:42px;font-size:12px}}




/* ---- inline style 3 ---- */

/* V24 Compact Workspace Polish — slimmer homepage, roster, messages, clock, availability and profile cards */
:root{--v24-tight-shadow:0 5px 14px rgba(35,47,31,.045)}

/* smoother app scrolling */
.content,.chat-scroll,.chat-list,.cl-threads,.avail-grid-wrap,.employee-picker.simple-list{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}

/* Homepage cards and updates — reduce vertical weight so the roster appears earlier */
.stat-grid{gap:7px!important}
.stat{padding:8px 10px!important;border-radius:13px!important;box-shadow:0 1px 4px rgba(35,47,31,.035)!important;min-height:64px!important}
.stat::after{width:42px!important;height:42px!important;right:-16px!important;top:-18px!important;opacity:.38!important}
.stat-v{font-size:20px!important}
.stat-l{font-size:10.8px!important;margin-top:4px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-s{font-size:9.5px!important;margin-top:1px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.section-head{margin:10px 0 10px!important}
.section-head h2{font-size:19px!important}

/* Roster — tighter week header, day chips and shift cards */
.roster-head{gap:8px!important}.rh-nav{width:31px!important;height:31px!important;border-radius:9px!important}.rh-nav svg{width:14px!important;height:14px!important}.rh-label strong{font-size:13.5px!important}.rh-label span{font-size:10.2px!important}
.day-row{gap:4px!important;margin-top:8px!important}
.shift-card{border-radius:12px!important;margin-bottom:6px!important;min-height:72px!important;box-shadow:0 1px 3px rgba(20,30,20,.035),0 5px 14px -10px color-mix(in srgb,var(--solid) 45%,transparent)!important}
.wk-col{border-radius:13px!important;min-height:300px!important}.wk-colhead{padding:8px 3px!important}.wk-dow{font-size:9px!important}.wk-num{font-size:16px!important}.wk-cells{gap:5px!important;padding:6px!important}.wk-cell{padding:7px 7px 7px 11px!important;border-radius:10px!important}.wkc-time{font-size:9.5px!important}.wkc-name{font-size:11.5px!important}.wkc-dur{font-size:8.5px!important;padding:1px 6px!important}.wkc-status{font-size:7.6px!important;padding:1px 5px!important}

/* Messages — more professional, stable scrolling and cleaner mobile thread */
.chat-shell{gap:12px!important;min-height:0!important}.chat-list,.chat-thread{border-radius:20px!important;box-shadow:0 10px 24px rgba(35,47,31,.055)!important;background:rgba(255,253,247,.96)!important;overflow:hidden!important}.cl-threads{padding:6px!important;gap:3px!important}.ct-row{padding:9px!important;border-radius:14px!important;gap:9px!important}.ct-row .avatar{width:34px!important;height:34px!important;border-radius:12px!important}.ct-name{font-size:13px!important}.chat-thread-head{padding:10px 12px!important;min-height:58px!important;background:linear-gradient(180deg,#fffdf8,#f4efe4)!important}.chat-thread-head .avatar{width:36px!important;height:36px!important;border-radius:13px!important}.cth-name{font-size:13.5px!important}.cth-sub{font-size:10.8px!important}.chat-scroll{padding:12px 11px!important;gap:8px!important;background:linear-gradient(180deg,#f6f2e9 0%,#fffdf8 100%)!important}.msg{gap:7px!important}.msg-av .avatar{width:26px!important;height:26px!important}.bubble{padding:8px 10px!important;border-radius:14px!important;max-width:min(78%,520px)!important;box-shadow:0 4px 14px rgba(35,47,31,.05)!important}.mine .bubble{border-bottom-right-radius:5px!important}.msg:not(.mine) .bubble{border-bottom-left-radius:5px!important}.b-author{font-size:10.5px!important}.b-text{font-size:12.5px!important;line-height:1.35!important}.bubble time{font-size:9px!important;margin-top:3px!important}.chat-composer{padding:9px!important;gap:7px!important}.chat-composer .input{height:40px!important;border-radius:20px!important;font-size:14px!important}.chat-composer .csend{width:40px!important;height:40px!important;border-radius:15px!important;padding:0!important}.clock-hero.idle{gap:12px!important}

/* Availability — slimmer cards */
.doc-intro.card-pad{padding:13px!important;border-radius:18px!important}.doc-intro h3{font-size:17px!important}.doc-intro p{font-size:12px!important;line-height:1.35!important}.di-ic{width:42px!important;height:42px!important;border-radius:14px!important}.di-ic svg{width:20px!important;height:20px!important}.avail-list{gap:6px!important}.avail-row{padding:8px 10px!important;border-radius:12px!important;gap:8px!important;border-left-width:3px!important}.ar-date{width:45px!important}.ar-date strong{font-size:11.3px!important}.ar-date span{font-size:9.8px!important}.ar-seg{min-width:150px!important;border-radius:9px!important;padding:2px!important}.seg{padding:5px 3px!important;border-radius:7px!important;font-size:10.8px!important}.ar-note{height:32px!important;border-radius:9px!important;font-size:12px!important}.weekly-avail{padding:2px 0!important}.wa-row{padding:8px 12px!important;gap:9px!important}.wa-toggle{width:38px!important;height:22px!important}.wa-toggle span{width:16px!important;height:16px!important}.wa-toggle.on span{transform:translateX(16px)!important}.wa-day{font-size:12.5px!important;width:34px!important}.wa-time{height:32px!important;border-radius:9px!important;font-size:11.5px!important}.wa-off{font-size:11.5px!important}

/* Profile — slimmer cards/rows */
.account-hero.card-pad{padding:13px!important;border-radius:18px!important;gap:12px!important}.account-hero .avatar.lg{width:50px!important;height:50px!important;border-radius:17px!important}.profile-modules{gap:7px!important;margin-top:9px!important}.profile-mini{min-height:62px!important;padding:9px 10px!important;border-radius:14px!important}.profile-mini span svg{width:16px!important;height:16px!important}.profile-mini strong{font-size:18px!important;margin-top:3px!important}.profile-mini em{font-size:9.8px!important;margin-top:2px!important;line-height:1.1}.detail-row{padding:9px 12px!important;gap:9px!important}.dr-ic{width:32px!important;height:32px!important;border-radius:10px!important}.dr-ic svg{width:15px!important;height:15px!important}.dr-l{font-size:10.3px!important}.dr-v{font-size:12.2px!important}

@media(max-width:720px){
  .content{padding:10px 9px calc(74px + var(--safe-b))!important}
  .stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important}.stat{padding:7px 4px!important;border-radius:12px!important;min-height:54px!important;text-align:left}.stat-v{font-size:16px!important}.stat-l{font-size:8.7px!important;line-height:1.1!important}.stat-s{display:none!important}.stat::after{width:34px!important;height:34px!important}
  .section-head{margin:9px 0 7px!important}.section-head h2{font-size:17px!important}.section-head .count{font-size:10.5px!important}
  .roster-head{gap:6px!important}.day-row{gap:3px!important}.shift-card{margin-bottom:5px!important;min-height:63px!important}
  .chat-shell{height:calc(100dvh - 270px - var(--safe-b))!important;min-height:0!important;gap:0!important}.chat-list,.chat-thread{border-radius:18px!important}.chat-scroll{padding:10px 9px!important}.bubble{max-width:86%!important}.chat-composer{position:sticky!important;bottom:0!important}.ct-row{padding:8px!important}.chat-thread-head{padding:8px 10px!important}
  .doc-intro.card-pad{padding:11px!important;gap:10px!important}.di-ic{width:38px!important;height:38px!important}.avail-row{padding:7px 9px!important}.ar-seg{flex-basis:calc(100% - 54px)!important;min-width:0!important}.seg{font-size:10.2px!important}.wa-row{padding:7px 10px!important}
  .account-hero.card-pad{padding:11px!important}.profile-modules{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important}.profile-mini{min-height:56px!important;padding:7px 4px!important;text-align:center;align-items:center}.profile-mini span svg{width:14px!important;height:14px!important}.profile-mini strong{font-size:15px!important}.profile-mini em{font-size:8px!important}.detail-row{padding:8px 10px!important}
}
@media(max-width:390px){.stat-v{font-size:14.5px!important}.stat-l{font-size:8px!important}.profile-mini{min-height:48px!important}}


/* ============================================================
   V27 Sleek Roster Card Edge + Time Range + Solid Mobile Dock
   ============================================================ */
.shift-card{
  border-radius:18px!important;
  min-height:68px!important;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--solid) 16%,#fff5e4) 0%,#fff8eb 48%,color-mix(in srgb,var(--solid) 12%,#e7eedf) 100%)!important;
  border:1px solid color-mix(in srgb,var(--solid) 34%,rgba(42,65,42,.13))!important;
  box-shadow:
    0 10px 24px rgba(26,39,26,.075),
    0 3px 12px -8px color-mix(in srgb,var(--solid) 80%,transparent),
    inset 0 1px 0 rgba(255,255,255,.72),
    inset 0 0 0 1px rgba(255,255,255,.34)!important;
}
.shift-card::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:18px!important;
  padding:2px!important;
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--solid) 72%,#e9c886) 0%,
      rgba(255,255,255,.72) 26%,
      color-mix(in srgb,var(--deep) 56%,#b99566) 55%,
      rgba(255,255,255,.55) 76%,
      color-mix(in srgb,var(--solid) 66%,#d7bd8c) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0)!important;
  -webkit-mask-composite:xor!important;
  mask-composite:exclude!important;
  pointer-events:none!important;
  z-index:3!important;
}
.shift-card .sc-time{
  width:52px!important;
  border-right:1px solid rgba(255,255,255,.20)!important;
  box-shadow:inset -1px 0 0 rgba(0,0,0,.09), inset 1px 0 0 rgba(255,255,255,.18)!important;
}
.shift-card .sc-main{position:relative;z-index:2!important;background:linear-gradient(90deg,rgba(255,253,247,.44),rgba(255,253,247,.12))!important}
.shift-card .sc-row1{gap:6px!important;align-items:center!important}
.shift-card .sc-status{margin-left:0!important}
.shift-card .sc-end{display:none!important}
.wk-cell{
  border-radius:13px!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,#fff8ed),#fffaf0 58%,color-mix(in srgb,var(--accent) 10%,#e9efe1))!important;
  border-color:color-mix(in srgb,var(--accent) 30%,rgba(42,65,42,.13))!important;
  box-shadow:0 6px 14px rgba(26,39,26,.055),inset 0 1px 0 rgba(255,255,255,.72)!important;
}
.wk-cell::before{width:5px!important;border-radius:0 10px 10px 0;background:linear-gradient(180deg,var(--accent),var(--accent-deep),color-mix(in srgb,var(--accent) 70%,#d7bd8c))!important}
.wkc-time{
  display:inline-flex!important;align-items:center!important;
  padding:2px 7px!important;border-radius:999px!important;
  background:color-mix(in srgb,var(--accent) 13%,#fff8e8)!important;
  border:1px solid color-mix(in srgb,var(--accent) 24%,rgba(42,65,42,.10))!important;
  font-size:10.5px!important;
}
@media(max-width:1023px){
  /* v447: legacy 94px bottom gradient + oversized content padding removed */
  .mtab.active{background:linear-gradient(180deg,#5f824f,#477046 58%,#335735)!important;border-color:rgba(232,222,198,.36)!important}
  .shift-card{min-height:62px!important;margin-bottom:7px!important;border-radius:16px!important}
  .shift-card::before{border-radius:16px!important;padding:1.5px!important}
  .shift-card .sc-time{width:47px!important;padding:6px 2px!important}
}
@media(max-width:390px){
  .shift-card .sc-time{width:44px!important}
  /* v447: legacy 98px bottom fill removed */
}



/* ============================================================
   V28 Employee Clock + Timesheet Polish
   ============================================================ */
.clock-subnav{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px!important;border-radius:22px!important;
  background:linear-gradient(180deg,#efe7d8,#dfe9d8)!important;border:1px solid rgba(60,88,55,.16)!important;
  box-shadow:0 10px 22px rgba(31,47,31,.06)!important;margin-bottom:10px!important;position:relative;z-index:2;
}
.clock-subnav button{
  height:44px;border-radius:16px;border:1px solid transparent;background:rgba(255,250,236,.48);display:flex;align-items:center;justify-content:center;gap:7px;
  font-weight:900;color:#334b34;font-size:12.8px;letter-spacing:-.01em;position:relative;overflow:hidden;
}
.clock-subnav button svg{width:16px;height:16px;stroke-width:2.1}.clock-subnav button em{position:absolute;right:8px;top:6px;min-width:18px;height:18px;border-radius:999px;background:#b77a3e;color:#fff8e8;font-size:10px;font-style:normal;display:grid;place-items:center}.clock-subnav button.active{background:linear-gradient(180deg,#4f754d,#264b2c)!important;color:#fff8e8!important;box-shadow:0 8px 18px rgba(35,70,39,.22),inset 0 1px 0 rgba(255,255,255,.16)}.clock-hand.h1{height:20px;transform:translate(-50%,-100%) rotate(45deg)}.clock-hand.h2{height:15px;transform:translate(-50%,-100%) rotate(145deg);background:#b17641}.active-face{width:150px;height:150px;border-radius:42px;margin:14px auto 10px;background:radial-gradient(circle at 50% 42%,#fffdf5,#deead7 64%,#bfcfb7)}.active-face::before{display:none}.active-face .ring-svg{position:absolute;inset:7px;width:calc(100% - 14px);height:calc(100% - 14px)}.emp-shift.v28-slim-shift{position:relative;overflow:hidden;padding:9px 10px 10px!important;border-radius:18px!important;background:linear-gradient(135deg,color-mix(in srgb,var(--solid) 20%,#fff3dd) 0%,#fff8ec 50%,color-mix(in srgb,var(--solid) 13%,#e2eadb) 100%)!important;border:1px solid color-mix(in srgb,var(--solid) 35%,rgba(39,63,39,.14))!important;box-shadow:0 9px 20px rgba(30,45,31,.065),inset 0 1px 0 rgba(255,255,255,.72)!important}.emp-shift.v28-slim-shift::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--solid),color-mix(in srgb,var(--solid) 50%,#c69a58),transparent)}.emp-shift.v28-slim-shift::after{content:"";position:absolute;right:-26px;top:-34px;width:95px;height:95px;border-radius:50%;background:color-mix(in srgb,var(--solid) 12%,transparent);pointer-events:none}.emp-shift.v28-slim-shift .es-copy{position:relative;z-index:1;min-width:0}.emp-shift.v28-slim-shift h3{font-family:var(--font-display);font-size:20px!important;line-height:1.05!important;font-weight:650!important;color:#1d2d20!important;margin:0 0 5px!important}.emp-shift.v28-slim-shift .es-loc{display:flex;align-items:center;gap:5px;font-size:12px!important;color:#667061!important;margin:0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emp-shift.v28-slim-shift .es-loc svg{width:13px;height:13px;flex-shrink:0;color:var(--solid)}.emp-shift.v28-slim-shift .es-note{margin-top:7px!important;border-radius:12px!important;padding:7px 9px!important;font-size:12px!important;background:rgba(255,251,241,.68)!important;border:1px solid rgba(75,90,65,.08)!important;color:#4e564e!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emp-shift.v28-slim-shift .es-actions{position:relative;z-index:1;display:grid!important;grid-template-columns:1fr 1fr 1.1fr!important;gap:7px!important;margin-top:8px!important;padding-top:8px!important;border-top:1px solid color-mix(in srgb,var(--solid) 15%,rgba(38,61,38,.11))!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start,.emp-shift.v28-slim-shift .ec-done,.emp-shift.v28-slim-shift .ec-declined{height:36px!important;border-radius:13px!important;font-size:12px!important;font-weight:950!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important}.emp-shift.v28-slim-shift .ec-start{background:linear-gradient(135deg,var(--solid),var(--deep))!important;color:#fff8e8!important;box-shadow:0 8px 16px color-mix(in srgb,var(--solid) 25%,transparent)!important}.emp-shift.v28-slim-shift .ec-accept{background:#e4eedc!important;color:#355b37!important}.emp-shift.v28-slim-shift .ec-reject{background:#fff8f5!important;color:#a0443b!important;border:1px solid rgba(160,68,59,.22)!important}.clock-empty-card .btn{margin-top:8px}
.clock-timesheet-page .payroll-mobile-simple{margin-top:0!important}.clock-timesheet-page .payroll-mobile-simple .section-head{margin-top:6px!important}.locked-pill{display:inline-flex!important;align-items:center!important;gap:4px!important}.locked-pill svg{width:12px!important;height:12px!important;stroke-width:2.2}.rec-row.ts-compact.locked{background:linear-gradient(135deg,#f6f0e2,#e9efe2)!important;border-color:rgba(72,92,62,.18)!important}.rec-row.ts-compact.locked .rec-ic{background:linear-gradient(135deg,#385f3b,#213e26)!important;color:#fff8e8!important}
@media(max-width:720px){
  .clock-subnav{gap:6px;padding:5px!important;border-radius:19px!important;margin-bottom:8px!important}.clock-subnav button{height:39px;border-radius:14px;font-size:11.5px}.clock-subnav button svg{width:14px;height:14px}.active-face{width:122px;height:122px;border-radius:34px;margin:10px auto 8px}.emp-shift.v28-slim-shift{padding:8px 9px 9px!important;border-radius:16px!important}.emp-shift.v28-slim-shift h3{font-size:17px!important}.emp-shift.v28-slim-shift .es-loc{font-size:11px!important}.emp-shift.v28-slim-shift .es-note{padding:6px 8px!important;font-size:11px!important;margin-top:6px!important}.emp-shift.v28-slim-shift .es-actions{gap:6px!important;margin-top:7px!important;padding-top:7px!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start,.emp-shift.v28-slim-shift .ec-done,.emp-shift.v28-slim-shift .ec-declined{height:31px!important;border-radius:11px!important;font-size:10.5px!important}.payroll-mobile-simple .ts-day-card{border-radius:18px!important;padding:10px!important}
}
@media(max-width:390px){.emp-shift.v28-slim-shift .es-actions{grid-template-columns:.95fr .95fr 1.05fr!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start{font-size:9.6px!important}.clock-subnav button span{max-width:86px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emp-shift.v28-slim-shift h3{font-size:16px!important}}
@media(max-width:1023px){
  /* v447: legacy 118px bottom gradient removed - the .wwnav bar now paints its own background */
}



/* V28b extra squeeze for employee clock cards */
@media(max-width:720px){.emp-shift.v28-slim-shift{padding:7px 8px 8px!important;border-radius:15px!important}.emp-shift.v28-slim-shift h3{font-size:15.6px!important;margin-bottom:3px!important}.emp-shift.v28-slim-shift .es-loc{font-size:10.5px!important}.emp-shift.v28-slim-shift .es-note{margin-top:5px!important;padding:5px 7px!important;font-size:10.6px!important;border-radius:10px!important}.emp-shift.v28-slim-shift .es-actions{margin-top:6px!important;padding-top:6px!important;gap:5px!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start,.emp-shift.v28-slim-shift .ec-done,.emp-shift.v28-slim-shift .ec-declined{height:28px!important;border-radius:10px!important;font-size:9.8px!important}.emp-shift.v28-slim-shift .ec-reject svg,.emp-shift.v28-slim-shift .ec-accept svg,.emp-shift.v28-slim-shift .ec-start svg{width:13px!important;height:13px!important}
}


/* ============================================================
   V29 Timesheet Request Polish — no break, client search + add
   ============================================================ */
.timesheet-modal{
  max-width:640px!important;
  border-radius:26px!important;
  background:linear-gradient(180deg,#fffdf7 0%,#f4efe4 100%)!important;
}
.timesheet-modal .modal-head{
  padding:22px 24px 12px!important;
  background:linear-gradient(180deg,#fffdf7,#f7f1e6)!important;
  border-bottom:1px solid rgba(55,75,48,.08)!important;
}
.timesheet-modal .modal-body{padding:14px 24px 6px!important}
.timesheet-modal .modal-foot{
  background:linear-gradient(180deg,rgba(247,241,230,.72),#efe8d9)!important;
  border-top:1px solid rgba(55,75,48,.10)!important;
  box-shadow:0 -12px 28px rgba(35,47,31,.08)!important;
}
.missed-intro{
  display:grid;gap:4px;margin-bottom:12px;padding:12px 13px;border-radius:17px;
  background:linear-gradient(135deg,#e5eedf,#f4e7d4);
  border:1px solid rgba(67,95,61,.13);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.62);
}
.missed-intro strong{font-family:var(--font-display);font-size:18px;font-weight:650;color:#203525;letter-spacing:-.02em}
.missed-intro span{font-size:12.2px;line-height:1.35;color:#62705f;font-weight:650}
.ts-client-picker{display:grid;gap:8px}
.ts-client-selected{
  display:grid;gap:2px;padding:9px 11px;border-radius:15px;
  background:linear-gradient(135deg,#fff8ec,#e8efe1);
  border:1px solid rgba(58,88,55,.14);
  box-shadow:0 4px 12px rgba(35,47,31,.045),inset 0 1px 0 rgba(255,255,255,.72);
}
.ts-client-selected strong{font-size:13.5px;color:#203525;font-weight:900;line-height:1.1}
.ts-client-selected span{font-size:11.2px;color:#667061;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ts-client-search{
  height:42px;border-radius:14px;background:#fffaf0;border:1px solid rgba(58,78,51,.15);
  display:flex;align-items:center;gap:8px;padding:0 11px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
.ts-client-search svg{width:16px;height:16px;color:#64755f;flex-shrink:0}.ts-client-search input{border:0;background:transparent;outline:0;min-width:0;flex:1;font-size:14px;font-weight:800;color:#243128}.ts-client-search input::placeholder{color:#8a9288}
.ts-client-results{display:grid;gap:5px;max-height:172px;overflow:auto;padding:3px;border-radius:16px;background:rgba(235,228,214,.55);border:1px solid rgba(58,78,51,.08)}
.ts-client-results.is-collapsed{display:none}
.ts-client-row{
  min-height:43px;border:1px solid rgba(55,75,48,.10);border-radius:13px;background:rgba(255,253,247,.82);
  display:flex;align-items:center;gap:9px;text-align:left;padding:7px 9px;color:#263128;
  box-shadow:0 2px 8px rgba(36,49,40,.035);
}
.ts-client-row.selected{background:linear-gradient(135deg,#e1ecd9,#f4ead8);border-color:rgba(61,94,58,.24)}
.ts-client-dot{width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(65,92,61,.25);display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(65,92,61,.10);font-size:12px;font-weight:900;flex-shrink:0}
.ts-client-row.selected .ts-client-dot{background:linear-gradient(135deg,#4b7548,#213f26);border-color:rgba(255,255,255,.35)}
.ts-client-row strong{display:block;font-size:12.8px;font-weight:900;color:#203525;line-height:1.1}.ts-client-row small{display:block;font-size:10.8px;color:#687366;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:430px;margin-top:2px}
.ts-add-client-toggle{
  height:36px;border-radius:13px;border:1px solid rgba(58,88,55,.12);background:linear-gradient(135deg,#e7efdf,#f4ead8);
  color:#2e5432;font-size:12.2px;font-weight:900;text-align:center;
}
.ts-add-client-panel{display:none;gap:8px;padding:10px;border-radius:16px;background:linear-gradient(135deg,#fff8ec,#e8efe1);border:1px solid rgba(64,91,59,.12)}
.ts-add-client-panel.open{display:grid}
.ts-add-client-panel .btn{height:38px;border-radius:12px;font-size:12px;font-weight:900}
.timesheet-modal .row2{gap:10px!important}
.timesheet-modal .field{margin-bottom:10px!important;gap:5px!important}
.timesheet-modal .field label{font-size:11.8px!important;color:#354437!important}
.timesheet-modal .input{height:44px!important;border-radius:14px!important;background:#fffaf0!important;border-color:rgba(54,74,48,.14)!important;font-size:14px!important;padding:0 12px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.78)!important}
.timesheet-modal textarea.input{height:auto!important;min-height:76px!important;padding:10px 12px!important;line-height:1.35!important}
@media(max-width:720px){
  .timesheet-modal{max-height:calc(100dvh - 28px)!important;border-radius:24px 24px 0 0!important}
  .timesheet-modal .modal-head{padding:15px 16px 9px!important}.timesheet-modal .modal-head h2{font-size:21px!important}
  .timesheet-modal .modal-body{padding:10px 14px 5px!important}.timesheet-modal .modal-foot{padding:9px 14px calc(11px + var(--safe-b))!important;gap:8px!important}.timesheet-modal .modal-foot .btn{height:40px!important;border-radius:13px!important;font-size:12.4px!important;min-width:0!important;flex:1!important}
  .missed-intro{padding:10px 11px!important;border-radius:15px!important;margin-bottom:9px!important}.missed-intro strong{font-size:16px!important}.missed-intro span{font-size:11px!important}
  .timesheet-modal .input{height:40px!important;border-radius:12px!important;font-size:13.3px!important;padding:0 10px!important}.timesheet-modal textarea.input{min-height:66px!important;padding:9px 10px!important;font-size:13.2px!important}
  .timesheet-modal .field{margin-bottom:8px!important}.timesheet-modal .field label{font-size:11px!important}
  .ts-client-selected{padding:8px 10px!important;border-radius:13px!important}.ts-client-selected strong{font-size:12.7px!important}.ts-client-selected span{font-size:10.4px!important}
  .ts-client-search{height:39px!important;border-radius:13px!important}.ts-client-search input{font-size:13.2px!important}.ts-client-results{max-height:136px!important;border-radius:14px!important}.ts-client-row{min-height:38px!important;padding:6px 8px!important;border-radius:12px!important}.ts-client-row strong{font-size:12px!important}.ts-client-row small{font-size:10px!important}.ts-add-client-toggle{height:33px!important;border-radius:12px!important;font-size:11.5px!important}.ts-add-client-panel{padding:8px!important;border-radius:14px!important}.ts-add-client-panel .row2{gap:7px!important}.ts-add-client-panel .btn{height:35px!important}
}
@media(max-width:390px){.timesheet-modal .row2{grid-template-columns:1fr 1fr!important;gap:7px!important}.timesheet-modal .modal-head h2{font-size:19px!important}.ts-client-row small{max-width:240px!important}.timesheet-modal .modal-foot .btn{font-size:11.5px!important}}


/* V29 animation stability: keep modals solid and readable */
.modal-overlay{animation:none!important;opacity:1!important}
.timesheet-modal{animation:none!important;opacity:1!important;transform:none!important;background:linear-gradient(180deg,#fffdf7 0%,#f4efe4 100%)!important}





/* v34 — restore isolated Next Shift layout only */
.employee-dashboard > .section-head.next-title{
  display:flex!important;
  align-items:center!important;
  margin-top:18px!important;
  margin-bottom:10px!important;
  clear:both!important;
}
.employee-dashboard > .section-head.next-title h2{
  margin:0!important;
}
@media(max-width:720px){
}



/* Easy employee login upgrade */
.employee-login-help{
  display:grid;
  gap:6px;
  margin:0 0 14px;
  padding:12px 13px;
  border-radius:17px;
  background:linear-gradient(135deg,#eef6e8,#fff8eb);
  border:1px solid rgba(55,88,49,.16);
  color:#213b22;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
}
.employee-login-help strong{font-size:13px;font-weight:900;color:#17351c;letter-spacing:-.01em}
.employee-login-help span{font-size:12px;font-weight:700;color:#526252;line-height:1.25}
.employee-login-help b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.employee-first-login-btn{
  width:100%;
  min-height:44px;
  margin-top:9px;
  border:1px solid rgba(55,88,49,.18);
  background:#fffaf0;
  border-radius:15px;
  color:#24452a;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
}
.employee-first-login-btn:hover{background:#eef6e8}
.login-share-note,.login-details-card{
  margin-top:10px;
  padding:12px 13px;
  border-radius:16px;
  background:linear-gradient(135deg,#f3eadb,#e6f0df);
  border:1px solid rgba(58,88,54,.14);
  color:#2c4630;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}
.login-details-card{display:grid;gap:6px;margin:12px 0}
.login-details-card strong{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:950;color:#18341d}
.login-details-card strong svg{width:16px;height:16px}
.login-details-card span{font-size:12px;color:#526252}
.login-details-card b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.login-details-card small{font-size:11.5px;color:#687467;font-weight:700}
@media(max-width:480px){.employee-login-help{padding:10px 11px}.employee-first-login-btn{min-height:42px;font-size:12px}}




/* ---- inline style 4 ---- */

/* V25 — restore Next Shift, earth-tone mobile shell, professional messages and colourful slim roster cards */
:root{
  --earth-menu-1:#122315;
  --earth-menu-2:#203d27;
  --earth-menu-3:#526342;
  --earth-warm:#d7c2a1;
  --earth-cream:#f2ecdf;
  --earth-card:#f7f1e5;
  --earth-moss:#dfe9d7;
}

@media(max-width:1023px){
  body{background:linear-gradient(180deg,#e6ece1 0%,#dfe7d9 100%)!important}
  .shell{background:
    radial-gradient(ellipse 62% 32% at 10% 0%,rgba(126,154,112,.28),transparent 62%),
    radial-gradient(ellipse 58% 34% at 100% 5%,rgba(183,139,96,.18),transparent 62%),
    linear-gradient(180deg,#eaf0e4 0%,#dfe8d8 100%)!important;}
  .main::after{
    content:"";position:fixed;left:0;right:0;bottom:0;height:calc(106px + var(--safe-b));
    z-index:58;pointer-events:none;
    background:linear-gradient(180deg,rgba(224,233,218,0) 0%,rgba(224,233,218,.94) 20%,#dfe8d9 58%,#d6e1d1 100%);
  }
  .content{padding-bottom:calc(126px + var(--safe-b))!important}
  .mtab.active{
    background:linear-gradient(180deg,#4f754d 0%,#3a613c 58%,#2c4d30 100%)!important;
    border-color:rgba(232,222,198,.30)!important;
    box-shadow:0 10px 20px rgba(11,41,20,.34),inset 0 1px 0 rgba(255,255,255,.18)!important;
  }
  .mtab.active > svg{background:rgba(255,250,236,.16)!important;color:#fff8e8!important;border-color:rgba(255,250,236,.20)!important}
  .mtab.active span{color:#fff8e8!important}
  .mtab.active::after{background:#d9c28d!important;box-shadow:0 0 8px rgba(217,194,141,.48)!important}
}
.home-dashboard .stat-grid.home-stats{gap:8px!important}
.home-dashboard .stat{
  overflow:hidden;border:1px solid rgba(73,91,64,.12)!important;
  background:linear-gradient(145deg,#f7f0df 0%,#e7eee0 100%)!important;
  box-shadow:0 8px 20px rgba(35,47,31,.06),inset 0 1px 0 rgba(255,255,255,.60)!important;
}
.home-dashboard .stat.sage{background:linear-gradient(145deg,#e2ecd9 0%,#cfdcc6 100%)!important}
.home-dashboard .stat.clay{background:linear-gradient(145deg,#f0dfcc 0%,#ead1b7 100%)!important}
.home-dashboard .stat-v{color:#18291b!important;text-shadow:0 1px 0 rgba(255,255,255,.45)}
.home-dashboard .stat-l{color:#344535!important}.home-dashboard .stat-s{color:#687062!important}

/* professional message centre */
.chat-shell{border-radius:24px!important}.chat-list,.chat-thread{background:#f8f1e4!important;border:1px solid rgba(54,78,50,.12)!important;box-shadow:0 14px 34px rgba(30,45,29,.08)!important}.cl-head,.chat-thread-head{background:linear-gradient(180deg,#203a27,#142417)!important;color:#fff8e8!important;border-bottom:1px solid rgba(255,255,255,.10)!important}.cl-head h2,.cth-name{color:#fff8e8!important}.cth-sub{color:rgba(255,248,232,.72)!important}.cl-new,.cth-back,.cth-act{background:rgba(255,255,255,.10)!important;color:#fff8e8!important;border:1px solid rgba(255,255,255,.13)!important}.cl-threads{background:linear-gradient(180deg,#f2eadb,#e8efe0)!important}.ct-row{background:rgba(255,253,247,.72)!important;border:1px solid rgba(64,86,58,.10)!important;box-shadow:0 3px 10px rgba(37,52,34,.035)!important}.ct-row.active{background:linear-gradient(135deg,#dce9d4,#f2e4cf)!important;border-color:rgba(63,107,62,.22)!important}.ct-name{color:#1f3424!important}.chat-scroll{background:linear-gradient(180deg,#e8efe1 0%,#f3ecdc 100%)!important}.bubble{background:#fffaf0!important;border:1px solid rgba(60,82,55,.10)!important;color:#263029!important}.msg.mine .bubble{background:linear-gradient(135deg,#365f3a,#214126)!important;color:#fff8e8!important;border-color:rgba(255,255,255,.10)!important}.msg.mine .bubble time{color:rgba(255,248,232,.70)!important}.b-author{color:#a6653c!important}.chat-composer{background:linear-gradient(180deg,#efe7d8,#e3ebdd)!important;border-top:1px solid rgba(49,75,48,.13)!important}.chat-composer .input{background:#fffaf0!important;border-color:rgba(49,75,48,.16)!important}.chat-composer .csend{background:linear-gradient(135deg,#446b42,#1d3d24)!important;color:#fff8e8!important}

@media(max-width:720px){.home-dashboard .stat-grid.home-stats{gap:6px!important}.home-dashboard .stat{min-height:52px!important;padding:7px 6px!important;border-radius:14px!important}.home-dashboard .stat-v{font-size:16px!important}.home-dashboard .stat-l{font-size:8.8px!important}.section-head.next-title{margin-top:10px!important}.priority-next-shift .pill{height:22px!important;font-size:10px!important}
  .chat-shell{height:calc(100dvh - 188px - var(--safe-b))!important;border-radius:20px!important}.chat-list,.chat-thread{border-radius:20px!important}.ct-row{padding:10px!important;border-radius:16px!important}.chat-thread-head{min-height:54px!important;padding:9px 10px!important}.chat-scroll{padding:11px 10px!important}.bubble{padding:9px 11px!important;border-radius:16px!important}.b-text{font-size:13px!important}.chat-composer{padding:9px 10px calc(9px + max(0px,var(--safe-b)))!important}.chat-composer .input{height:42px!important}.chat-composer .csend{width:42px!important;height:42px!important}
}
@media(max-width:390px){}


/* ============================================================
   V27 Sleek Roster Card Edge + Time Range + Solid Mobile Dock
   ============================================================ */
.shift-card{
  border-radius:18px!important;
  min-height:68px!important;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--solid) 16%,#fff5e4) 0%,#fff8eb 48%,color-mix(in srgb,var(--solid) 12%,#e7eedf) 100%)!important;
  border:1px solid color-mix(in srgb,var(--solid) 34%,rgba(42,65,42,.13))!important;
  box-shadow:
    0 10px 24px rgba(26,39,26,.075),
    0 3px 12px -8px color-mix(in srgb,var(--solid) 80%,transparent),
    inset 0 1px 0 rgba(255,255,255,.72),
    inset 0 0 0 1px rgba(255,255,255,.34)!important;
}
.shift-card::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:18px!important;
  padding:2px!important;
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--solid) 72%,#e9c886) 0%,
      rgba(255,255,255,.72) 26%,
      color-mix(in srgb,var(--deep) 56%,#b99566) 55%,
      rgba(255,255,255,.55) 76%,
      color-mix(in srgb,var(--solid) 66%,#d7bd8c) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0)!important;
  -webkit-mask-composite:xor!important;
  mask-composite:exclude!important;
  pointer-events:none!important;
  z-index:3!important;
}
.shift-card .sc-time{
  width:52px!important;
  border-right:1px solid rgba(255,255,255,.20)!important;
  box-shadow:inset -1px 0 0 rgba(0,0,0,.09), inset 1px 0 0 rgba(255,255,255,.18)!important;
}
.shift-card .sc-main{position:relative;z-index:2!important;background:linear-gradient(90deg,rgba(255,253,247,.44),rgba(255,253,247,.12))!important}
.shift-card .sc-row1{gap:6px!important;align-items:center!important}
.shift-card .sc-status{margin-left:0!important}
.shift-card .sc-end{display:none!important}
.wk-cell{
  border-radius:13px!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,#fff8ed),#fffaf0 58%,color-mix(in srgb,var(--accent) 10%,#e9efe1))!important;
  border-color:color-mix(in srgb,var(--accent) 30%,rgba(42,65,42,.13))!important;
  box-shadow:0 6px 14px rgba(26,39,26,.055),inset 0 1px 0 rgba(255,255,255,.72)!important;
}
.wk-cell::before{width:5px!important;border-radius:0 10px 10px 0;background:linear-gradient(180deg,var(--accent),var(--accent-deep),color-mix(in srgb,var(--accent) 70%,#d7bd8c))!important}
.wkc-time{
  display:inline-flex!important;align-items:center!important;
  padding:2px 7px!important;border-radius:999px!important;
  background:color-mix(in srgb,var(--accent) 13%,#fff8e8)!important;
  border:1px solid color-mix(in srgb,var(--accent) 24%,rgba(42,65,42,.10))!important;
  font-size:10.5px!important;
}
@media(max-width:1023px){
  /* v447: legacy 94px bottom gradient + oversized content padding removed */
  .mtab.active{background:linear-gradient(180deg,#5f824f,#477046 58%,#335735)!important;border-color:rgba(232,222,198,.36)!important}
  .shift-card{min-height:62px!important;margin-bottom:7px!important;border-radius:16px!important}
  .shift-card::before{border-radius:16px!important;padding:1.5px!important}
  .shift-card .sc-time{width:47px!important;padding:6px 2px!important}
}
@media(max-width:390px){
  .shift-card .sc-time{width:44px!important}
  /* v447: legacy 98px bottom fill removed */
}



/* ============================================================
   V28 Employee Clock + Timesheet Polish
   ============================================================ */
.clock-subnav{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px!important;border-radius:22px!important;
  background:linear-gradient(180deg,#efe7d8,#dfe9d8)!important;border:1px solid rgba(60,88,55,.16)!important;
  box-shadow:0 10px 22px rgba(31,47,31,.06)!important;margin-bottom:10px!important;position:relative;z-index:2;
}
.clock-subnav button{
  height:44px;border-radius:16px;border:1px solid transparent;background:rgba(255,250,236,.48);display:flex;align-items:center;justify-content:center;gap:7px;
  font-weight:900;color:#334b34;font-size:12.8px;letter-spacing:-.01em;position:relative;overflow:hidden;
}
.clock-subnav button svg{width:16px;height:16px;stroke-width:2.1}.clock-subnav button em{position:absolute;right:8px;top:6px;min-width:18px;height:18px;border-radius:999px;background:#b77a3e;color:#fff8e8;font-size:10px;font-style:normal;display:grid;place-items:center}.clock-subnav button.active{background:linear-gradient(180deg,#4f754d,#264b2c)!important;color:#fff8e8!important;box-shadow:0 8px 18px rgba(35,70,39,.22),inset 0 1px 0 rgba(255,255,255,.16)}.clock-hand.h1{height:20px;transform:translate(-50%,-100%) rotate(45deg)}.clock-hand.h2{height:15px;transform:translate(-50%,-100%) rotate(145deg);background:#b17641}.active-face{width:150px;height:150px;border-radius:42px;margin:14px auto 10px;background:radial-gradient(circle at 50% 42%,#fffdf5,#deead7 64%,#bfcfb7)}.active-face::before{display:none}.active-face .ring-svg{position:absolute;inset:7px;width:calc(100% - 14px);height:calc(100% - 14px)}.emp-shift.v28-slim-shift{position:relative;overflow:hidden;padding:9px 10px 10px!important;border-radius:18px!important;background:linear-gradient(135deg,color-mix(in srgb,var(--solid) 20%,#fff3dd) 0%,#fff8ec 50%,color-mix(in srgb,var(--solid) 13%,#e2eadb) 100%)!important;border:1px solid color-mix(in srgb,var(--solid) 35%,rgba(39,63,39,.14))!important;box-shadow:0 9px 20px rgba(30,45,31,.065),inset 0 1px 0 rgba(255,255,255,.72)!important}.emp-shift.v28-slim-shift::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--solid),color-mix(in srgb,var(--solid) 50%,#c69a58),transparent)}.emp-shift.v28-slim-shift::after{content:"";position:absolute;right:-26px;top:-34px;width:95px;height:95px;border-radius:50%;background:color-mix(in srgb,var(--solid) 12%,transparent);pointer-events:none}.emp-shift.v28-slim-shift .es-copy{position:relative;z-index:1;min-width:0}.emp-shift.v28-slim-shift h3{font-family:var(--font-display);font-size:20px!important;line-height:1.05!important;font-weight:650!important;color:#1d2d20!important;margin:0 0 5px!important}.emp-shift.v28-slim-shift .es-loc{display:flex;align-items:center;gap:5px;font-size:12px!important;color:#667061!important;margin:0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emp-shift.v28-slim-shift .es-loc svg{width:13px;height:13px;flex-shrink:0;color:var(--solid)}.emp-shift.v28-slim-shift .es-note{margin-top:7px!important;border-radius:12px!important;padding:7px 9px!important;font-size:12px!important;background:rgba(255,251,241,.68)!important;border:1px solid rgba(75,90,65,.08)!important;color:#4e564e!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.emp-shift.v28-slim-shift .es-actions{position:relative;z-index:1;display:grid!important;grid-template-columns:1fr 1fr 1.1fr!important;gap:7px!important;margin-top:8px!important;padding-top:8px!important;border-top:1px solid color-mix(in srgb,var(--solid) 15%,rgba(38,61,38,.11))!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start,.emp-shift.v28-slim-shift .ec-done,.emp-shift.v28-slim-shift .ec-declined{height:36px!important;border-radius:13px!important;font-size:12px!important;font-weight:950!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important}.emp-shift.v28-slim-shift .ec-start{background:linear-gradient(135deg,var(--solid),var(--deep))!important;color:#fff8e8!important;box-shadow:0 8px 16px color-mix(in srgb,var(--solid) 25%,transparent)!important}.emp-shift.v28-slim-shift .ec-accept{background:#e4eedc!important;color:#355b37!important}.emp-shift.v28-slim-shift .ec-reject{background:#fff8f5!important;color:#a0443b!important;border:1px solid rgba(160,68,59,.22)!important}.clock-empty-card .btn{margin-top:8px}
.clock-timesheet-page .payroll-mobile-simple{margin-top:0!important}.clock-timesheet-page .payroll-mobile-simple .section-head{margin-top:6px!important}.locked-pill{display:inline-flex!important;align-items:center!important;gap:4px!important}.locked-pill svg{width:12px!important;height:12px!important;stroke-width:2.2}.rec-row.ts-compact.locked{background:linear-gradient(135deg,#f6f0e2,#e9efe2)!important;border-color:rgba(72,92,62,.18)!important}.rec-row.ts-compact.locked .rec-ic{background:linear-gradient(135deg,#385f3b,#213e26)!important;color:#fff8e8!important}
@media(max-width:720px){
  .clock-subnav{gap:6px;padding:5px!important;border-radius:19px!important;margin-bottom:8px!important}.clock-subnav button{height:39px;border-radius:14px;font-size:11.5px}.clock-subnav button svg{width:14px;height:14px}.active-face{width:122px;height:122px;border-radius:34px;margin:10px auto 8px}.emp-shift.v28-slim-shift{padding:8px 9px 9px!important;border-radius:16px!important}.emp-shift.v28-slim-shift h3{font-size:17px!important}.emp-shift.v28-slim-shift .es-loc{font-size:11px!important}.emp-shift.v28-slim-shift .es-note{padding:6px 8px!important;font-size:11px!important;margin-top:6px!important}.emp-shift.v28-slim-shift .es-actions{gap:6px!important;margin-top:7px!important;padding-top:7px!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start,.emp-shift.v28-slim-shift .ec-done,.emp-shift.v28-slim-shift .ec-declined{height:31px!important;border-radius:11px!important;font-size:10.5px!important}.payroll-mobile-simple .ts-day-card{border-radius:18px!important;padding:10px!important}
}
@media(max-width:390px){.emp-shift.v28-slim-shift .es-actions{grid-template-columns:.95fr .95fr 1.05fr!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start{font-size:9.6px!important}.clock-subnav button span{max-width:86px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emp-shift.v28-slim-shift h3{font-size:16px!important}}
@media(max-width:1023px){
  /* v447: legacy 118px bottom gradient removed - the .wwnav bar now paints its own background */
}



/* V28b extra squeeze for employee clock cards */
@media(max-width:720px){.emp-shift.v28-slim-shift{padding:7px 8px 8px!important;border-radius:15px!important}.emp-shift.v28-slim-shift h3{font-size:15.6px!important;margin-bottom:3px!important}.emp-shift.v28-slim-shift .es-loc{font-size:10.5px!important}.emp-shift.v28-slim-shift .es-note{margin-top:5px!important;padding:5px 7px!important;font-size:10.6px!important;border-radius:10px!important}.emp-shift.v28-slim-shift .es-actions{margin-top:6px!important;padding-top:6px!important;gap:5px!important}.emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start,.emp-shift.v28-slim-shift .ec-done,.emp-shift.v28-slim-shift .ec-declined{height:28px!important;border-radius:10px!important;font-size:9.8px!important}.emp-shift.v28-slim-shift .ec-reject svg,.emp-shift.v28-slim-shift .ec-accept svg,.emp-shift.v28-slim-shift .ec-start svg{width:13px!important;height:13px!important}
}


/* ============================================================
   V29 Timesheet Request Polish — no break, client search + add
   ============================================================ */
.timesheet-modal{
  max-width:640px!important;
  border-radius:26px!important;
  background:linear-gradient(180deg,#fffdf7 0%,#f4efe4 100%)!important;
}
.timesheet-modal .modal-head{
  padding:22px 24px 12px!important;
  background:linear-gradient(180deg,#fffdf7,#f7f1e6)!important;
  border-bottom:1px solid rgba(55,75,48,.08)!important;
}
.timesheet-modal .modal-body{padding:14px 24px 6px!important}
.timesheet-modal .modal-foot{
  background:linear-gradient(180deg,rgba(247,241,230,.72),#efe8d9)!important;
  border-top:1px solid rgba(55,75,48,.10)!important;
  box-shadow:0 -12px 28px rgba(35,47,31,.08)!important;
}
.missed-intro{
  display:grid;gap:4px;margin-bottom:12px;padding:12px 13px;border-radius:17px;
  background:linear-gradient(135deg,#e5eedf,#f4e7d4);
  border:1px solid rgba(67,95,61,.13);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.62);
}
.missed-intro strong{font-family:var(--font-display);font-size:18px;font-weight:650;color:#203525;letter-spacing:-.02em}
.missed-intro span{font-size:12.2px;line-height:1.35;color:#62705f;font-weight:650}
.ts-client-picker{display:grid;gap:8px}
.ts-client-selected{
  display:grid;gap:2px;padding:9px 11px;border-radius:15px;
  background:linear-gradient(135deg,#fff8ec,#e8efe1);
  border:1px solid rgba(58,88,55,.14);
  box-shadow:0 4px 12px rgba(35,47,31,.045),inset 0 1px 0 rgba(255,255,255,.72);
}
.ts-client-selected strong{font-size:13.5px;color:#203525;font-weight:900;line-height:1.1}
.ts-client-selected span{font-size:11.2px;color:#667061;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ts-client-search{
  height:42px;border-radius:14px;background:#fffaf0;border:1px solid rgba(58,78,51,.15);
  display:flex;align-items:center;gap:8px;padding:0 11px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
.ts-client-search svg{width:16px;height:16px;color:#64755f;flex-shrink:0}.ts-client-search input{border:0;background:transparent;outline:0;min-width:0;flex:1;font-size:14px;font-weight:800;color:#243128}.ts-client-search input::placeholder{color:#8a9288}
.ts-client-results{display:grid;gap:5px;max-height:172px;overflow:auto;padding:3px;border-radius:16px;background:rgba(235,228,214,.55);border:1px solid rgba(58,78,51,.08)}
.ts-client-results.is-collapsed{display:none}
.ts-client-row{
  min-height:43px;border:1px solid rgba(55,75,48,.10);border-radius:13px;background:rgba(255,253,247,.82);
  display:flex;align-items:center;gap:9px;text-align:left;padding:7px 9px;color:#263128;
  box-shadow:0 2px 8px rgba(36,49,40,.035);
}
.ts-client-row.selected{background:linear-gradient(135deg,#e1ecd9,#f4ead8);border-color:rgba(61,94,58,.24)}
.ts-client-dot{width:20px;height:20px;border-radius:50%;border:1.5px solid rgba(65,92,61,.25);display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(65,92,61,.10);font-size:12px;font-weight:900;flex-shrink:0}
.ts-client-row.selected .ts-client-dot{background:linear-gradient(135deg,#4b7548,#213f26);border-color:rgba(255,255,255,.35)}
.ts-client-row strong{display:block;font-size:12.8px;font-weight:900;color:#203525;line-height:1.1}.ts-client-row small{display:block;font-size:10.8px;color:#687366;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:430px;margin-top:2px}
.ts-add-client-toggle{
  height:36px;border-radius:13px;border:1px solid rgba(58,88,55,.12);background:linear-gradient(135deg,#e7efdf,#f4ead8);
  color:#2e5432;font-size:12.2px;font-weight:900;text-align:center;
}
.ts-add-client-panel{display:none;gap:8px;padding:10px;border-radius:16px;background:linear-gradient(135deg,#fff8ec,#e8efe1);border:1px solid rgba(64,91,59,.12)}
.ts-add-client-panel.open{display:grid}
.ts-add-client-panel .btn{height:38px;border-radius:12px;font-size:12px;font-weight:900}
.timesheet-modal .row2{gap:10px!important}
.timesheet-modal .field{margin-bottom:10px!important;gap:5px!important}
.timesheet-modal .field label{font-size:11.8px!important;color:#354437!important}
.timesheet-modal .input{height:44px!important;border-radius:14px!important;background:#fffaf0!important;border-color:rgba(54,74,48,.14)!important;font-size:14px!important;padding:0 12px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.78)!important}
.timesheet-modal textarea.input{height:auto!important;min-height:76px!important;padding:10px 12px!important;line-height:1.35!important}
@media(max-width:720px){
  .timesheet-modal{max-height:calc(100dvh - 28px)!important;border-radius:24px 24px 0 0!important}
  .timesheet-modal .modal-head{padding:15px 16px 9px!important}.timesheet-modal .modal-head h2{font-size:21px!important}
  .timesheet-modal .modal-body{padding:10px 14px 5px!important}.timesheet-modal .modal-foot{padding:9px 14px calc(11px + var(--safe-b))!important;gap:8px!important}.timesheet-modal .modal-foot .btn{height:40px!important;border-radius:13px!important;font-size:12.4px!important;min-width:0!important;flex:1!important}
  .missed-intro{padding:10px 11px!important;border-radius:15px!important;margin-bottom:9px!important}.missed-intro strong{font-size:16px!important}.missed-intro span{font-size:11px!important}
  .timesheet-modal .input{height:40px!important;border-radius:12px!important;font-size:13.3px!important;padding:0 10px!important}.timesheet-modal textarea.input{min-height:66px!important;padding:9px 10px!important;font-size:13.2px!important}
  .timesheet-modal .field{margin-bottom:8px!important}.timesheet-modal .field label{font-size:11px!important}
  .ts-client-selected{padding:8px 10px!important;border-radius:13px!important}.ts-client-selected strong{font-size:12.7px!important}.ts-client-selected span{font-size:10.4px!important}
  .ts-client-search{height:39px!important;border-radius:13px!important}.ts-client-search input{font-size:13.2px!important}.ts-client-results{max-height:136px!important;border-radius:14px!important}.ts-client-row{min-height:38px!important;padding:6px 8px!important;border-radius:12px!important}.ts-client-row strong{font-size:12px!important}.ts-client-row small{font-size:10px!important}.ts-add-client-toggle{height:33px!important;border-radius:12px!important;font-size:11.5px!important}.ts-add-client-panel{padding:8px!important;border-radius:14px!important}.ts-add-client-panel .row2{gap:7px!important}.ts-add-client-panel .btn{height:35px!important}
}
@media(max-width:390px){.timesheet-modal .row2{grid-template-columns:1fr 1fr!important;gap:7px!important}.timesheet-modal .modal-head h2{font-size:19px!important}.ts-client-row small{max-width:240px!important}.timesheet-modal .modal-foot .btn{font-size:11.5px!important}}


/* V29 animation stability: keep modals solid and readable */
.modal-overlay{animation:none!important;opacity:1!important}
.timesheet-modal{animation:none!important;opacity:1!important;transform:none!important;background:linear-gradient(180deg,#fffdf7 0%,#f4efe4 100%)!important}





/* v34 — restore isolated Next Shift layout only */
.employee-dashboard > .section-head.next-title{
  display:flex!important;
  align-items:center!important;
  margin-top:18px!important;
  margin-bottom:10px!important;
  clear:both!important;
}
.employee-dashboard > .section-head.next-title h2{
  margin:0!important;
}
@media(max-width:720px){
}



/* Easy employee login upgrade */
.employee-login-help{
  display:grid;
  gap:6px;
  margin:0 0 14px;
  padding:12px 13px;
  border-radius:17px;
  background:linear-gradient(135deg,#eef6e8,#fff8eb);
  border:1px solid rgba(55,88,49,.16);
  color:#213b22;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
}
.employee-login-help strong{font-size:13px;font-weight:900;color:#17351c;letter-spacing:-.01em}
.employee-login-help span{font-size:12px;font-weight:700;color:#526252;line-height:1.25}
.employee-login-help b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.employee-first-login-btn{
  width:100%;
  min-height:44px;
  margin-top:9px;
  border:1px solid rgba(55,88,49,.18);
  background:#fffaf0;
  border-radius:15px;
  color:#24452a;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
}
.employee-first-login-btn:hover{background:#eef6e8}
.login-share-note,.login-details-card{
  margin-top:10px;
  padding:12px 13px;
  border-radius:16px;
  background:linear-gradient(135deg,#f3eadb,#e6f0df);
  border:1px solid rgba(58,88,54,.14);
  color:#2c4630;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}
.login-details-card{display:grid;gap:6px;margin:12px 0}
.login-details-card strong{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:950;color:#18341d}
.login-details-card strong svg{width:16px;height:16px}
.login-details-card span{font-size:12px;color:#526252}
.login-details-card b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.login-details-card small{font-size:11.5px;color:#687467;font-weight:700}
@media(max-width:480px){.employee-login-help{padding:10px 11px}.employee-first-login-btn{min-height:42px;font-size:12px}}




/* ---- inline style 5 ---- */

/* V31 — flush mobile dock, stronger card contrast, professional clock timer */
@media(max-width:1023px){
  html,body,#app,.shell{width:100%!important;max-width:100vw!important;min-height:100dvh!important;background:#11301d!important;overflow-x:hidden!important;}
  .main{background:linear-gradient(180deg,#e8f0e3 0%,#dce8d8 46%,#cfe0cc 100%)!important;}
  .content{padding-left:12px!important;padding-right:12px!important;padding-bottom:calc(96px + var(--safe-b))!important;}
  .mtab.active{background:linear-gradient(180deg,#638755 0%,#416f42 55%,#2d562f 100%)!important;border-color:rgba(236,220,177,.32)!important;box-shadow:0 10px 22px rgba(8,36,17,.34),inset 0 1px 0 rgba(255,255,255,.18)!important;}
  .mtab.active > svg{background:rgba(255,250,234,.18)!important;color:#fff9e8!important;}
  .mtab.active::after{bottom:5px!important;background:#e4c987!important;box-shadow:0 0 8px rgba(228,201,135,.42)!important;}
}

/* Stronger contrast cards — no more same-colour-on-background */
.home-dashboard .stat,
.doc-intro.card-pad,
.account-hero.card-pad,
.profile-mini,
.avail-row,
.ts-day-card,
.xero-week-card,
.employee-payroll-strip,
.card:not(.mobile-nav){
  border-color:rgba(43,70,41,.16)!important;
}
.home-dashboard .stat{background:linear-gradient(145deg,#fbf0da 0%,#ead8b9 100%)!important;box-shadow:0 8px 20px rgba(31,44,30,.075),inset 0 1px 0 rgba(255,255,255,.70)!important;}
.home-dashboard .stat:nth-child(2){background:linear-gradient(145deg,#e5efd8 0%,#cddfbe 100%)!important;}
.home-dashboard .stat:nth-child(3){background:linear-gradient(145deg,#f0ddc6 0%,#deb98f 100%)!important;}
.home-dashboard .stat:nth-child(4){background:linear-gradient(145deg,#eee5cf 0%,#d9ccad 100%)!important;}

/* Roster cards — sleeker, clearer, with colour separation */
.shift-card,
.emp-shift.v28-slim-shift{
  background:linear-gradient(135deg,color-mix(in srgb,var(--solid) 22%,#ffe7bf) 0%,#fff1d4 42%,color-mix(in srgb,var(--solid) 20%,#d7eccb) 100%)!important;
  border:1.2px solid color-mix(in srgb,var(--solid) 48%,rgba(42,65,42,.22))!important;
  box-shadow:0 10px 24px rgba(27,43,27,.10),0 3px 12px -6px color-mix(in srgb,var(--solid) 62%,transparent),inset 0 1px 0 rgba(255,255,255,.72)!important;
}
.shift-card::before{
  content:""!important;position:absolute!important;inset:0!important;border-radius:inherit!important;padding:2px!important;
  background:linear-gradient(135deg,color-mix(in srgb,var(--solid) 75%,#d9b66a),rgba(255,255,255,.75),color-mix(in srgb,var(--deep) 55%,#b9874c),rgba(255,255,255,.42))!important;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0)!important;-webkit-mask-composite:xor!important;mask-composite:exclude!important;
  pointer-events:none!important;z-index:3!important;
}
.shift-card .sc-time{background:linear-gradient(180deg,var(--solid),var(--deep))!important;color:#fff8e8!important;}
.shift-card .sc-main{background:linear-gradient(90deg,rgba(255,249,234,.66),rgba(255,249,234,.20))!important;}
.shift-card .sc-row1 h3,.emp-shift.v28-slim-shift h3{color:#172619!important;text-shadow:0 1px 0 rgba(255,255,255,.40)!important;}
.emp-shift.v28-slim-shift{border-radius:16px!important;padding:8px 9px 9px!important;margin-bottom:8px!important;}
.emp-shift.v28-slim-shift::before{height:5px!important;background:linear-gradient(90deg,var(--solid),color-mix(in srgb,var(--solid) 55%,#d79d49),transparent)!important;}
.emp-shift.v28-slim-shift .es-note{background:rgba(255,249,235,.86)!important;border-color:rgba(60,78,54,.12)!important;color:#3b443d!important;}
@media(max-width:720px){
  .shift-card{min-height:62px!important;margin-bottom:7px!important;border-radius:15px!important;}
  .shift-card .sc-main{padding:6px 8px!important;}
  .shift-card .sc-time{width:46px!important;padding:5px 2px!important;}
  .emp-shift.v28-slim-shift{padding:7px 8px 8px!important;border-radius:15px!important;}
  .emp-shift.v28-slim-shift h3{font-size:14.8px!important;margin-bottom:2px!important;}
  .emp-shift.v28-slim-shift .es-loc{font-size:10px!important;}
  .emp-shift.v28-slim-shift .es-note{padding:5px 7px!important;font-size:10px!important;margin-top:4px!important;}
  .emp-shift.v28-slim-shift .es-actions{gap:5px!important;margin-top:5px!important;padding-top:5px!important;}
  .emp-shift.v28-slim-shift .ec-reject,.emp-shift.v28-slim-shift .ec-accept,.emp-shift.v28-slim-shift .ec-start,.emp-shift.v28-slim-shift .ec-done,.emp-shift.v28-slim-shift .ec-declined{height:26px!important;border-radius:9px!important;font-size:9.3px!important;}
}

/* Professional clock timer — replace amateur oversized circle with a polished timer panel */
.clock-hero.live.clock-hero-v28{
  text-align:left!important;display:grid!important;gap:10px!important;min-height:0!important;padding:13px!important;border-radius:22px!important;
  background:
    radial-gradient(circle at 14% 0%,rgba(225,196,130,.20),transparent 34%),
    radial-gradient(circle at 100% 0%,rgba(116,150,101,.28),transparent 38%),
    linear-gradient(135deg,#1f3f26 0%,#284f2d 48%,#142718 100%)!important;
  border:1px solid rgba(230,212,169,.24)!important;box-shadow:0 14px 34px rgba(14,34,17,.25),inset 0 1px 0 rgba(255,255,255,.14)!important;color:#fff9e8!important;
}
.clock-hero.live .clock-card-glow{display:none!important;}
.clock-hero.live .live-badge{background:rgba(233,244,224,.14)!important;color:#e9f4df!important;border:1px solid rgba(239,231,203,.16)!important;}
.clock-hero.live .live-client{color:#fff4d9!important;font-size:13px!important;}
.clock-hero.live .active-face{
  width:100%!important;height:104px!important;margin:0!important;border-radius:22px!important;display:grid!important;place-items:center!important;
  background:linear-gradient(135deg,rgba(255,250,232,.13),rgba(255,250,232,.06))!important;
  border:1px solid rgba(239,231,203,.18)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 18px rgba(0,0,0,.14)!important;overflow:hidden!important;
}
.clock-hero.live .active-face::before{display:block!important;content:""!important;position:absolute!important;inset:auto -40px -70px auto!important;width:160px!important;height:160px!important;border-radius:50%!important;background:rgba(214,190,126,.13)!important;border:0!important;}
.clock-hero.live .ring-svg{display:none!important;}
.clock-hero.live .clock-face-inner{position:relative!important;inset:auto!important;z-index:1!important;}
.clock-hero.live .clock-face-inner strong{font-family:var(--font-mono)!important;font-size:34px!important;font-weight:900!important;letter-spacing:.02em!important;color:#fff9e8!important;text-shadow:0 8px 22px rgba(0,0,0,.24)!important;}
.clock-hero.live .clock-face-inner span{margin-top:7px!important;padding:5px 10px!important;border-radius:999px!important;background:rgba(255,250,232,.12)!important;border:1px solid rgba(255,250,232,.16)!important;color:#d9e7d2!important;font-size:9.2px!important;letter-spacing:.18em!important;}
.clock-hero.live .clock-mini-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;margin:0!important;}
.clock-hero.live .clock-mini-row span{height:34px!important;border-radius:13px!important;background:rgba(255,250,232,.12)!important;border:1px solid rgba(255,250,232,.15)!important;color:#f4edda!important;font-size:10.5px!important;}
.clock-hero.live .new-clock-out{height:44px!important;border-radius:15px!important;background:linear-gradient(135deg,#c27a42 0%,#9d542f 100%)!important;color:#fff9e8!important;box-shadow:0 10px 20px rgba(105,49,25,.28)!important;}
.clock-hero.idle.clock-hero-v28{background:linear-gradient(135deg,#f4dfbc 0%,#e8d2ad 46%,#d7e7cf 100%)!important;border-color:rgba(71,102,61,.22)!important;box-shadow:0 10px 24px rgba(31,47,31,.10),inset 0 1px 0 rgba(255,255,255,.70)!important;}
.clock-hero.idle .clock-face-new{background:radial-gradient(circle at 35% 25%,#fff7df,#e4c997 45%,#8fb080 100%)!important;border-color:rgba(77,100,58,.22)!important;}
.clock-subnav{background:linear-gradient(180deg,#d8c69f,#c4d8bd)!important;border-color:rgba(53,81,49,.20)!important;}
.clock-subnav button{background:rgba(255,250,234,.46)!important;color:#223d25!important;}
.clock-subnav button.active{background:linear-gradient(180deg,#4d7a49,#213f25)!important;color:#fff8e8!important;}
@media(max-width:720px){
  .clock-hero.live .active-face{height:92px!important;border-radius:19px!important;}
  .clock-hero.live .clock-face-inner strong{font-size:29px!important;}
  .clock-hero.live .clock-mini-row span{height:31px!important;font-size:9.5px!important;}
  .clock-hero.live .new-clock-out{height:40px!important;}
}




/* v34 — restore isolated Next Shift layout only */
.employee-dashboard > .section-head.next-title{
  display:flex!important;
  align-items:center!important;
  margin-top:18px!important;
  margin-bottom:10px!important;
  clear:both!important;
}
.employee-dashboard > .section-head.next-title h2{
  margin:0!important;
}
@media(max-width:720px){
}



/* Easy employee login upgrade */
.employee-login-help{
  display:grid;
  gap:6px;
  margin:0 0 14px;
  padding:12px 13px;
  border-radius:17px;
  background:linear-gradient(135deg,#eef6e8,#fff8eb);
  border:1px solid rgba(55,88,49,.16);
  color:#213b22;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
}
.employee-login-help strong{font-size:13px;font-weight:900;color:#17351c;letter-spacing:-.01em}
.employee-login-help span{font-size:12px;font-weight:700;color:#526252;line-height:1.25}
.employee-login-help b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.employee-first-login-btn{
  width:100%;
  min-height:44px;
  margin-top:9px;
  border:1px solid rgba(55,88,49,.18);
  background:#fffaf0;
  border-radius:15px;
  color:#24452a;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
}
.employee-first-login-btn:hover{background:#eef6e8}
.login-share-note,.login-details-card{
  margin-top:10px;
  padding:12px 13px;
  border-radius:16px;
  background:linear-gradient(135deg,#f3eadb,#e6f0df);
  border:1px solid rgba(58,88,54,.14);
  color:#2c4630;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}
.login-details-card{display:grid;gap:6px;margin:12px 0}
.login-details-card strong{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:950;color:#18341d}
.login-details-card strong svg{width:16px;height:16px}
.login-details-card span{font-size:12px;color:#526252}
.login-details-card b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.login-details-card small{font-size:11.5px;color:#687467;font-weight:700}
@media(max-width:480px){.employee-login-help{padding:10px 11px}.employee-first-login-btn{min-height:42px;font-size:12px}}




/* ---- inline style 6 ---- */

/* V32 — colourful roster cards that pop + bigger professional clock information */
.shift-card,
.emp-shift.v28-slim-shift,
.priority-next-shift{
  isolation:isolate!important;
}
.shift-card,
.emp-shift.v28-slim-shift{
  background:
    radial-gradient(circle at 92% 4%,color-mix(in srgb,var(--solid) 18%,transparent) 0 56px,transparent 58px),
    linear-gradient(135deg,var(--cardA,#fff3d8) 0%,var(--cardB,#d9f3cf) 56%,var(--cardC,#ffe4b7) 100%)!important;
  border:1.5px solid color-mix(in srgb,var(--solid) 58%,rgba(36,48,42,.20))!important;
  box-shadow:
    0 12px 26px rgba(20,28,24,.12),
    0 4px 14px -5px color-mix(in srgb,var(--solid) 70%,transparent),
    inset 0 1px 0 rgba(255,255,255,.70)!important;
}
.shift-card::before{
  padding:2px!important;
  background:linear-gradient(135deg,var(--solid),rgba(255,255,255,.88),var(--deep),rgba(255,255,255,.46),var(--solid))!important;
}
.shift-card .sc-main,
.emp-shift.v28-slim-shift .es-copy,
.emp-shift.v28-slim-shift .es-topline,
.emp-shift.v28-slim-shift .es-actions{
  position:relative!important;z-index:2!important;
}
.shift-card .sc-main{
  background:linear-gradient(90deg,rgba(255,255,255,.64),rgba(255,255,255,.18))!important;
}
.shift-card .sc-time,
.emp-shift.v28-slim-shift .es-time-pill{
  background:linear-gradient(160deg,var(--solid) 0%,var(--deep) 100%)!important;
  color:#fff!important;
}
.sc-status.published{background:rgba(255,255,255,.72)!important;color:var(--deep)!important;border:1px solid color-mix(in srgb,var(--solid) 32%,rgba(255,255,255,.25))!important;}
.sc-status.draft{background:rgba(255,245,213,.82)!important;color:#8a5b00!important;border:1px solid rgba(160,110,10,.20)!important;}
.shift-card .sc-row1 h3,
.emp-shift.v28-slim-shift h3{
  color:#101a15!important;
  text-shadow:0 1px 0 rgba(255,255,255,.58)!important;
}
.shift-card:nth-of-type(2n),
.emp-shift.v28-slim-shift:nth-of-type(2n){filter:saturate(1.10) contrast(1.02)}
.shift-card:nth-of-type(3n),
.emp-shift.v28-slim-shift:nth-of-type(3n){filter:saturate(1.18) contrast(1.04)}
.home-roster-list .shift-card,
.roster-mobile .shift-card,
.employee-clock-shifts .emp-shift.v28-slim-shift{
  margin-bottom:10px!important;
}
/* Bigger, clearer live clock without looking amateur */
.clock-hero.live.clock-hero-v28{
  padding:16px!important;
  gap:12px!important;
  border-radius:24px!important;
  background:
    radial-gradient(circle at 88% 12%,rgba(96,157,92,.28),transparent 36%),
    radial-gradient(circle at 12% 0%,rgba(230,191,105,.22),transparent 35%),
    linear-gradient(135deg,#143d27 0%,#1f633a 52%,#0c2418 100%)!important;
}
.clock-hero.live .active-face{
  height:128px!important;
  border-radius:24px!important;
  background:
    radial-gradient(circle at 80% 12%,rgba(255,227,145,.13),transparent 36%),
    linear-gradient(135deg,rgba(255,250,232,.18),rgba(255,250,232,.075))!important;
}
.clock-hero.live .clock-face-inner strong{
  font-size:44px!important;
  letter-spacing:.035em!important;
}
.clock-hero.live .clock-face-inner span{
  font-size:10.5px!important;
  padding:6px 13px!important;
}
.clock-hero.live .clock-mini-row span{
  height:40px!important;
  font-size:12px!important;
  font-weight:950!important;
}
.clock-hero.live .new-clock-out{
  height:50px!important;
  font-size:15.5px!important;
  border-radius:17px!important;
}
@media(max-width:720px){
  .content{padding-left:10px!important;padding-right:10px!important;}
  .shift-card{border-radius:16px!important;min-height:64px!important;margin-bottom:8px!important;}
  .shift-card .sc-time{width:49px!important;}
  .shift-card .sc-row1 h3{font-size:13px!important;max-width:38vw!important;}
  .emp-shift.v28-slim-shift{padding:9px 10px 10px!important;border-radius:17px!important;margin-bottom:10px!important;}
  .emp-shift.v28-slim-shift h3{font-size:18px!important;}
  .emp-shift.v28-slim-shift .es-time-pill{height:25px!important;font-size:12px!important;}
  .emp-shift.v28-slim-shift .es-duration{font-size:10.5px!important;}
  .emp-shift.v28-slim-shift .es-note{font-size:11.3px!important;background:rgba(255,255,255,.70)!important;}
  .clock-hero.live .active-face{height:116px!important;border-radius:22px!important;}
  .clock-hero.live .clock-face-inner strong{font-size:39px!important;}
  .clock-hero.live .clock-mini-row span{height:38px!important;font-size:11px!important;}
  .clock-hero.live .new-clock-out{height:47px!important;font-size:14.5px!important;}
}
@media(max-width:390px){
  .shift-card .sc-row1 h3{max-width:33vw!important;}
  .clock-hero.live .clock-face-inner strong{font-size:34px!important;}
}



/* ============================================================
   V33 requested-only polish: card contrast + clock address/time
   ============================================================ */
:root{
  --v33-cream:#fffaf0;
  --v33-cream-2:#f7f0df;
  --v33-ink:#102717;
  --v33-muted:#526155;
  --v33-border:rgba(31,51,28,.20);
}
.priority-next-shift .pill-clay{
  background:linear-gradient(135deg,#b84a31,#873221)!important;color:#fff8e8!important;border-color:rgba(116,47,29,.22)!important;
}
.emp-shift.v28-slim-shift .es-note{
  backdrop-filter:blur(4px);
}
/* Live clock: address + time are first-class and readable */
.clock-hero.live.clock-hero-v28{
  background:
    radial-gradient(circle at 78% 36%,rgba(135,178,84,.18) 0 25%,transparent 26%),
    linear-gradient(135deg,#082b19 0%,#104025 53%,#071d13 100%)!important;
  border:1.5px solid rgba(205,174,104,.34)!important;
  box-shadow:0 16px 34px rgba(6,25,15,.20), inset 0 1px 0 rgba(255,255,255,.12)!important;
}
.clock-hero.live .active-face{
  background:linear-gradient(135deg,rgba(255,250,232,.19),rgba(255,250,232,.08))!important;
  border:1px solid rgba(255,250,232,.18)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 10px 22px rgba(0,0,0,.12)!important;
}
.clock-hero.live .clock-face-inner strong{color:#fffaf0!important;text-shadow:0 4px 18px rgba(0,0,0,.18)!important;}
.clock-hero.live .clock-face-inner span{color:#d9efd4!important;border-color:rgba(255,255,255,.16)!important;background:rgba(255,255,255,.08)!important;}
.clock-hero.live .clock-mini-row span{background:rgba(255,255,255,.10)!important;color:#fff8e9!important;border-color:rgba(255,255,255,.13)!important;}
.clock-hero.live .new-clock-out{background:linear-gradient(135deg,#c66d34,#9e4525)!important;box-shadow:0 12px 20px rgba(125,51,25,.24)!important;}
/* Idle clock card: less pale yellow, stronger card edge */
.clock-hero.idle.clock-hero-v28{
  background:linear-gradient(135deg,#fff8eb 0%,#f0e2c9 51%,#e9efe0 100%)!important;
  border:1.4px solid rgba(95,78,42,.22)!important;
  box-shadow:0 12px 26px rgba(34,45,27,.11),inset 0 1px 0 rgba(255,255,255,.78)!important;
}
@media(max-width:720px){
}
@media(max-width:390px){
}


/* v34 — restore isolated Next Shift layout only */
.employee-dashboard > .section-head.next-title{
  display:flex!important;
  align-items:center!important;
  margin-top:18px!important;
  margin-bottom:10px!important;
  clear:both!important;
}
.employee-dashboard > .section-head.next-title h2{
  margin:0!important;
}
@media(max-width:720px){
}


/* ============================================================
   POLISH PASS — alignment, spacing, contrast, mobile fit
   ============================================================ */
/* Ensure content has breathing room above the mobile bottom nav */
@media(max-width:1023px){
  .content,.page{padding-bottom:calc(110px + var(--safe-b,0px))!important}
}

/* Stat cards: max 2 per row on mobile so text isn't crammed */
@media(max-width:560px){
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
  .stat{padding:13px 14px!important}
  .stat strong,.stat .num,.stat .stat-num{font-size:21px!important}
  .stat .label,.stat .stat-label{font-size:11.5px!important}
  .stat .sub,.stat .stat-sub{font-size:10.5px!important}
}

/* Profile stat row: labels visible, smaller cards on mobile */
@media(max-width:560px){
}

/* PINNED badge: white text on coloured background */


/* "Save as draft" button on shift cards — neutral sage, not danger red */
.shift-card .sc-publish,
.shift-card .sc-publish.unpub,
.shift-card .save-draft,.shift-card .draft-btn,.shift-card [data-action="save-draft"],
.shift-card button[data-action*="draft"]{
  background:rgba(255,255,255,.78)!important;
  color:color-mix(in srgb,var(--deep,#1f5e34) 80%,#000)!important;
  border:1px solid color-mix(in srgb,var(--deep,#1f5e34) 28%,transparent)!important;
  font-weight:620!important;
  border-radius:8px!important;
  padding:4px 10px!important;
  font-size:10.5px!important;
}
.shift-card .sc-publish.pub{
  background:linear-gradient(135deg,var(--forest-500),var(--forest-700))!important;
  color:#fff!important;
  border:0!important;
}

/* Chat: hide duplicate "Messages" panel header on mobile (page title already shows it) */
@media(max-width:1023px){
  .chat-list .cl-head{
    padding:8px 12px 6px!important;
    background:transparent!important;
  }
  .chat-list .cl-head h2{display:none!important}
  .chat-list .cl-head{justify-content:flex-end!important}
}

/* Availability rows: prevent last row being hidden by nav */
@media(max-width:1023px){
  .avail-list,.avail-rows{padding-bottom:20px!important}
}

/* Make sure all bottom-anchored content gets clearance */
@media(max-width:1023px){
  main.content > .page,.content > .page{padding-bottom:calc(120px + var(--safe-b,0px))!important}
}

/* ============================================================
   MAJOR POLISH PASS — readable, cohesive, no yellow tint
   ============================================================ */

/* Cooler page background — drop the warm peach radial */
body{
  background:
    radial-gradient(ellipse 70% 40% at 18% -8%, rgba(140,180,130,.32) 0%, transparent 60%),
    radial-gradient(ellipse 55% 35% at 95% 8%, rgba(155,190,160,.18) 0%, transparent 60%),
    radial-gradient(ellipse 90% 55% at 50% 110%, rgba(120,165,125,.16) 0%, transparent 70%),
    linear-gradient(178deg,#eaeee3 0%,#dde4d6 100%)!important;
}

/* MOBILE NAV — deep-green glass bar that stands out */
@media(max-width:1023px){
  .mtab.active{
    background:linear-gradient(180deg,#23b46a 0%,#118f4a 60%,#0a7a3a 100%)!important;
    border-color:rgba(255,255,255,.18)!important;
    box-shadow:
      0 8px 22px rgba(18,143,74,.45),
      inset 0 1px 0 rgba(255,255,255,.30),
      inset 0 -1px 0 rgba(0,40,18,.20)!important;
  }
  .mtab.active > svg{
    background:rgba(255,255,255,.22)!important;
    border-color:rgba(255,255,255,.26)!important;
    color:#fff!important;
  }
  .mtab.active span{color:#fff!important}
}
.next-shift .pill,.next-shift .ns-top .pill,.next-shift .ns-date{
  background:color-mix(in srgb, var(--deep,#1f5e34) 80%, #000)!important;
  color:#fff!important;
  border:0!important;
  font-weight:800!important;
}
.next-shift .ns-clock-btn,.next-shift .btn-primary{
  background:linear-gradient(135deg, color-mix(in srgb, var(--deep,#1f5e34) 85%, #000), color-mix(in srgb, var(--deep,#1f5e34) 100%, #000))!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 6px 14px -4px rgba(0,0,0,.25)!important;
}





.stat.sage{background:linear-gradient(160deg,#deecda,#c9dfc4)!important;border-color:rgba(58,120,70,.30)!important}
.stat.clay{background:linear-gradient(160deg,#f4e6d6,#ecd6bd)!important;border-color:rgba(168,82,40,.30)!important}
.stat strong,.stat .num,.stat .stat-num,.stat .stat-value{color:#142016!important;font-weight:800!important}
.stat .label,.stat .stat-label{color:#2a3a2c!important;font-weight:800!important}
.stat .sub,.stat .stat-sub{color:#5a6a5d!important;font-weight:600!important}


.upd-row{
  display:flex;align-items:center;gap:11px;
  width:100%;
  padding:13px 4px;
  background:transparent;
  border:0;
  text-align:left;
  cursor:pointer;
}
.upd-dot{
  width:30px;height:30px;flex-shrink:0;
  border-radius:9px;
  display:grid;place-items:center;
  background:linear-gradient(135deg,var(--forest-500),var(--forest-700));
  color:#fff;
  box-shadow:0 2px 5px -1px rgba(20,40,20,.25);
}
.upd-dot svg{width:14px;height:14px;stroke-width:2.2}
.upd-item.pinned .upd-dot{background:linear-gradient(135deg,var(--clay-500),var(--clay-600))}
.upd-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.upd-title{
  font-size:14px;font-weight:700;color:#172319;letter-spacing:-.01em;
  display:flex;align-items:center;gap:7px;min-width:0;
}
.upd-titletext{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto;}
.upd-new,.upd-pin{flex:0 0 auto;}
.upd-pin{
  display:inline-block;font-style:normal;
  font-size:9px;font-weight:800;letter-spacing:.08em;
  color:#fff;
  background:linear-gradient(135deg,var(--clay-500),var(--clay-600));
  padding:2px 7px;border-radius:20px;
  text-transform:uppercase;
}
.upd-meta{font-size:11.5px;color:#5a6a5d;font-weight:600}
.upd-chev{
  width:24px;height:24px;flex-shrink:0;
  display:grid;place-items:center;
  color:#5a6a5d;
  transform:rotate(180deg);
  transition:transform .2s ease;
}
.upd-chev svg{width:15px;height:15px}
.upd-item.open .upd-chev{transform:rotate(-90deg);color:var(--forest-700)}
.upd-item.open{background:linear-gradient(160deg,rgba(244,247,239,.55),rgba(233,239,225,.45))}
.upd-body{
  padding:0 8px 14px 49px;
  animation:upd-open .18s ease-out;
}
.upd-body p{
  font-size:13.5px;line-height:1.5;color:#2c3a2e;
  font-weight:500;margin:0;
}
.upd-empty{
  margin:6px 4px;padding:14px 4px;
  border-top:1px solid rgba(58,93,59,.16);
  font-size:13px;color:#5a6a5d;font-style:italic;
}
@keyframes upd-open{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}

/* ----- Roster card: add sleek edge ornament ----- */
.shift-card{
  position:relative!important;
}
.shift-card::before{
  content:""!important;
  position:absolute!important;
  top:8px!important;bottom:8px!important;
  right:8px!important;
  width:3px!important;
  border-radius:2px!important;
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--solid,#2f7d4a) 78%,#000) 0%,
    color-mix(in srgb,var(--solid,#2f7d4a) 38%,transparent) 50%,
    color-mix(in srgb,var(--solid,#2f7d4a) 78%,#000) 100%)!important;
  opacity:.7!important;
  pointer-events:none!important;
}
.shift-card::after{
  content:""!important;
  position:absolute!important;
  top:50%!important;
  right:4px!important;
  transform:translateY(-50%)!important;
  width:11px!important;height:11px!important;
  border-radius:50%!important;
  background:color-mix(in srgb,var(--solid,#2f7d4a) 70%,#000)!important;
  border:2px solid #fff!important;
  box-shadow:0 1px 3px rgba(0,0,0,.18)!important;
  display:none!important;
}
/* the time block on the left gets a notched edge */
.shift-card .sc-time{
  position:relative!important;
  border-right:1px dashed rgba(255,255,255,.35)!important;
}
.shift-card .sc-time::after{
  content:""!important;
  position:absolute!important;
  right:-5px!important;top:50%!important;
  transform:translateY(-50%)!important;
  width:9px!important;height:9px!important;
  border-radius:50%!important;
  background:#e8efe1!important;
  box-shadow:
    inset 0 1px 2px rgba(0,0,0,.18),
    0 0 0 1px color-mix(in srgb,var(--solid,#2f7d4a) 30%,transparent)!important;
}

/* ----- Mobile menu refresh: lift, glow, lighter inactive contrast ----- */
@media(max-width:1023px){
  .mtab.active{
    background:linear-gradient(180deg,#2dc774 0%,#13a04f 55%,#0a7a3a 100%)!important;
    border:1px solid rgba(255,255,255,.30)!important;
    box-shadow:
      0 12px 26px rgba(18,160,82,.55),
      0 0 0 2px rgba(45,199,116,.20),
      inset 0 1px 0 rgba(255,255,255,.40)!important;
    transform:translateY(-3px) scale(1.02)!important;
  }
  .mtab.active > svg{
    background:rgba(255,255,255,.28)!important;
    border-color:rgba(255,255,255,.4)!important;
    color:#fff!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.4)!important;
  }
  .mtab.active span{color:#fff!important;font-weight:800!important;text-shadow:0 1px 2px rgba(0,40,18,.30)!important}
}
.acs-employee-picker summary .ce-chev{color:#fff!important}
.acs-selected-head .avatar{
  background:rgba(255,255,255,.22)!important;
  color:#fff!important;
  border:2px solid rgba(255,255,255,.30)!important;
}
.acs-emp-nav .btn{
  flex:1!important;
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.26)!important;
  font-weight:620!important;
}
.acs-emp-nav .btn:hover{background:rgba(255,255,255,.24)!important}

/* ----- Messages: smooth colours, less harsh ----- */
.chat-list{background:#f4f7ef!important;border-color:rgba(58,93,59,.18)!important}
.ct-row{background:transparent!important;transition:background .15s ease}
.ct-row:hover{background:rgba(58,93,59,.08)!important}
.ct-row.active{background:linear-gradient(135deg,rgba(31,94,52,.16),rgba(31,94,52,.08))!important;border-left:3px solid var(--forest-600)!important}
.chat-thread{background:#fbfdf8!important}
.chat-thread-head{background:linear-gradient(135deg,#1f5e34 0%,#163f24 100%)!important;color:#fff!important}
.chat-thread-head .cth-info strong{color:#fff!important}
.chat-thread-head .cth-info span{color:rgba(225,234,221,.78)!important}
.msg.mine .bubble{
  background:linear-gradient(135deg,#1f5e34,#143d23)!important;
  color:#fff!important;
  border:0!important;
}
.msg:not(.mine) .bubble{
  background:#fff!important;
  border:1px solid rgba(58,93,59,.16)!important;
  box-shadow:0 1px 3px rgba(20,40,20,.06)!important;
}
.chat-composer{background:rgba(244,247,239,.6)!important;border-top:1px solid rgba(58,93,59,.16)!important}
.chat-composer .input{
  background:#fff!important;
  border:1px solid rgba(58,93,59,.20)!important;
}

/* ----- Availability: smaller, more standout rows ----- */
@media(max-width:1023px){
}

/* ----- Employee Today's shifts (clock page) cards: less white ----- */
.home-roster-list .shift-card,.clock-shifts .shift-card{
  background:linear-gradient(135deg,
    color-mix(in srgb,var(--solid,#2f7d4a) 24%,#fff),
    color-mix(in srgb,var(--solid,#2f7d4a) 38%,#fff))!important;
}

/* ============================================================
   LOGIN SCREEN — clean, professional, EarthRoster brand
   ============================================================ */
/* ============================================================
   LOGIN SCREEN — professional redesign (v136)
   A calm forest backdrop, one clean white card, refined type,
   and a stable centred layout. A single gentle fade-in on load
   (no transforms that shake), dynamic-viewport height so the
   keyboard never makes the card jump.
   ============================================================ */
/* ============================================================
   LOGIN v333 — "Dawn" split-screen (brand panel + form)
   ============================================================ */
.lg2-root{
  position:fixed;inset:0;z-index:10;display:flex;min-height:100dvh;
  background:#f6f4ec;overflow:hidden;
  animation:lg2Fade .5s ease both;
}
@keyframes lg2Fade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.lg2-root{animation:none}}

/* ---------- BRAND SIDE ---------- */
.lg2-brand{
  position:relative;flex:1 1 52%;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:#0f1d12;isolation:isolate;
}
.lg2-sky{position:absolute;inset:0;
  background:linear-gradient(180deg,#12271a 0%,#1c3a24 38%,#3c5a34 68%,#6d7f49 100%);}
.lg2-sun{position:absolute;left:50%;top:58%;width:520px;height:520px;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(233,196,106,.95) 0%,rgba(216,158,74,.5) 30%,rgba(216,158,74,0) 62%);
  filter:blur(2px);animation:lg2Rise 1.4s cubic-bezier(.22,1,.36,1) both;}
@keyframes lg2Rise{from{transform:translate(-50%,10%);opacity:0}to{transform:translate(-50%,-50%);opacity:1}}
.lg2-hills{position:absolute;inset:0;overflow:hidden}
.lg2-hill{position:absolute;left:-10%;right:-10%;border-radius:50%/100% 100% 0 0;}
.lg2-hill-3{bottom:34%;height:44%;background:#3f5b38;opacity:.55;filter:blur(1px)}
.lg2-hill-2{bottom:20%;height:46%;background:#33502f;}
.lg2-hill-1{bottom:-6%;height:52%;background:#20361f;}
.lg2-hill{animation:lg2Hill 1.1s cubic-bezier(.22,1,.36,1) both}
.lg2-hill-2{animation-delay:.08s}.lg2-hill-1{animation-delay:.16s}
@keyframes lg2Hill{from{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.lg2-sun,.lg2-hill{animation:none}}
.lg2-brand-inner{position:relative;z-index:2;max-width:400px;padding:48px;color:#f4f7ee;
  animation:lg2Up .8s .2s cubic-bezier(.22,1,.36,1) both}
@keyframes lg2Up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.lg2-brand-inner{animation:none}}
.lg2-mark{width:76px;height:76px;border-radius:20px;overflow:hidden;margin-bottom:26px;
  box-shadow:0 18px 40px -14px rgba(0,0,0,.6);background:#6a7350}
.lg2-mark img{width:100%;height:100%;object-fit:cover;display:block}
.lg2-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
  color:#e9c46a;margin-bottom:12px}
.lg2-wordmark h1{font-family:var(--font-display,"Fraunces",Georgia,serif);font-weight:600;
  font-size:52px;line-height:.98;letter-spacing:-.02em;color:#fbfdf6;margin:0}
.lg2-wordmark p{margin:16px 0 0;font-size:15.5px;line-height:1.5;color:rgba(232,240,224,.82);max-width:330px;font-weight:500}
.lg2-points{list-style:none;margin:34px 0 0;padding:0;display:flex;flex-direction:column;gap:13px}
.lg2-points li{display:flex;align-items:center;gap:11px;font-size:14px;font-weight:600;color:rgba(238,244,230,.9)}
.lg2-tick{flex-shrink:0;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  background:rgba(233,196,106,.16);border:1px solid rgba(233,196,106,.4)}
.lg2-tick svg{width:13px;height:13px;stroke:#e9c46a}

/* ---------- FORM SIDE ---------- */
.lg2-main{flex:1 1 48%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:40px 24px calc(28px + env(safe-area-inset-bottom));position:relative;overflow-y:auto;background:#f6f4ec}
.lg2-form-wrap{width:100%;max-width:392px;margin:auto}
.lg2-mobile-mark{display:none}
.lg2-head{margin-bottom:24px}
.lg2-greet{display:block;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#a8845f;margin-bottom:8px}
.lg2-head h2{font-family:var(--font-display,"Fraunces",Georgia,serif);font-weight:600;font-size:30px;
  line-height:1.06;letter-spacing:-.015em;color:#1e2617;margin:0}
.lg2-head p{margin:9px 0 0;font-size:14px;line-height:1.45;color:#6f7c60;font-weight:500}
.lg2-field{margin-bottom:15px}
.lg2-field label{display:block;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#3a4a3c;margin-bottom:7px}
.lg2-input{width:100%;height:52px;padding:0 16px;border-radius:14px;border:1px solid #d8dde2;
  background:#fff;font-size:16px;font-weight:500;color:#1e2617;outline:none;
  transition:border-color .15s ease,box-shadow .15s ease}
.lg2-input::placeholder{color:#9aa39a;font-weight:500}
.lg2-root .lg2-input:focus,
.lg2-root .lg2-input:focus-visible{border-color:#8b949e;box-shadow:none;outline:none!important;outline-offset:0!important}
/* Neutral login fields: login-only override for older global green focus styles.
   Keep other EarthRoster form fields and their existing accessible states unchanged. */
body .lg2-root .lg2-input,
body.er1319 .lg2-root .lg2-input{
  border:1px solid #d8dde2!important;
  background:#fff!important;
  box-shadow:none!important;
  outline:none!important;
}
body .lg2-root .lg2-input:focus,
body .lg2-root .lg2-input:focus-visible,
body.er1319 .lg2-root .lg2-input:focus,
body.er1319 .lg2-root .lg2-input:focus-visible{
  border-color:#8b949e!important;
  box-shadow:none!important;
  outline:none!important;
  outline-offset:0!important;
}
.lg2-pw{position:relative}
.lg2-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:11px;
  display:grid;place-items:center;background:transparent;border:0;color:#6f7c60;cursor:pointer;transition:background .12s ease}
.lg2-eye:hover{background:rgba(58,93,59,.08)}
.lg2-eye svg{width:19px;height:19px}
.lg2-cta{margin-top:8px;width:100%;height:54px;display:flex;align-items:center;justify-content:center;gap:8px;
  border:0;border-radius:14px;cursor:pointer;
  background:linear-gradient(180deg,#5c7a4e 0%,#425a34 60%,#33481f 100%);
  color:#fff;font-family:var(--font-body);font-size:16px;font-weight:800;letter-spacing:.005em;
  box-shadow:0 14px 28px -10px rgba(40,60,30,.5),inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .12s ease,box-shadow .15s ease}
.lg2-cta svg{width:17px;height:17px;stroke:#fff}
@media(hover:hover){.lg2-cta:hover{transform:translateY(-1px);box-shadow:0 18px 34px -10px rgba(40,60,30,.55),inset 0 1px 0 rgba(255,255,255,.26)}}
.lg2-cta:active{transform:translateY(0) scale(.99)}
.lg2-help{margin:20px 0 0;font-size:13px;line-height:1.5;color:#5a6a5d;font-weight:600}
.lg2-help span{display:block;color:#8a9784;font-weight:500;margin-top:2px}
.lg2-signup{margin:14px 0 0;font-size:13px;color:#6f7c60;font-weight:600}
.lg2-signup a{color:#5c7a4e;font-weight:800;cursor:pointer;text-decoration:none;border-bottom:1.5px solid rgba(92,122,78,.35)}
.lg2-foot{margin-top:26px;display:flex;align-items:center;gap:10px;font-size:11.5px;color:#9aa48c;font-weight:600}
.lg2-fdot{width:3px;height:3px;border-radius:50%;background:#c3ccb6}
.login-err{margin-bottom:12px;font-size:13px;color:#a8392f;font-weight:700}
.login-err:empty{display:none}

/* ---------- MOBILE ---------- */
@media(max-width:860px){
  .lg2-root{flex-direction:column}
  .lg2-brand{flex:0 0 auto;min-height:38vh;padding:0}
  .lg2-brand-inner{padding:34px 28px;max-width:none;text-align:left}
  .lg2-mark{width:60px;height:60px;border-radius:16px;margin-bottom:16px}
  .lg2-wordmark h1{font-size:40px}
  .lg2-wordmark p{font-size:14px;margin-top:10px;max-width:400px}
  .lg2-points{display:none}
  .lg2-main{flex:1 1 auto;justify-content:flex-start;padding-top:30px;border-radius:26px 26px 0 0;margin-top:-26px;position:relative;z-index:3;
    box-shadow:0 -12px 30px -18px rgba(0,0,0,.3)}
  .lg2-mobile-mark{display:none}
}
@media(max-width:420px){
  .lg2-brand{min-height:34vh}
  .lg2-wordmark h1{font-size:34px}
  .lg2-head h2{font-size:26px}
  .lg2-brand-inner{padding:28px 24px}
}
/* neutralise any legacy login styles */
.login-panel,.login-main,.login-mobilebrand,.lp-rings,.lp-brand,.lp-hero,.lp-feats,.lc-sub,.login-hint .chip,.login-hint strong{display:none!important}

/* ============================================================
   ROUND 3 — slimmer top cards, slimmer updates, new mobile menu
   ============================================================ */

/* Slimmer stat cards on mobile so roster shows sooner */
@media(max-width:560px){
  .stat-grid{gap:7px!important;margin:0 4px!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .stat-grid.has-4{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .stat{
    padding:7px 9px!important;
    border-radius:12px!important;
    min-height:0!important;
  }
  .stat .stat-v{font-size:17px!important;line-height:1.05!important;font-weight:800!important}
  .stat .stat-l{font-size:9.5px!important;margin-top:2px!important;line-height:1.15!important;font-weight:620!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .stat .stat-s{display:none!important}
  .stat::after{width:34px!important;height:34px!important;right:-12px!important;top:-14px!important}
}
/* admin home has 4 stats — let them go 2x2 with a small label */
@media(max-width:560px){
  .home-dashboard.adm .stat-grid,
  .stat-grid:has(.stat:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Slimmer updates list rows */
.upd-row{padding:9px 4px!important}
.upd-dot{width:26px!important;height:26px!important;border-radius:8px!important}
.upd-dot svg{width:13px!important;height:13px!important}
.upd-title{font-size:13px!important;line-height:1.2!important}
.upd-pin{font-size:8.5px!important;padding:1px 6px!important}
.upd-meta{font-size:10.5px!important;line-height:1.1!important}
.upd-chev{width:20px!important;height:20px!important}
.upd-chev svg{width:13px!important;height:13px!important}
.upd-body{padding:0 8px 10px 41px!important}
.upd-body p{font-size:12.5px!important;line-height:1.45!important}

/* Tighter section headings on mobile */
@media(max-width:560px){
  .section-head{margin-top:14px!important;margin-bottom:6px!important;padding:0 4px!important}
  .section-head h2{font-size:16px!important;letter-spacing:-.015em!important}
  .section-head .count{font-size:11px!important}
}

/* Mobile menu redesigned: bottom-anchored, sleek active indicator */
@media(max-width:1023px){
  /* ACTIVE: vivid lime icon + bright text + soft pill background */
  .mtab.active{
    background:linear-gradient(180deg,rgba(45,212,122,.18) 0%,rgba(45,212,122,.08) 100%)!important;
    border:1px solid rgba(45,212,122,.32)!important;
    box-shadow:
      0 6px 14px rgba(45,212,122,.18),
      inset 0 1px 0 rgba(255,255,255,.06)!important;
    transform:none!important;
  }
  .mtab.active > svg{
    color:#3ee686!important;
    filter:drop-shadow(0 0 8px rgba(62,230,134,.55))!important;
  }
  .mtab.active span{
    color:#e7f7ec!important;
    font-weight:800!important;
  }
  .mtab.active::before,.mtab.active::after{display:none!important}
}

/* Page bottom clearance — only as much as the new flush menu needs */
@media(max-width:1023px){
  main.content > .page,.content > .page{padding-bottom:calc(72px + var(--safe-b,0px))!important}
}

/* ============================================================
   ROUND 4 — premium mobile menu + redesigned clock/timesheets
   ============================================================ */

/* ----- MOBILE MENU: floating glass pill with proper active state ----- */
@media(max-width:1023px){
  /* ACTIVE: vivid green gradient pill that lifts */
  .mtab.active{
    background:linear-gradient(180deg,#2ecf78 0%,#13a04f 60%,#0a7a3a 100%)!important;
    border:1px solid rgba(255,255,255,.28)!important;
    box-shadow:
      0 8px 22px rgba(18,160,82,.45),
      0 0 0 1px rgba(45,212,122,.18),
      inset 0 1px 0 rgba(255,255,255,.36),
      inset 0 -1px 0 rgba(0,52,22,.20)!important;
    transform:translateY(-2px)!important;
  }
  .mtab.active > svg{
    color:#ffffff!important;
    filter:drop-shadow(0 1px 2px rgba(0,40,18,.40))!important;
  }
  .mtab.active span{
    color:#ffffff!important;
    font-weight:800!important;
    text-shadow:0 1px 2px rgba(0,40,18,.30)!important;
  }
  .mtab.active::before,.mtab.active::after{display:none!important}
}
@media(max-width:1023px){
  main.content > .page,.content > .page{padding-bottom:calc(80px + var(--safe-b,0px))!important}
}

/* ============================================================
   EMPLOYEE TIME CLOCK — slimmer hero card
   ============================================================ */
@media(max-width:1023px){
  .clock-hero.idle.clock-hero-v28{
    padding:14px 14px 12px!important;
    border-radius:16px!important;
    background:linear-gradient(135deg,#1d4d33 0%,#0f2f1f 100%)!important;
    border:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 10px 24px -10px rgba(0,40,18,.42)!important;
    color:#fff!important;
  }
  .clock-hero.idle .clock-card-glow{
    background:radial-gradient(60% 80% at 100% 0%, rgba(62,230,134,.20), transparent 60%)!important;
  }
  .clock-hero.idle .clock-ready-row{gap:12px!important;align-items:center!important}
  .clock-hero.idle .clock-face-new{
    width:44px!important;height:44px!important;
    background:rgba(255,255,255,.10)!important;
    border:1px solid rgba(255,255,255,.18)!important;
  }
  .clock-hero.idle .clock-ready-copy span{
    font-size:10px!important;font-weight:800!important;
    letter-spacing:.10em!important;text-transform:uppercase!important;
    color:rgba(220,232,212,.70)!important;
  }
  .clock-hero.idle .clock-ready-copy h2{
    font-family:var(--font-display,'Fraunces',serif)!important;
    font-size:19px!important;line-height:1.1!important;
    color:#fff!important;margin:2px 0 1px!important;font-weight:600!important;
  }
  .clock-hero.idle .clock-ready-copy p{
    font-size:12px!important;color:rgba(220,232,212,.75)!important;font-weight:500!important;
  }
  .clock-hero.idle .clock-metrics{
    margin-top:10px!important;
    display:grid!important;
    grid-template-columns:1fr 1fr auto!important;
    gap:7px!important;
  }
  .clock-hero.idle .clock-metrics > span,
  .clock-hero.idle .clock-metrics > button{
    padding:7px 10px!important;
    border-radius:10px!important;
    background:rgba(255,255,255,.10)!important;
    border:1px solid rgba(255,255,255,.14)!important;
    color:#fff!important;
    font-size:11px!important;font-weight:620!important;
    display:flex!important;align-items:center!important;gap:5px!important;
  }
  .clock-hero.idle .clock-metrics svg{width:13px!important;height:13px!important;color:#9be4b1!important}
  .clock-hero.idle .clock-metrics strong{font-size:13px!important;color:#fff!important;font-weight:800!important}
  .clock-hero.idle .clock-metrics em{font-size:10px!important;color:rgba(220,232,212,.65)!important;font-style:normal!important}
}

/* Hero — slimmer, single piece */
.acs-hero.card{
  padding:13px 16px!important;
  border-radius:16px!important;
  background:linear-gradient(135deg,#1d4d33 0%,#0f2f1f 100%)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  color:#fff!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;
}
.acs-week-nav .rh-nav{
  width:34px!important;height:34px!important;
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.20)!important;
  color:#fff!important;
  border-radius:10px!important;
}
.acs-week-nav .rh-nav svg{width:15px!important;height:15px!important}
.acs-stat.warn strong{color:#a8392f!important}
.acs-stat.warn span{color:#a8392f!important}

/* Employee picker — slim, less green-on-green */
.acs-employee-picker.card{
  padding:0!important;
  border-radius:14px!important;
  background:#fff!important;
  border:1px solid rgba(58,93,59,.18)!important;
  box-shadow:0 4px 12px -6px rgba(20,40,20,.14)!important;
  overflow:hidden!important;
}
.acs-employee-picker .ce-chev{
  width:20px!important;height:20px!important;color:#5a6a5d!important;
  transition:transform .2s ease!important;
}
.acs-employee-picker .ce-chev svg{width:14px!important;height:14px!important;transform:rotate(180deg)!important}
.acs-employee-picker[open] .ce-chev{transform:rotate(-90deg)!important}

/* Selected employee card — slim sage, not solid green */
.acs-sticky-edit.card{
  padding:0!important;
  border-radius:14px!important;
  background:linear-gradient(135deg,#e8f1e3 0%,#dbe9d3 100%)!important;
  border:1px solid rgba(58,120,70,.30)!important;
  box-shadow:0 6px 16px -8px rgba(20,80,40,.20)!important;
  overflow:hidden!important;
  display:flex!important;flex-direction:column!important;
}
.acs-selected-head .avatar{
  width:38px!important;height:38px!important;
  background:linear-gradient(135deg,#1d4d33,#0f2f1f)!important;
  color:#fff!important;
  border:0!important;
  font-size:14px!important;font-weight:800!important;
  box-shadow:0 4px 10px -4px rgba(20,80,40,.4)!important;
}
.acs-emp-nav .btn{
  flex:initial!important;
  height:34px!important;
  background:rgba(255,255,255,.7)!important;
  color:#1d4d33!important;
  border:1px solid rgba(58,120,70,.28)!important;
  font-size:12px!important;font-weight:800!important;
  border-radius:10px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;
}
.acs-emp-nav .btn:hover{background:#fff!important;border-color:rgba(58,120,70,.4)!important}
.acs-emp-nav .btn svg{width:13px!important;height:13px!important}
.acs-emp-nav .btn:last-child svg{transform:rotate(180deg)!important}
.acs-day.today{border-color:rgba(168,82,40,.40)!important;background:linear-gradient(180deg,#fff,#fef1e2)!important}
.acs-day.today > strong{color:#a8521e!important}
.acs-day.sel{
  background:linear-gradient(180deg,#1d4d33,#0f2f1f)!important;
  border-color:transparent!important;
  box-shadow:0 6px 14px -4px rgba(20,80,40,.45)!important;
}
.acs-day.sel > span{color:rgba(220,232,212,.75)!important}
.acs-day.sel > strong{color:#fff!important}
.acs-day.sel > em{color:#9be4b1!important}

/* Day card — slimmer */
.acs-day-card.card{
  padding:12px 14px!important;
  border-radius:14px!important;
  background:#fff!important;
  border:1px solid rgba(58,93,59,.18)!important;
  box-shadow:0 4px 12px -6px rgba(20,40,20,.10)!important;
}
.acs-day-head .pill{
  font-size:9.5px!important;font-weight:800!important;letter-spacing:.05em!important;
  text-transform:uppercase!important;padding:3px 9px!important;border-radius:20px!important;
}

/* Empty state on day card */
.acs-day-card .empty{
  text-align:center!important;padding:18px 0 6px!important;color:#5a6a5d!important;
}
.acs-day-card .empty svg{width:32px!important;height:32px!important;opacity:.4!important;color:#1d4d33!important}
.acs-day-card .empty p{font-size:12.5px!important;margin-top:6px!important;font-weight:600!important}

/* Xero exports — slim */
.clock-exports.card{
  padding:0!important;
  border-radius:14px!important;
  background:#fff!important;
  border:1px solid rgba(58,93,59,.18)!important;
}
.clock-exports > summary{
  list-style:none!important;
  padding:11px 14px!important;
  display:flex!important;align-items:center!important;gap:10px!important;
  cursor:pointer!important;
}
.clock-exports > summary::-webkit-details-marker{display:none!important}
.clock-exports > summary strong{font-size:13.5px!important;color:#142016!important;font-weight:800!important}
.clock-exports > summary > span{font-size:11px!important;color:#5a6a5d!important;font-weight:600!important;margin-left:auto!important}
.clock-exports .ce-chev{width:20px!important;height:20px!important;color:#5a6a5d!important}
.clock-exports .ce-chev svg{width:14px!important;height:14px!important;transform:rotate(180deg)!important}
.clock-exports[open] .ce-chev{transform:rotate(-90deg)!important}

/* On desktop: keep things proportional but slightly more generous */
@media(min-width:1024px){
}

/* ============================================================
   EMPLOYEE TIMESHEETS SUB-TAB — cohesive professional layout
   ============================================================ */
.emp-ts-zone{display:flex;flex-direction:column;gap:10px;margin-top:10px}

/* Hero band — matches admin clock hero */
.ets-hero{
  padding:2px 2px 0;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:none;border:0;color:var(--ink);
}
.ets-hero h2{
  font-family:"Inter Tight",-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:12px;font-weight:800;letter-spacing:.10em;text-transform:uppercase;
  color:var(--clay-600,#a35a35);margin:0 0 4px;line-height:1;
}
.ets-hero p{
  margin:0;padding:0;background:none;border:0;box-shadow:none;
  font-size:17px;color:var(--ink,#142016);font-weight:800;letter-spacing:-.015em;
}
.ets-week-line{opacity:1}
.ets-week-nav{display:flex;gap:6px;flex-shrink:0}
.ets-week-nav .rh-nav{
  width:34px;height:34px;
  background:var(--cream-50,#fbf8f1);
  border:1px solid rgba(163,90,53,.22);
  color:var(--clay-700,#8a4a2c);
  border-radius:10px;
}
.ets-week-nav .rh-nav svg{width:15px;height:15px}

/* Design 2 — clay & airy pay tile */
.ets-paytile{
  margin-top:12px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:
    radial-gradient(130% 200% at 90% 30%, rgba(199,138,74,.50) 0%, transparent 60%),
    linear-gradient(135deg,#2f5238 0%,#16301f 100%);
  border:1px solid rgba(199,154,78,.30);
  border-radius:14px;
  padding:10px 14px;
  box-shadow:0 6px 16px -10px rgba(20,45,28,.5);
}
.ets-paytile-l{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;}
.ets-paytile-l em{
  font-style:normal;font-size:9px;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;color:#e8c79a;width:100%;line-height:1;
}
.ets-paytile-l strong{
  font-family:"Inter Tight",-apple-system,sans-serif;
  font-size:28px;font-weight:900;color:#fff;
  letter-spacing:-.025em;line-height:1;
  text-shadow:0 1px 4px rgba(8,20,12,.35);
}
.ets-paytile-l span{font-size:11px;color:rgba(232,240,224,.7);font-weight:700;}
.ets-paytile-ring{
  position:relative;flex-shrink:0;width:44px;height:44px;border-radius:50%;
  background:conic-gradient(#e0a857 0 42%, rgba(255,255,255,.16) 42% 100%);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px rgba(8,20,12,.3);
}
.ets-paytile-ring::before{
  content:"";position:absolute;inset:5px;border-radius:50%;
  background:#16301f;
}
.ets-paytile-ring span{
  position:relative;z-index:1;
  font-size:10.5px;font-weight:900;color:#fff;letter-spacing:-.01em;
}
.ets-paytile-ring span{
  position:relative;z-index:1;
  font-size:12px;font-weight:900;color:#fff;letter-spacing:-.01em;
}
.ets-stat.hero{display:none;}
.ets-stat-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px;
}
.ets-mini{
  background:var(--sage-50,#eef3e7);
  border:1px solid rgba(58,93,59,.14);
  border-radius:13px;
  padding:10px 11px;
  display:flex;flex-direction:column;gap:2px;
  box-shadow:none;
}
.ets-mini em{
  font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:#5a6a5d;
}
.ets-mini strong{
  font-family:"Inter Tight",-apple-system,sans-serif;
  font-size:18px;font-weight:800;color:#142016;line-height:1;
}
.ets-mini.warn{background:#fbe7e2;border-color:rgba(163,90,53,.28);}
.ets-mini.warn em,.ets-mini.warn strong{color:var(--clay-600,#a35a35);}

/* download weekly summary button */
.ets-download{
  width:100%;margin-top:10px;
  display:flex;align-items:center;justify-content:center;gap:8px;
  background:#fff;border:1.5px solid rgba(163,90,53,.30);
  color:var(--clay-700,#8a4a2c);
  font-size:13.5px;font-weight:800;letter-spacing:-.005em;
  padding:12px;border-radius:13px;cursor:pointer;
  box-shadow:0 2px 8px rgba(163,90,53,.12);
  transition:transform .12s ease, background .15s ease;
}
.ets-download svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;}
.ets-download:active{transform:scale(.98);background:var(--cream-50,#fbf8f1);}

.ets-day-row{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:5px;
  margin:14px 0 2px;
}
.ets-day{
  background:#fff;
  border:1px solid rgba(58,93,59,.14);
  border-radius:12px;
  padding:9px 2px 8px;
  display:flex;flex-direction:column;align-items:center;gap:3px;
  transition:all .15s ease;
  cursor:pointer;
  box-shadow:0 1px 2px rgba(20,40,20,.04);
}
.ets-day:hover{border-color:rgba(58,120,70,.4)}
.ets-day > span{
  font-size:9px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:#8a968b;
}
.ets-day > strong{font-size:15px;font-weight:800;color:#142016;line-height:1}
.ets-day > em{font-size:9.5px;color:#3a5a3d;font-weight:700;font-style:normal}
.ets-day.today{border-color:rgba(168,82,40,.40);background:linear-gradient(180deg,#fff,#fef1e2)}
.ets-day.today > strong{color:#a8521e}
.ets-day.sel{
  background:linear-gradient(180deg,#1d4d33,#0f2f1f);
  border-color:transparent;
  box-shadow:0 6px 14px -4px rgba(20,80,40,.45);
}
.ets-day.sel > span{color:rgba(220,232,212,.75)}
.ets-day.sel > strong{color:#fff}
.ets-day.sel > em{color:#9be4b1}

/* Day card */
.ets-day-card{
  padding:12px 14px;
  border-radius:14px;
  background:#fff;
  border:1px solid rgba(58,93,59,.18);
  box-shadow:0 4px 12px -6px rgba(20,40,20,.10);
}
.ets-day-head{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;margin-bottom:10px;
}
.ets-day-head strong{
  font-size:14px;color:#142016;font-weight:800;
  display:block;
}
.ets-day-head span{font-size:11.5px;color:#5a6a5d;font-weight:600}
.ets-day-head .btn{
  flex-shrink:0;height:32px;padding:0 12px;font-size:12px;
  display:inline-flex;align-items:center;gap:4px;
}
.ets-day-head .btn svg{width:13px;height:13px}

/* Empty state */
.ets-empty{
  text-align:center;padding:18px 6px 6px;
}
.ets-empty svg{width:34px;height:34px;color:#1d4d33;opacity:.4}
.ets-empty p{font-size:13px;color:#2a3a2c;font-weight:700;margin:8px 0 2px}
.ets-empty span{font-size:11.5px;color:#5a6a5d;font-weight:500;display:block}
.ts-day-row{display:none!important}
.timesheet-zone > .section-head{display:none!important}
.ts-day-card{display:none!important}

/* On desktop give it some breathing room */
@media(min-width:1024px){
  .ets-hero h2{font-size:22px}
  .ets-stat.hero strong{font-size:32px}
  .ets-mini strong{font-size:18px}
  .ets-day > strong{font-size:16px}
}

/* ============================================================
   ADMIN TIMESHEETS — matches employee pattern, cohesive flow
   ============================================================ */
.adts-zone{display:flex;flex-direction:column;gap:10px;margin-top:10px}

/* Hero band */
.adts-hero{
  padding:12px 16px;
  border-radius:16px;
  background:linear-gradient(135deg,#1d4d33 0%,#0f2f1f 100%);
  border:1px solid rgba(255,255,255,.10);
  color:#fff;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.adts-hero h2{
  font-family:var(--font-display,'Fraunces',serif);
  font-size:18px;font-weight:600;letter-spacing:-.015em;
  color:#fff;margin:0;line-height:1.1;
}
.adts-hero p{font-size:11.5px;color:rgba(220,232,212,.78);margin:2px 0 0;font-weight:500}

/* Section eyebrow labels — make each heading unique & clearly differentiated */
.adts-eyebrow{
  display:block;font-style:normal;
  font-size:9.5px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;
  margin-bottom:3px;line-height:1;
}
.adts-pic-copy .adts-eyebrow{color:#3a7346;}
.adts-emp-copy .adts-eyebrow{color:var(--clay-600,#a35a35);}
.adts-day-head .adts-eyebrow{color:#8a968b;}
.adts-week-nav{display:flex;gap:6px;flex-shrink:0}
.adts-week-nav .rh-nav{
  width:34px;height:34px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.20);
  color:#fff;border-radius:10px;
}
.adts-week-nav .rh-nav svg{width:15px;height:15px}

/* Stats: hero payroll tile + 4 mini */
.adts-stats{
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:8px;
}
.adts-stat.hero{
  background:linear-gradient(135deg,#23663e 0%,#143d23 100%);
  border:1px solid rgba(255,255,255,.10);
  color:#fff;
  border-radius:14px;
  padding:13px 14px 12px;
  display:flex;flex-direction:column;justify-content:space-between;gap:4px;
  box-shadow:0 6px 16px -8px rgba(20,80,40,.45);
  position:relative;overflow:hidden;
}
.adts-stat.hero::after{
  content:"";position:absolute;right:-30px;top:-30px;
  width:100px;height:100px;border-radius:50%;
  background:radial-gradient(circle,rgba(62,230,134,.22),transparent 70%);
  pointer-events:none;
}
.adts-stat.hero.has-pending::after{background:radial-gradient(circle,rgba(232,148,80,.22),transparent 70%)}
.adts-stat.hero em{font-style:normal;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgba(220,232,212,.78)}
.adts-stat.hero strong{font-family:var(--font-display,'Fraunces',serif);font-size:26px;font-weight:700;color:#fff;line-height:1;letter-spacing:-.02em}
.adts-stat.hero span{font-size:10.5px;color:rgba(220,232,212,.65);font-weight:600}

.adts-stat-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4px;
}
.adts-mini{
  background:#fff;
  border:1px solid rgba(58,93,59,.16);
  border-radius:11px;
  padding:8px 10px;
  display:flex;flex-direction:column;gap:1px;
  box-shadow:0 1px 3px rgba(20,40,20,.05);
}
.adts-mini em{font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5a6a5d}
.adts-mini strong{font-family:var(--font-display,'Fraunces',serif);font-size:16px;font-weight:700;color:#142016;line-height:1.05}
.adts-mini.warn em,.adts-mini.warn strong{color:#a8392f}

/* Employee picker — clean white with sage chip */
.adts-picker{
  background:#fff;
  border:1px solid rgba(58,93,59,.18);
  border-radius:14px;
  box-shadow:0 2px 8px -4px rgba(20,40,20,.08);
  overflow:hidden;
}
.adts-picker > summary{
  list-style:none;
  padding:11px 14px;
  display:flex;align-items:center;gap:11px;
  cursor:pointer;
}
.adts-picker > summary::-webkit-details-marker{display:none}
.adts-pic-ic{
  width:30px;height:30px;flex-shrink:0;
  border-radius:9px;display:grid;place-items:center;
  background:linear-gradient(135deg,#1d4d33,#0f2f1f);
  color:#fff;
}
.adts-pic-ic svg{width:15px;height:15px;stroke-width:2}
.adts-pic-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.adts-pic-copy strong{font-size:15px;color:#142016;font-weight:800;letter-spacing:-.01em}
.adts-pic-copy span{font-size:11px;color:#5a6a5d;font-weight:600}
.adts-picker .ce-chev{width:22px;height:22px;color:#5a6a5d;transition:transform .2s ease;flex-shrink:0}
.adts-picker .ce-chev svg{width:14px;height:14px;transform:rotate(180deg)}
.adts-picker[open] .ce-chev{transform:rotate(-90deg)}
.adts-emp-list{display:flex;flex-direction:column;gap:0;padding:0 6px 6px}
.adts-emp-btn{
  display:flex;align-items:center;gap:11px;
  width:100%;padding:9px 10px;background:transparent;border:0;
  border-top:1px solid rgba(58,93,59,.10);text-align:left;cursor:pointer;
  transition:background .12s ease;
}
.adts-emp-btn:hover{background:rgba(58,93,59,.05)}
.adts-emp-btn.active{background:linear-gradient(135deg,rgba(58,120,70,.10),rgba(58,120,70,.04))}
.adts-emp-btn .avatar{flex-shrink:0;width:30px;height:30px;font-size:11px}
.adts-emp-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.adts-emp-meta strong{font-size:13px;color:#142016;font-weight:700}
.adts-emp-meta em{font-size:10.5px;font-style:normal;color:#5a6a5d;font-weight:600}
.adts-emp-btn b{flex-shrink:0;font-size:11.5px;font-weight:800;color:#1d4d33;font-family:var(--font-display,'Fraunces',serif)}
.adts-emp-btn b.warn{color:#a8392f}

/* Selected employee card — name + nav + pay summary in one panel */
.adts-emp-card{
  background:linear-gradient(135deg,#e8f1e3 0%,#dbe9d3 100%);
  border:1px solid rgba(58,120,70,.30);
  border-radius:14px;
  box-shadow:0 6px 16px -8px rgba(20,80,40,.20);
  overflow:hidden;
}
.adts-emp-head{
  display:flex;align-items:center;gap:11px;
  padding:11px 12px;
  border-bottom:1px solid rgba(58,120,70,.18);
}
.adts-emp-av{
  width:38px;height:38px;flex-shrink:0;
  background:linear-gradient(135deg,#1d4d33,#0f2f1f)!important;
  color:#fff!important;border:0!important;
  font-size:13px;font-weight:800;
  box-shadow:0 4px 10px -4px rgba(20,80,40,.4);
}
.adts-emp-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.adts-emp-copy strong{font-family:var(--font-display,'Fraunces',serif);font-size:19px;color:#142016;font-weight:600;letter-spacing:-.01em;line-height:1.05}
.adts-emp-copy span{font-size:11px;color:#3a5a3d;font-weight:600}
.adts-emp-nav{display:flex;gap:5px;flex-shrink:0}
.adts-nav-btn{
  width:30px;height:30px;border-radius:9px;
  background:rgba(255,255,255,.75);
  border:1px solid rgba(58,120,70,.30);
  color:#1d4d33;display:grid;place-items:center;
}
.adts-nav-btn:hover{background:#fff}
.adts-nav-btn svg{width:13px;height:13px}

.adts-emp-pay{
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:6px;
  padding:10px;
}
.adts-emp-pay-hero{
  background:linear-gradient(135deg,#1d4d33,#0f2f1f);
  color:#fff;
  border-radius:11px;
  padding:9px 12px;
  display:flex;flex-direction:column;gap:2px;
}
.adts-emp-pay-hero em{font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgba(220,232,212,.78)}
.adts-emp-pay-hero strong{font-family:var(--font-display,'Fraunces',serif);font-size:20px;font-weight:700;color:#fff;line-height:1}

.adts-emp-pay-mini{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.adts-emp-pay-mini > div{
  background:#fff;
  border:1px solid rgba(58,120,70,.18);
  border-radius:9px;
  padding:6px 8px;
  display:flex;flex-direction:column;gap:1px;
}
.adts-emp-pay-mini em{font-style:normal;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5a6a5d}
.adts-emp-pay-mini strong{font-size:13px;color:#142016;font-weight:800;line-height:1.05}

/* Day chips */
.adts-day-row{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:4px;margin:2px 0;
}
.adts-day{
  background:#fff;
  border:1px solid rgba(58,93,59,.16);
  border-radius:10px;
  padding:7px 2px 6px;
  display:flex;flex-direction:column;align-items:center;gap:1px;
  transition:all .15s ease;cursor:pointer;
  box-shadow:0 1px 2px rgba(20,40,20,.04);
}
.adts-day:hover{border-color:rgba(58,120,70,.4)}
.adts-day > span{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#5a6a5d}
.adts-day > strong{font-size:14px;font-weight:800;color:#142016;line-height:1}
.adts-day > em{font-size:9.5px;color:#3a5a3d;font-weight:700;font-style:normal}
.adts-day.today{border-color:rgba(168,82,40,.40);background:linear-gradient(180deg,#fff,#fef1e2)}
.adts-day.today > strong{color:#a8521e}
.adts-day.sel{
  background:linear-gradient(180deg,#1d4d33,#0f2f1f);
  border-color:transparent;
  box-shadow:0 6px 14px -4px rgba(20,80,40,.45);
}
.adts-day.sel > span{color:rgba(220,232,212,.75)}
.adts-day.sel > strong{color:#fff}
.adts-day.sel > em{color:#9be4b1}

/* Day card */
.adts-day-card{
  padding:12px 14px;
  border-radius:14px;
  background:#fff;
  border:1px solid rgba(58,93,59,.18);
  box-shadow:0 4px 12px -6px rgba(20,40,20,.10);
}
.adts-day-head{
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;margin-bottom:10px;
}
.adts-day-head strong{font-size:15px;color:#142016;font-weight:800;display:block;letter-spacing:-.01em}
.adts-day-head span{font-size:11.5px;color:#5a6a5d;font-weight:600}
.adts-day-head .pill{
  font-size:9.5px;font-weight:800;letter-spacing:.05em;
  text-transform:uppercase;padding:3px 9px;border-radius:20px;
}

.adts-empty{
  text-align:center;padding:18px 6px 6px;
}
.adts-empty svg{width:34px;height:34px;color:#1d4d33;opacity:.4}
.adts-empty p{font-size:13px;color:#2a3a2c;font-weight:700;margin:8px 0 2px}
.adts-empty span{font-size:11.5px;color:#5a6a5d;font-weight:500;display:block}

/* Desktop */
@media(min-width:1024px){
  .adts-hero h2{font-size:22px}
  .adts-stat.hero strong{font-size:32px}
  .adts-mini strong{font-size:18px}
  .adts-emp-pay-hero strong{font-size:24px}
  .adts-day > strong{font-size:16px}
}

/* ============================================================
   CHAT THREAD — single header + sticky composer (mobile)
   When a conversation is open on mobile we collapse the global
   topbar and promote the thread head to be the one true header,
   safely below the status bar. The message list scrolls freely
   while the header stays pinned up top and composer pinned down.
   ============================================================ */
@media(max-width:1023px){
  /* Hide the duplicate global "Messages / Team messages…" topbar
     only while a single conversation is open. */
  body.chat-thread-open .topbar{display:none!important}
  body.chat-thread-open .main{padding-top:0!important}
  body.chat-thread-open .content{padding:0!important;overflow:hidden!important}
  body.chat-thread-open .page{height:100dvh!important}

  /* The conversation becomes a fixed full-screen panel so the
     header pins to the very top and the composer to the very
     bottom, independent of any page scrolling. The panel fills
     the entire screen and covers the bottom nav. */
  body.chat-thread-open .chat-shell{
    position:fixed!important;
    top:0!important;left:0!important;right:0!important;
    bottom:0!important;
    height:100dvh!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    gap:0!important;
    z-index:120!important;
  }
  body.chat-thread-open .chat-list{display:none!important}
  body.chat-thread-open .chat-thread{
    display:flex!important;
    flex-direction:column!important;
    height:100dvh!important;
    border-radius:0!important;
    box-shadow:none!important;
  }

  /* Fixed header below the status bar. */
  body.chat-thread-open .chat-thread-head{
    flex:0 0 auto!important;
    padding-top:calc(12px + var(--safe-t))!important;
    padding-bottom:12px!important;
    min-height:calc(54px + var(--safe-t))!important;
    align-items:center!important;
    border-radius:0!important;
  }
  body.chat-thread-open .cth-back{display:grid!important}

  /* The ONLY scrolling area. */
  body.chat-thread-open .chat-scroll{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }

  /* Composer pinned to the very bottom, over where the nav was. */
  body.chat-thread-open .chat-composer{
    flex:0 0 auto!important;
    padding:12px 12px calc(12px + var(--safe-b))!important;
    gap:10px!important;
    background:var(--cream-50)!important;
    border-top:1px solid var(--line)!important;
    border-radius:0!important;
  }
  body.chat-thread-open .chat-composer .input{
    border-radius:20px!important;
    font-size:16px!important;  /* 16px stops iOS zoom-on-focus */
  }
  body.chat-thread-open .chat-composer .csend{
    width:44px!important;
    height:44px!important;
    border-radius:16px!important;
    flex-shrink:0!important;
  }
  body.chat-thread-open .chat-readonly{
    flex:0 0 auto!important;
    padding-bottom:calc(16px + var(--safe-b))!important;
  }
  /* Hide the bottom nav entirely while a conversation is open so
     the composer covers it. Back arrow returns to the list. */
  body.chat-thread-open .mobile-nav{display:none!important}
  body.chat-thread-open .content,
  body.chat-thread-open .page{padding-bottom:0!important}
  body.chat-thread-open::after,
  body.chat-thread-open .content::after{display:none!important}
}

/* Client delete button + archived employee cards */
.client-card-list{position:relative}
.client-del-btn{
  flex-shrink:0;width:38px;height:38px;border-radius:12px;
  display:grid;place-items:center;
  background:#fff;border:1px solid rgba(168,57,47,.28);color:#a8392f;
  transition:background .15s,border-color .15s;
}
.client-del-btn:hover{background:#fdf0ee;border-color:rgba(168,57,47,.5)}
.client-del-btn svg{width:18px;height:18px}
.archived-card{opacity:.82}
.archived-card .dir-main em{color:var(--ink-500)}
@media(max-width:1023px){
  .client-del-btn{width:34px;height:34px;border-radius:11px}
  .client-del-btn svg{width:16px;height:16px}
}

/* ============================================================
   FLOATING NAV — bottom offset fix (installed PWA)
   In an installed app the home-indicator safe-area inset is large
   (~34px). Stacking a fixed 8px margin on top of the full inset
   left the pill floating too high with a big gap underneath. We
   instead sit the pill a small fixed distance above the safe area,
   so it hugs the bottom on browsers (where inset is 0) AND in the
   installed app (where the inset already provides clearance).
   ============================================================ */
@media(max-width:1023px){
}
@media(max-width:380px){
}

/* ============================================================
   ROSTER CARD — v3 BOLD: saturated, colour-filled, standout
   The whole card is washed in the client's colour (not just a
   rail), with a solid colour time panel. High contrast + vivid.
   Still slim enough that 4-5 fit on a phone screen.
   ============================================================ */
.rcard{
  position:relative;
  display:flex;
  align-items:stretch;
  gap:0;
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--solid) 22%,#fff) 0%,
      color-mix(in srgb,var(--solid) 11%,#fff) 55%,
      color-mix(in srgb,var(--solid) 16%,#fff) 100%);
  border:1px solid color-mix(in srgb,var(--solid) 38%,transparent);
  border-radius:15px;
  margin-bottom:7px;
  overflow:hidden;
  box-shadow:0 4px 12px color-mix(in srgb,var(--solid) 22%,transparent), 0 1px 2px rgba(20,31,23,.06);
  transition:transform .14s ease, box-shadow .14s ease;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.rcard:active{transform:scale(.992)}
@media(hover:hover){.rcard:hover{box-shadow:0 8px 20px color-mix(in srgb,var(--solid) 32%,transparent);transform:translateY(-1px)}}

.rcard.is-draft{
  background:
    repeating-linear-gradient(135deg,
      color-mix(in srgb,var(--solid) 15%,#fff) 0px,
      color-mix(in srgb,var(--solid) 15%,#fff) 9px,
      color-mix(in srgb,var(--solid) 7%,#fff) 9px,
      color-mix(in srgb,var(--solid) 7%,#fff) 18px);
  border-style:dashed;
}

/* solid colour time panel — the big pop */
.rc-time{
  flex:0 0 60px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  padding:7px 4px;
  background:linear-gradient(165deg,var(--solid),var(--deep));
  color:#fff;
}
.rc-time strong{
  font-family:var(--font-display,Georgia,serif);
  font-size:17px;font-weight:800;line-height:1;color:#fff;
  display:flex;align-items:baseline;gap:1px;letter-spacing:-.02em;
  text-shadow:0 1px 2px rgba(0,0,0,.18);
}
.rc-time strong i{font-size:9px;font-style:normal;font-weight:800;opacity:.85}
.rc-dur{
  font-size:9.5px;font-weight:800;letter-spacing:.01em;
  color:var(--deep);background:rgba(255,255,255,.92);
  padding:2px 7px;border-radius:999px;line-height:1;white-space:nowrap;
}
.rc-dot.on{background:var(--solid);box-shadow:0 0 0 3px color-mix(in srgb,var(--solid) 28%,transparent)}
.rc-dot.off{background:#c9821a;box-shadow:0 0 0 3px rgba(201,130,26,.22)}

.rc-meta{display:flex;align-items:center;gap:5px;font-size:11px;color:color-mix(in srgb,var(--deep) 72%,#5d6b60);min-width:0;font-weight:600}
.rc-addr{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.rc-av{
  width:20px;height:20px;border-radius:50%;margin-left:-6px;
  display:grid;place-items:center;
  font-size:8.5px;font-weight:800;color:#fff;
  background:linear-gradient(150deg,var(--solid),var(--deep));
  border:2px solid color-mix(in srgb,var(--solid) 16%,#fff);
}
.rc-av:first-child{margin-left:0}
.rc-av-more,.rc-av-empty{background:var(--deep);color:#fff;opacity:.55}
.rc-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}

/* action buttons — slim, on the colour wash */
.rc-act{
  height:29px;border-radius:9px;border:none;cursor:pointer;
  font-size:11px;font-weight:800;letter-spacing:-.01em;
  display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 12px;
  transition:filter .14s ease, background .14s ease, transform .1s ease;
}
.rc-act:active{transform:scale(.95)}
.rc-act svg{width:13px;height:13px}
.rc-pub.is-pub{background:linear-gradient(180deg,var(--solid),var(--deep));color:#fff;box-shadow:0 2px 6px color-mix(in srgb,var(--solid) 40%,transparent)}
.rc-pub.is-pub:hover{filter:brightness(1.08)}
.rc-accept{background:linear-gradient(180deg,var(--solid),var(--deep));color:#fff;box-shadow:0 2px 6px color-mix(in srgb,var(--solid) 40%,transparent)}
.rc-accept:hover{filter:brightness(1.08)}
.rc-reject{width:29px;padding:0;background:rgba(255,255,255,.85);color:#b03a2c}
.rc-start{background:linear-gradient(180deg,var(--solid),var(--deep));color:#fff;box-shadow:0 2px 6px color-mix(in srgb,var(--solid) 40%,transparent)}
.rc-emp-state{
  height:29px;padding:0 12px;border-radius:9px;display:inline-flex;align-items:center;gap:4px;
  font-size:11px;font-weight:800;
}
.rc-emp-state svg{width:13px;height:13px}
.rc-done{background:linear-gradient(180deg,var(--solid),var(--deep));color:#fff}
.rc-declined{background:#fdeeec;color:#b03a2c}
.rc-locked{background:rgba(255,255,255,.8);color:var(--deep)}

/* tighten for small phones so 4+ cards always fit */
@media(max-width:430px){
  .rcard{border-radius:15px;margin-bottom:8px}
  .rc-time{flex-basis:60px;padding:8px 4px}
  .rc-time strong{font-size:16px}
  .rc-dur{font-size:9px;padding:2px 6px}
  .rc-meta{font-size:10.5px}
  .rc-av{width:21px;height:21px;font-size:8.5px}
  .rc-act,.rc-emp-state{height:27px;font-size:10.5px;padding:0 10px}
  .rc-act-edit,.rc-reject{width:27px}
}
@media(max-width:360px){
  .rc-time{flex-basis:56px}
}

/* ----- skinny + consistent roster cards across all users (mobile) ----- */
@media(max-width:1023px){
  .rcard{margin-bottom:6px;border-radius:13px;align-items:stretch}
  .rc-time{flex:0 0 52px;padding:5px 4px;gap:2px}
  .rc-time strong{font-size:14px}
  .rc-time strong i{font-size:8px}
  .rc-dur{font-size:8.5px;padding:1px 6px}
  .rc-status{font-size:9px;padding:2px 7px}
  .rc-meta{font-size:10px;margin-top:0;gap:4px}
  .rc-av{width:18px;height:18px;font-size:8px;margin-left:-5px}
  .rc-emp-actions .rc-act,.rc-emp-actions .rc-emp-state{height:28px;font-size:11px}
}


/* ============================================================
   CONVERSATION LIST — clean, professional, smooth (cv- classes)
   Replaces the old cl-/ct- styling. Crisp cards, clear hierarchy,
   buttery scrolling, distinct types (team / announcement / DM).
   ============================================================ */
.cv-list{
  display:flex;flex-direction:column;min-height:0;width:100%;
  background:transparent!important;border:none!important;box-shadow:none!important;border-radius:0!important;
}
.cv-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:4px 4px 12px;background:transparent!important;border:none!important;
}
.cv-head-label{
  font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-400,#8a958180);color:#7c8a72;
}
.cv-new{
  width:38px;height:38px;border-radius:13px;flex-shrink:0;
  display:grid;place-items:center;cursor:pointer;
  background:linear-gradient(145deg,var(--forest-500,#3f6b3e),var(--forest-700,#1d3d24))!important;
  color:#fff!important;border:none!important;
  box-shadow:0 4px 12px rgba(31,61,36,.28);
  transition:transform .12s ease, filter .12s ease;
}
.cv-new:hover{filter:brightness(1.08)}
.cv-new:active{transform:scale(.93)}
.cv-new svg{width:19px;height:19px;stroke-width:2.4}

.cv-threads{
  flex:1;min-height:0;overflow-y:auto;
  display:flex;flex-direction:column;gap:7px;
  padding:2px 2px 16px;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
}

/* ============================================================
   MESSAGE LIST — clean, professional, responsive (redesigned v117)
   One cohesive list. Company chats (Team / Photos / Notice) get a
   subtle grouped treatment with a small soft type tag — no heavy
   colour blocks. Clear name / preview / time hierarchy. Unread is
   shown with weight + a small dot, not loud backgrounds.
   ============================================================ */
.cv-threads{
  flex:1;min-height:0;overflow-y:auto;
  display:flex;flex-direction:column;gap:0;
  padding:4px 0 20px;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
}

/* base row */
.cv-row{
  position:relative;display:flex;align-items:center;gap:13px;text-align:left;cursor:pointer;width:100%;
  padding:12px 10px;border:0;border-radius:14px;
  background:transparent;box-shadow:none;
  transition:background .14s ease;
  -webkit-tap-highlight-color:transparent;
  -webkit-user-select:none;user-select:none;-webkit-touch-callout:none;
}
.cv-row + .cv-row{margin-top:1px}
.cv-row:active{background:rgba(20,31,23,.05)}
@media(hover:hover){.cv-row:hover{background:rgba(20,31,23,.04)}}
.cv-row.active{background:rgba(63,107,62,.10)}

/* avatar */
.cv-av{flex-shrink:0;position:relative}
.cv-av .avatar{
  width:48px!important;height:48px!important;border-radius:50%!important;
  display:grid;place-items:center;font-size:15.5px;font-weight:800;
  box-shadow:0 1px 2px rgba(20,31,23,.10);
}
.cv-av .avatar svg{width:21px;height:21px}
.cv-type-team .cv-av .avatar{background:linear-gradient(150deg,#4257b8,#2b3683)!important;color:#fff!important}
.cv-type-announcement .cv-av .avatar{background:linear-gradient(150deg,#d98a44,#b1601f)!important;color:#fff!important}
.cv-type-workphotos .cv-av .avatar{background:linear-gradient(150deg,#17b39a,#0c7a64)!important;color:#fff!important;border-radius:50%!important;border:0!important}
.cv-type-group .cv-av .avatar{background:linear-gradient(150deg,#5a8f7e,#36634f)!important;color:#fff!important}

/* body */
.cv-body{flex:1;min-width:0;display:flex!important;flex-direction:column;gap:2px}
.cv-top{display:flex!important;align-items:center;gap:8px;width:100%}
.cv-name{
  flex:1;min-width:0;font-size:16px;font-weight:650;letter-spacing:-.01em;color:#1a241c;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.cv-time{flex-shrink:0;font-size:12px;font-weight:600;color:#9aa090}
.cv-sub{display:none!important}
.cv-last{
  display:block!important;
  font-size:13.5px;color:#5d6b60;line-height:1.35;font-weight:500;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.cv-empty{font-style:normal;color:#aab1a2}
.cv-chev{display:none!important}

/* ===== Company chats: subtle grouped section, soft type tag ===== */
.cv-pinned{
  background:rgba(248,250,245,.7);
  border-radius:14px;
}
.cv-pinned.active{background:rgba(63,107,62,.10)}
/* a slim, calm accent dot on the avatar instead of a thick rail */
.cv-pinned::before{display:none!important}

/* small, soft type tag next to the name (not a loud pill) */
.cv-pintag{
  position:static;transform:none;flex-shrink:0;
  display:inline-flex;align-items:center;gap:4px;
  padding:2px 8px;border-radius:7px;
  font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  line-height:1.6;
}
.cv-pintag svg{display:none!important}
.cv-type-team .cv-pintag{background:rgba(66,87,184,.12);color:#3a4bb0}
.cv-type-team .cv-pintag::after{content:"Team"}
.cv-type-workphotos .cv-pintag{background:rgba(23,179,154,.16);color:#0b7560}
.cv-type-workphotos .cv-pintag::after{content:"Photos"}
.cv-type-announcement .cv-pintag{background:rgba(217,138,68,.18);color:#a85b22}
.cv-type-announcement .cv-pintag::after{content:"Notice"}
/* tag sits inline in the top row, before the time; keep everything aligned */
.cv-pinned .cv-time{display:none!important}
.cv-pinned .cv-top{padding-right:0}
.cv-pinned .cv-last{padding-right:0}

/* ===== Unread vs read ===== */
.cv-read .cv-name{font-weight:650;color:#2a342c}
.cv-read .cv-last{color:#8a948a;font-weight:500}
.cv-unread .cv-name{font-weight:800;color:#0f1f17}
.cv-unread .cv-last{color:#33402f;font-weight:650}
.cv-unread .cv-time{color:#2f6b3e;font-weight:800}
.cv-unread-dot{
  position:absolute;top:0;right:0;
  width:13px;height:13px;border-radius:50%;
  background:#2f8f4e;border:2.5px solid #eef3ea;
}
.cv-pinned .cv-unread-dot{border-color:#f6f8f2}

/* read / unread toggle — clean circular control */
.cv-readtoggle{
  flex-shrink:0;min-width:38px;width:38px;height:38px;border-radius:50%;
  display:grid;place-items:center;cursor:pointer;
  color:#fff;background:#cfd6c8;
  box-shadow:0 1px 2px rgba(20,31,23,.14);
  transition:background .14s ease,color .14s ease,transform .1s ease;
  -webkit-tap-highlight-color:transparent;z-index:2;
}
.cv-readtoggle svg{width:17px;height:17px;stroke-width:2.8}
.cv-readtoggle:active{transform:scale(.86)}
@media(hover:hover){.cv-readtoggle:hover{filter:brightness(.96)}}
.cv-unread .cv-readtoggle{background:#2f8f4e;color:#fff}
.cv-read .cv-readtoggle{background:#fff;color:#9aa79a;border:1.5px solid #d4dccd}

/* responsive: comfortable on phone, roomier on desktop */
@media(max-width:430px){
  .cv-row{padding:11px 8px;gap:12px}
  .cv-av .avatar{width:46px!important;height:46px!important}
  .cv-name{font-size:15.5px}
  .cv-last{font-size:13px}
  .cv-readtoggle{min-width:36px;width:36px;height:36px}
}
@media(min-width:1024px){
  .cv-row{padding:13px 12px}
  .cv-name{font-size:16.5px}
  .cv-last{font-size:14px}
}


/* ============================================================
   CHAT ATTACHMENTS — attach button + in-bubble previews
   ============================================================ */
.chat-composer .cattach{
  flex-shrink:0;width:46px;height:46px;border-radius:23px;
  display:grid;place-items:center;cursor:pointer;
  background:#fff;border:1px solid var(--line,rgba(20,31,23,.1));
  color:var(--forest-700,#1d3d24);
  transition:background .14s ease, transform .1s ease;
}
.chat-composer .cattach:hover{background:var(--cream-100,#f3eee2)}
.chat-composer .cattach:active{transform:scale(.93)}
.chat-composer .cattach svg{width:20px;height:20px;stroke-width:2;fill:none;stroke:currentColor}
@media(max-width:1023px){
  body.chat-thread-open .chat-composer .cattach{width:44px;height:44px;border-radius:22px}
  body.chat-thread-open .chat-composer .cattach svg{width:20px;height:20px}
}

/* ============================================================
   PRESENCE · TYPING · REACTIONS · POST COMMENTS (new features)
   ============================================================ */
/* online / last-active in chat header */
.cth-presence{display:inline-flex;align-items:center;gap:5px}
.cth-presence.is-online{color:#2f8f4e;font-weight:700}
.cth-dot{width:8px;height:8px;border-radius:50%;background:#2f8f4e;box-shadow:0 0 0 2px rgba(47,143,78,.2)}

/* typing indicator */
.typing-row{display:flex;align-items:center;gap:8px;padding:4px 10px 10px;color:#5d6b60;font-size:12.5px}
.typing-dots{display:inline-flex;gap:3px}
.typing-dots i{width:6px;height:6px;border-radius:50%;background:#9aa79a;display:inline-block;animation:typingBounce 1.2s infinite ease-in-out}
.typing-dots i:nth-child(2){animation-delay:.18s}
.typing-dots i:nth-child(3){animation-delay:.36s}
@keyframes typingBounce{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}
@media (prefers-reduced-motion:reduce){.typing-dots i{animation:none}}

/* message reactions */
.msg{position:relative}
.msg-react-btn{
  flex-shrink:0;align-self:flex-end;margin:0 4px 4px;width:28px;height:28px;border-radius:50%;
  display:grid;place-items:center;background:#fff;border:1px solid rgba(20,31,23,.12);color:#7c8a72;
  opacity:0;cursor:pointer;transition:opacity .12s ease,transform .1s ease;
}
.msg:hover .msg-react-btn,.msg:active .msg-react-btn{opacity:1}
.msg-react-btn svg{width:15px;height:15px}
.msg-react-btn:active{transform:scale(.88)}
@media(hover:none){.msg-react-btn{opacity:.65}}
.msg-rx{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.rx-chip{
  display:inline-flex;align-items:center;gap:3px;
  padding:2px 8px;border-radius:999px;font-size:12px;line-height:1.4;cursor:pointer;
  background:rgba(255,255,255,.7);border:1px solid rgba(20,31,23,.12);color:#2a342c;
}
.msg.mine .rx-chip{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.3);color:#fff}
.rx-chip.mine{background:#dcefe0;border-color:#9fd3ab;color:#1d5d35}
.rx-chip .rx-n{font-weight:800;font-size:11px}

/* emoji picker modal */
.emoji-pick{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:14px 4px 6px}
.emoji-pick-btn{
  width:54px;height:54px;border-radius:16px;border:1px solid rgba(20,31,23,.1);background:#fff;
  font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center;
  transition:transform .1s ease,background .12s ease;
}
.emoji-pick-btn:active{transform:scale(.88)}
@media(hover:hover){.emoji-pick-btn:hover{background:#f1f5ec}}

/* update reactions */
.upd-react{margin-top:10px}
.upd-react-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.upd-react-add{
  width:30px;height:30px;border-radius:50%;border:1px dashed rgba(20,31,23,.22);background:#fff;color:#7c8a72;
  display:grid;place-items:center;cursor:pointer;
}
.upd-react-add svg{width:16px;height:16px}
.upd-react-add:active{transform:scale(.9)}

/* update comments */
.upd-comments{margin-top:12px;border-top:1px solid rgba(20,31,23,.08);padding-top:10px}
.upd-comments-head{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#8a958a;margin-bottom:8px}
.upd-comment{display:flex;gap:9px;margin-bottom:10px}
.ucm-av .avatar{width:32px!important;height:32px!important;font-size:12px}
.ucm-body{flex:1;min-width:0}
.ucm-top{display:flex;align-items:baseline;gap:7px}
.ucm-name{font-weight:700;font-size:13.5px;color:#1a241c}
.ucm-time{font-size:11px;color:#9aa090}
.ucm-text{font-size:14px;color:#2f3a32;line-height:1.4;margin-top:1px}
.ucm-reply-btn{margin-top:3px;background:none;border:0;color:#2f6b3e;font-size:12px;font-weight:700;cursor:pointer;padding:2px 0}
.ucm-replies{margin-top:6px;padding-left:10px;border-left:2px solid rgba(20,31,23,.08);display:flex;flex-direction:column;gap:4px}
.ucm-reply{font-size:13px;color:#3a4a3e}
.ucm-reply .ucm-name{font-size:12.5px}
.ucm-reply .ucm-time{margin-left:4px}
.upd-comment-add{display:flex;gap:8px;align-items:center;margin-top:8px}
.upd-comment-input{
  flex:1;min-width:0;height:40px;padding:0 13px;border-radius:20px;
  border:1px solid rgba(20,31,23,.15);background:#fff;font-size:14px;outline:none;
}
.upd-comment-input:focus{border-color:#4a7351;box-shadow:0 0 0 3px rgba(74,115,81,.13)}
.upd-comment-send{
  flex-shrink:0;width:40px;height:40px;border-radius:50%;border:0;cursor:pointer;
  background:linear-gradient(145deg,#3f6b3e,#1d3d24);color:#fff;display:grid;place-items:center;
}
.upd-comment-send svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.upd-comment-send:active{transform:scale(.9)}

/* image attachment in a bubble */
.b-attach-img{display:block;margin:0 0 5px;padding:0;border:none;background:none;border-radius:12px;overflow:hidden;max-width:240px;cursor:pointer;width:100%}
.b-attach-img img{display:block;width:100%;height:auto;max-height:300px;object-fit:cover;border-radius:12px}
.b-attach-img:active{opacity:.9}

/* file (non-image) attachment chip */
.b-attach-file{
  display:flex;align-items:center;gap:9px;margin:0 0 5px;
  padding:9px 11px;border-radius:12px;cursor:pointer;text-align:left;width:100%;
  background:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.07);color:inherit;
  max-width:240px;
}
.b-attach-file:active{opacity:.85}
.msg.mine .b-attach-file{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.22)}
.baf-ic{flex-shrink:0;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:rgba(0,0,0,.06);color:inherit}
.msg.mine .baf-ic{background:rgba(255,255,255,.18)}
.baf-ic svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.baf-meta{min-width:0;display:flex;flex-direction:column;gap:1px}
.baf-name{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
.baf-size{font-size:10.5px;opacity:.7}


/* attachment viewer modal */
.attach-view{display:flex;align-items:center;justify-content:center;background:#0c130d;border-radius:14px;overflow:hidden;min-height:160px}
.attach-view img{max-width:100%;max-height:64vh;display:block;object-fit:contain}
.attach-view-pdf{background:#fff;min-height:0}
.attach-view-pdf iframe{width:100%;height:62vh;border:0;border-radius:14px;background:#fff}
.attach-view-generic{flex-direction:column;gap:8px;background:var(--cream-100,#f3eee2);color:var(--ink-700,#3a4a3c);padding:32px 18px}
.attach-view-generic .avg-ic{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;background:#fff;color:var(--forest-700,#1d3d24)}
.attach-view-generic .avg-ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7}
.attach-view-generic strong{font-size:15px}
.attach-hint{font-size:11.5px;color:var(--ink-500,#5d6b60);text-align:center;margin:8px 0 0}
.modal-foot .btn[href]{display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.modal-foot .btn[href] svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}


/* ============================================================
   DOCUMENT SIGN & FILL — assign fields, signature pad, viewer
   ============================================================ */
.ad-fields{display:flex;flex-direction:column;gap:7px;margin-bottom:9px}
.ad-field-row{display:flex;gap:7px;align-items:center}
.ad-field-row .ad-field-name{flex:1}
.ad-field-del{flex-shrink:0;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#fdeeec;border:1px solid rgba(168,57,47,.2);color:#b03a2c;cursor:pointer}
.ad-field-del svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}

.sign-doc-head{display:flex;flex-direction:column;gap:2px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line,#e7e2d5)}
.sign-doc-head strong{font-size:16px;font-weight:800;color:var(--ink-900,#1a241c)}
.sign-doc-head span{font-size:12px;color:var(--ink-500,#5d6b60)}
.btn-block{margin-bottom:12px}
.sign-fields-wrap{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}

.sign-pad-wrap{position:relative;border:2px dashed rgba(63,107,62,.32);border-radius:14px;background:#fffdf8;overflow:hidden}
.sign-pad{display:block;width:100%;height:170px;touch-action:none;cursor:crosshair}
.sign-clear{position:absolute;top:8px;right:8px;font-size:11px;font-weight:800;padding:5px 10px;border-radius:9px;background:rgba(20,31,23,.06);border:none;color:var(--ink-700,#3a4a3c);cursor:pointer}
.sign-clear:active{background:rgba(20,31,23,.12)}

.sign-confirm{display:flex;align-items:flex-start;gap:9px;margin-top:12px;font-size:13px;color:var(--ink-700,#3a4a3c);line-height:1.35;cursor:pointer}
.sign-confirm input{margin-top:2px;width:18px;height:18px;flex-shrink:0;accent-color:var(--forest-600,#2f6b3e)}

/* completed/signed view */
.signed-fields{display:flex;flex-direction:column;gap:1px;margin:4px 0 14px;border:1px solid var(--line,#e7e2d5);border-radius:12px;overflow:hidden}
.sf-row{display:flex;justify-content:space-between;gap:12px;padding:11px 13px;background:#fffdf8}
.sf-row:nth-child(even){background:var(--cream-50,#f7f3ea)}
.sf-label{font-size:12px;font-weight:700;color:var(--ink-500,#5d6b60);flex-shrink:0;max-width:45%}
.sf-val{font-size:13px;font-weight:600;color:var(--ink-900,#1a241c);text-align:right}
.signed-sig{border:1px solid var(--line,#e7e2d5);border-radius:12px;background:#fff;padding:8px;display:flex;justify-content:center}
.signed-sig img{max-width:100%;max-height:150px}


/* ============================================================
   ADMIN TIMESHEET ROW (tsr) — skinny, tidy, actions on own line
   ============================================================ */
.tsr{
  position:relative;
  background:#fff;border:1px solid rgba(20,31,23,.08);border-radius:15px;
  padding:9px 14px 9px 17px;margin-bottom:8px;cursor:pointer;overflow:hidden;
  box-shadow:0 2px 7px rgba(20,31,23,.05);
  transition:box-shadow .13s ease, transform .13s ease;
}
.tsr::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px}
.tsr:active{transform:scale(.995)}
@media(hover:hover){.tsr:hover{box-shadow:0 6px 16px rgba(20,31,23,.1);transform:translateY(-1px)}}
/* per-status colour: pending=amber, approved=green, paid=forest, flagged=red */
.tsr.pending{background:linear-gradient(120deg,#fdf6e8,#fffdf9 60%);border-color:rgba(201,130,26,.22)}
.tsr.pending::before{background:linear-gradient(180deg,#e0a534,#b4761c)}
.tsr.approved{background:linear-gradient(120deg,#ecf5ec,#fffdf9 60%);border-color:rgba(63,107,62,.22)}
.tsr.approved::before{background:linear-gradient(180deg,#4a8f5a,#2f6b3e)}
.tsr.paid{background:linear-gradient(120deg,#eef2ee,#fffdf9 60%);border-color:rgba(31,61,36,.2);opacity:.92}
.tsr.paid::before{background:linear-gradient(180deg,#3f6b3e,#1d3d24)}
.tsr.flagged{background:linear-gradient(120deg,#fdeeea,#fffdf9 60%);border-color:rgba(176,58,44,.24)}
.tsr.flagged::before{background:linear-gradient(180deg,#cc6655,#a8392f)}
.tsr-main{display:flex;gap:10px;align-items:center}
.tsr-ic{flex-shrink:0;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;box-shadow:0 3px 8px rgba(20,31,23,.16)}
.tsr-ic svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.tsr-ic.a{background:linear-gradient(150deg,#e0a534,#b4761c)}
.tsr-ic.g{background:linear-gradient(150deg,#4a8f5a,#2f6b3e)}
.tsr-ic.b{background:linear-gradient(150deg,#3f6b3e,#1d3d24)}
.tsr-ic.r{background:linear-gradient(150deg,#c66,#a8392f)}
.tsr-info{flex:1;min-width:0}
.tsr-top{display:flex;align-items:center;gap:8px;margin-bottom:1px}
.tsr-top strong{flex:1;min-width:0;font-size:14.5px;font-weight:800;color:var(--ink-900,#1a241c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tsr-stats{display:flex;flex-wrap:wrap;gap:3px 9px;font-size:12px;color:var(--ink-600,#4a5a4c);margin-bottom:0}
.tsr-stats .tsr-strong{font-weight:800;color:var(--ink-900,#1a241c)}
.tsr-var.ok{background:#e9f3ea;color:#2f6b3e}
.tsr-var.warn{background:#fbf1de;color:#9a6a12}
.tsr-var.bad{background:#fbeae7;color:#b03a2c}
.tsr-var.neutral{background:var(--cream-100,#f3eee2);color:var(--ink-500,#5d6b60)}
.tsr-note{font-size:12px;color:var(--ink-500,#5d6b60);margin-top:2px;font-style:italic}
.tsr-actions{display:flex;gap:7px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(20,31,23,.06)}
.tsr-actions .btn{flex:1;justify-content:center;height:32px;font-size:12.5px;padding:0}
.tsr-actions .btn svg{width:14px;height:14px}


/* employee timesheet card extras */
.tsr-hint{font-size:11.5px;color:var(--ink-400,#9aa090);margin-top:2px;font-weight:600}
.tsr-note{display:flex;align-items:center;gap:5px}
.tsr-emp .tsr-hint svg,.tsr-emp .tsr-note svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;vertical-align:-1px}
.tsr-emp.is-locked{opacity:.92}
.tsr-emp.is-locked .tsr-hint{color:var(--ink-500,#5d6b60)}
.pill.locked-pill{display:inline-flex;align-items:center;gap:3px}
.pill.locked-pill svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2}

/* ============================================================
   IMPORTANT UPDATES — standout panel
   ============================================================ */
.updates-panel{
  margin-top:6px;
  background:linear-gradient(160deg,#fbf8f0,#f1f5ea);
  border:1px solid rgba(63,107,62,.16);
  border-radius:20px;
  padding:16px 16px 8px;
  box-shadow:0 4px 16px rgba(31,61,36,.08);
}
.updates-panel .section-head h2{color:var(--forest-700,#1d3d24)}


/* simplified admin timesheet card edit hint */
.tsr-edit{flex-shrink:0;align-self:center;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--cream-100,#f3eee2);color:var(--forest-700,#1d3d24)}
.tsr-edit svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.tsr-stats{align-items:center}


/* ============================================================
   MOBILE NAV — docked flush to the very bottom (final override)
   No floating pill, no white/empty space below. The bar's green
   extends through the safe-area so nothing shows behind it.
   ============================================================ */
@media(max-width:1023px){
  /* Reserve space so page content never hides behind the docked bar */
  .content{padding-bottom:calc(74px + var(--safe-b))!important}
}
@media(max-width:380px){
}
.rc-emp-actions .rc-act{flex:1;height:32px;font-size:12px}
.rc-emp-actions .rc-emp-state{flex:1;justify-content:center;height:32px}


/* ============================================================
   NOTIFICATIONS — clean, responsive, tap to expand & collapse
   ============================================================ */
/* ============================================================
   NOTIFICATIONS — clean, professional, unified list (v118)
   One calm list with hairline dividers instead of bulky floating
   cards. Small tinted icons. Unread shown with a dot + subtle tint.
   "Important" uses a slim accent rail + small tag — not a loud red
   card. Responsive header and rows.
   ============================================================ */
.notif-wrap{display:flex;flex-direction:column;gap:14px}
.notif-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;padding:0 2px}
.notif-head-title{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.notif-head h2{font-family:var(--font-display,Georgia,serif);font-size:23px;font-weight:600;margin:0;color:var(--ink-900,#1a241c);letter-spacing:-.01em}
.notif-head span{font-size:12.5px;color:var(--ink-500,#5d6b60);font-weight:600}
.notif-head-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.notif-head-actions .btn{flex:0 1 auto;white-space:nowrap;height:34px;padding:0 14px;border-radius:10px;font-size:13px;font-weight:650}

/* the list is one card with internal dividers — cohesive, not bulky */
.notif-list{
  display:flex;flex-direction:column;
  background:#fffdf9;border:1px solid rgba(20,31,23,.09);border-radius:16px;overflow:hidden;
  box-shadow:0 1px 3px rgba(20,31,23,.05);
}
.notif-item{
  position:relative;background:transparent;border:0;border-radius:0;overflow:hidden;
  transition:background .13s ease;
}
.notif-item + .notif-item{border-top:1px solid rgba(20,31,23,.07)}
@media(hover:hover){.notif-item:hover{background:rgba(20,31,23,.022)}}
.notif-item.unread{background:rgba(63,107,62,.045)}
.notif-item.open{background:rgba(20,31,23,.02)}

.notif-row{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;
  background:none;border:none;padding:14px 14px 14px 16px;
}
/* compact, calm tinted icon — circle, not a heavy tile */
.notif-ic{
  flex-shrink:0;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:#eef2e8;color:#3a6140;
}
.notif-ic svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}
.notif-ic.hot{background:#e6efe4;color:#2f6b3e}

.notif-text{
  flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--ink-800,#2a3a2c);line-height:1.4;
}
.notif-item:not(.open) .notif-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.notif-meta{flex-shrink:0;display:flex;align-items:center;gap:4px}
.notif-meta time{font-size:11px;color:var(--ink-400,#9aa090);font-weight:650;white-space:nowrap}
.notif-chev{display:grid;place-items:center;color:#c2cabb;transform:rotate(-90deg);transition:transform .18s ease}
.notif-chev svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2}
.notif-item.open .notif-chev{transform:rotate(90deg);color:var(--forest-600,#2f6b3e)}
.notif-body{padding:0 14px 14px 62px}
.notif-body p{margin:0;font-size:13.5px;line-height:1.55;color:var(--ink-700,#3a4a3c)}

/* unread dot on the icon */
.notif-item.unread .notif-ic{position:relative}
.notif-item.unread .notif-ic::after{
  content:"";position:absolute;top:-2px;right:-2px;
  width:11px;height:11px;border-radius:50%;
  background:#2f8f4e;border:2.5px solid #fffdf9;
}

/* ===== Important: restrained — slim rail + small tag, no loud card ===== */
.notif-item.important{background:rgba(176,58,44,.04)}
.notif-item.important::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#bb4436;
}
.notif-item.important .notif-ic{background:#f7e4e0;color:#a8392f}
.notif-item.important.unread .notif-ic::after{background:#bb4436}
.notif-badge{
  font-style:normal;font-size:9px;font-weight:800;letter-spacing:.07em;
  background:rgba(176,58,44,.12);color:#a8392f;padding:3px 7px;border-radius:6px;
  text-transform:uppercase;display:inline-block;vertical-align:1px;margin-right:6px;
}

/* responsive */
@media(max-width:430px){
  .notif-row{padding:13px 12px 13px 14px;gap:11px}
  .notif-text{font-size:13.5px}
  .notif-body{padding:0 12px 13px 57px}
  .notif-head h2{font-size:21px}
}
@media(min-width:1024px){
  .notif-row{padding:15px 16px 15px 18px}
  .notif-text{font-size:14.5px}
}

/* weekly summary modal */
/* ===== Weekly summary — redesigned (clay theme) ===== */
.wsum2{}
.wsum2-hero{
  background:
    radial-gradient(120% 130% at 85% 0%, rgba(199,154,78,.18) 0%, transparent 55%),
    linear-gradient(150deg,#234a30 0%,#0f2a1c 100%);
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  padding:18px 18px 16px;
  color:#fff;
  box-shadow:0 12px 28px -16px rgba(12,40,22,.7);
}
.wsum2-id{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.wsum2-av{
  width:42px;height:42px;border-radius:13px;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(145deg,#c79a4e,#a35a35);
  color:#fff;font-size:15px;font-weight:900;letter-spacing:.02em;
  box-shadow:0 3px 8px rgba(120,60,20,.3);
}
.wsum2-idtext{display:flex;flex-direction:column;gap:1px;min-width:0}
.wsum2-name{font-size:17px;font-weight:800;color:#fff;letter-spacing:-.01em;line-height:1.1}
.wsum2-role{font-size:12px;font-weight:600;color:rgba(220,232,212,.62)}
.wsum2-range{
  display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.02em;
  color:rgba(220,232,212,.85);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  padding:5px 12px;border-radius:999px;margin-bottom:15px;
}
.wsum2-payrow{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.wsum2-paymain em{
  font-style:normal;font-size:10.5px;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;color:#e7c389;display:block;margin-bottom:4px;
}
.wsum2-paymain strong{
  font-size:36px;font-weight:900;letter-spacing:-.025em;color:#fff;line-height:1;
}
.wsum2-paystats{display:flex;gap:8px;flex-shrink:0}
.wsum2-paystats div{
  text-align:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  border-radius:11px;padding:8px 11px;min-width:58px;
}
.wsum2-paystats b{display:block;font-size:15px;font-weight:800;color:#fff;line-height:1}
.wsum2-paystats span{font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:rgba(220,232,212,.6);margin-top:3px;display:block}

.wsum2-daystitle{
  font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:#8a968b;margin:18px 2px 9px;
}
.wsum-days{display:flex;flex-direction:column;gap:7px}
.wsum-day{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:13px;background:var(--cream-50,#fbf8f1);border:1px solid rgba(20,31,23,.08)}
.wsum-day.has{
  background:linear-gradient(120deg,#fff4ea,#fbf8f1 78%);
  border-color:rgba(163,90,53,.26);
  box-shadow:0 2px 8px rgba(163,90,53,.08);
}
.wsum-day.has .wsum-daycol{background:linear-gradient(160deg,#c79a4e,#a35a35);color:#fff;border-radius:10px;padding:5px 0}
.wsum-day.has .wsum-dow{color:rgba(255,255,255,.85)}
.wsum-day.has .wsum-daycol strong{color:#fff}
.wsum-daycol{flex:0 0 40px;text-align:center;line-height:1.05;padding:2px 0}
.wsum-dow{display:block;font-size:9.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-500,#5d6b60)}
.wsum-daycol strong{font-size:17px;font-weight:800;color:var(--ink-900,#1a241c)}
.wsum-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.wsum-shift{font-size:12px;font-weight:600;color:var(--ink-700,#3a4a3c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wsum-off{font-size:12px;color:var(--ink-400,#9aa090);font-style:italic}
.wsum-hrs{flex:0 0 auto;text-align:right;font-size:14px;font-weight:800;color:var(--clay-700,#8a4a2c);display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}
.wsum-km{font-size:11px;font-weight:800;color:#b07a52}
.wsum2-foot{font-size:11.5px;color:#8a968b;line-height:1.5;margin-top:14px;padding:0 2px}
.wsum-day:not(.has) .wsum-hrs{color:var(--ink-400,#9aa090)}


/* roster card status pills */
.rc-status{flex-shrink:0;display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:800;letter-spacing:.02em;padding:3px 9px;border-radius:999px;white-space:nowrap}
.rc-status svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2.2}
.rc-status.pub{background:#e3f0e4;color:#236b34}
.rc-status.draft{background:#fbf0d8;color:#9a6a12}
.rc-status.accepted{background:#e3f0e4;color:#236b34}
.rc-status.rejected{background:#fbe4e0;color:#b0392c}


/* ============================================================
   MOBILE NAV — FULL REDESIGN (authoritative, overrides all above)
   A clean light floating bar with a soft active highlight.
   Everything is reset first, then styled fresh.
   ============================================================ */
@media(max-width:1023px){

  /* active tab — bright chip on dark bar */
  .mobile-nav .mtab.active{
    background:linear-gradient(180deg,#5fbf76,#3f9a57)!important;
    color:#ffffff!important;
    box-shadow:0 4px 12px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.3)!important;
  }
  .mobile-nav .mtab.active > svg{stroke-width:2.3!important;color:#fff!important}
  .mobile-nav .mtab.active > span{font-weight:800!important;color:#fff!important}

  /* page padding so content clears the floating bar */
  .content{padding-bottom:calc(86px + var(--safe-b))!important}

  /* keep it hidden while a full-screen chat thread is open */
  body.chat-thread-open .mobile-nav{display:none!important}
}
@media(max-width:380px){
}


/* back button on sub-pages */
.page-back{
  display:inline-flex;align-items:center;gap:6px;
  margin:0 0 14px;padding:9px 14px 9px 11px;
  background:#fff;border:1px solid rgba(20,31,23,.1);border-radius:999px;
  font-size:13px;font-weight:800;color:var(--forest-700,#1d3d24);cursor:pointer;
  box-shadow:0 2px 7px rgba(20,31,23,.07);
  transition:transform .12s ease, box-shadow .12s ease;
}
.page-back:active{transform:scale(.97)}
@media(hover:hover){.page-back:hover{box-shadow:0 4px 12px rgba(20,31,23,.12)}}
.page-back svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.2}
@media(min-width:1024px){.page-back{margin-top:4px}}


/* ============================================================
   PROFILE PAGE — redesign (pf2)
   ============================================================ */
.pf2{display:flex;flex-direction:column;gap:16px;max-width:760px;margin:0 auto}

/* hero */
.pf2-hero{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:26px 20px 22px;border-radius:22px;
  background:#fff;border:1px solid rgba(20,31,23,.07);
  box-shadow:0 4px 18px rgba(20,40,22,.08);
}
.pf2-hero-bg{position:absolute;top:0;left:0;right:0;height:84px;
  background:linear-gradient(135deg,#2f5d3a,#173d27)}
.pf2-hero.admin .pf2-hero-bg{background:linear-gradient(135deg,#6b4a2f,#3d2817)}
.pf2-avatar{
  position:relative;width:84px;height:84px;border-radius:24px;
  display:grid;place-items:center;margin-top:18px;
  font-family:var(--font-display,Georgia,serif);font-size:30px;font-weight:700;color:#fff;
  background:linear-gradient(150deg,#4a8f5a,#2f6b3e);
  border:4px solid #fff;box-shadow:0 6px 16px rgba(20,40,22,.25);
}
.pf2-hero.admin .pf2-avatar{background:linear-gradient(150deg,#b07a45,#8a5326)}
.pf2-name{position:relative;font-family:var(--font-display,Georgia,serif);font-size:23px;font-weight:600;margin:12px 0 2px;color:var(--ink-900,#1a241c)}
.pf2-title{position:relative;font-size:13.5px;color:var(--ink-500,#5d6b60);font-weight:600}
.pf2-role{position:relative;margin-top:9px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:4px 12px;border-radius:999px;background:#eef3ea;color:#2f6b3e}
.pf2-hero.admin .pf2-role{background:#f3e9df;color:#8a5326}
.pf2-edit{
  position:relative;margin-top:15px;display:inline-flex;align-items:center;gap:6px;
  padding:9px 18px;border-radius:999px;border:1px solid rgba(20,31,23,.12);
  background:#fff;font-size:13px;font-weight:800;color:var(--ink-800,#2a3a2c);cursor:pointer;
  box-shadow:0 2px 6px rgba(20,31,23,.06);transition:transform .12s ease;
}
.pf2-edit:active{transform:scale(.97)}
.pf2-edit svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}

/* stat strip */
.pf2-stats{display:flex;gap:10px}
.pf2-stat{flex:1;background:#fff;border:1px solid rgba(20,31,23,.07);border-radius:16px;padding:14px 8px;text-align:center;box-shadow:0 2px 8px rgba(20,31,23,.05)}
.pf2-stat strong{display:block;font-family:var(--font-display,Georgia,serif);font-size:22px;font-weight:700;color:var(--ink-900,#1a241c);line-height:1}
.pf2-stat em{display:block;margin-top:4px;font-style:normal;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-500,#5d6b60)}

/* section label */
.pf2-section-label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-500,#5d6b60);margin:6px 2px -4px}
.pf2-mini-edit{margin-left:auto;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#fff;border:1px solid rgba(20,31,23,.1);color:var(--forest-700,#1d3d24);cursor:pointer}
.pf2-mini-edit svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}

/* quick links */
.pf2-links{display:flex;flex-direction:column;gap:9px}
.pf2-link{display:flex;align-items:center;gap:13px;width:100%;text-align:left;cursor:pointer;
  background:#fff;border:1px solid rgba(20,31,23,.07);border-radius:16px;padding:13px 14px;
  box-shadow:0 2px 8px rgba(20,31,23,.05);transition:transform .12s ease,box-shadow .12s ease}
.pf2-link:active{transform:scale(.99)}
@media(hover:hover){.pf2-link:hover{box-shadow:0 6px 16px rgba(20,31,23,.1)}}
.pf2-link-ic{flex-shrink:0;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;color:#fff}
.pf2-link-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.pf2-link-ic.green{background:linear-gradient(150deg,#4a8f5a,#2f6b3e)}
.pf2-link-ic.clay{background:linear-gradient(150deg,#c4884f,#9a5e2c)}
.pf2-link-ic.sage{background:linear-gradient(150deg,#8aa988,#5d7e5f)}
.pf2-link-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.pf2-link-txt strong{font-size:14.5px;font-weight:800;color:var(--ink-900,#1a241c)}
.pf2-link-txt span{font-size:12px;color:var(--ink-500,#5d6b60)}
.pf2-link-arrow{flex-shrink:0;color:#c2cabd;transform:rotate(180deg)}
.pf2-link-arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4}

/* detail cards */
.pf2-card{background:#fff;border:1px solid rgba(20,31,23,.07);border-radius:16px;overflow:hidden;box-shadow:0 2px 8px rgba(20,31,23,.05)}
.pf2-row{display:flex;align-items:center;gap:11px;padding:13px 14px;border-bottom:1px solid rgba(20,31,23,.05)}
.pf2-row:last-child{border-bottom:none}
.pf2-row-ic{flex-shrink:0;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--cream-100,#f3eee2);color:var(--forest-700,#1d3d24)}
.pf2-row-ic svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.pf2-row-l{flex-shrink:0;font-size:13px;font-weight:700;color:var(--ink-500,#5d6b60);min-width:96px}
.pf2-row-v{flex:1;text-align:right;font-size:13.5px;font-weight:600;color:var(--ink-900,#1a241c);word-break:break-word}

/* actions */
.pf2-actions{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.pf2-signout{display:flex;align-items:center;justify-content:center;gap:8px;height:48px;border-radius:14px;border:none;cursor:pointer;
  background:linear-gradient(150deg,#b0392c,#8a2c22);color:#fff;font-size:15px;font-weight:800;box-shadow:0 4px 12px rgba(168,57,47,.25)}
.pf2-signout:active{transform:scale(.99)}
.pf2-signout svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}

@media(min-width:1024px){
  .pf2-links{display:grid;grid-template-columns:repeat(3,1fr)}
}


/* profile photo edit control */
.photo-edit{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:18px}
.photo-edit-circle{position:relative;width:92px;height:92px;border-radius:26px;cursor:pointer;
  display:grid;place-items:center;background-size:cover;background-position:center;
  background-color:#2f6b3e;background-image:linear-gradient(150deg,#4a8f5a,#2f6b3e);
  color:#fff;box-shadow:0 4px 14px rgba(20,40,22,.22);overflow:hidden}
.photo-edit-circle .pe-initials{font-family:var(--font-display,Georgia,serif);font-size:30px;font-weight:700}
.pe-cam{position:absolute;right:-3px;bottom:-3px;width:32px;height:32px;border-radius:50%;
  display:grid;place-items:center;background:#fff;color:var(--forest-700,#1d3d24);
  border:2px solid var(--cream-50,#f7f3ea);box-shadow:0 2px 6px rgba(0,0,0,.18)}
.pe-cam svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.photo-edit-hint{font-size:12px;font-weight:700;color:var(--ink-500,#5d6b60)}


/* ============================================================
   PENDING APPROVALS PANEL (admin home + notifications)
   ============================================================ */
.approvals-panel{
  background:linear-gradient(160deg,#fdf6e8,#fffdf9);
  border:1px solid rgba(201,130,26,.28);
  border-radius:20px;margin-bottom:14px;overflow:hidden;
  box-shadow:0 4px 16px rgba(154,106,18,.1);
}
.approvals-summary{
  display:flex;align-items:center;gap:11px;padding:15px 16px;cursor:pointer;list-style:none;
}
.approvals-summary::-webkit-details-marker{display:none}
.appr-bell{flex-shrink:0;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
  background:linear-gradient(150deg,#d6952f,#b4761c);color:#fff}
.appr-bell svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.appr-sum-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.appr-sum-txt strong{font-size:15px;font-weight:800;color:#7a5210}
.appr-sum-txt span{font-size:12px;color:#9a6a12;font-weight:600}
.appr-count{flex-shrink:0;min-width:24px;height:24px;padding:0 7px;border-radius:999px;display:grid;place-items:center;
  background:#b4761c;color:#fff;font-size:12px;font-weight:800}
.appr-chev{flex-shrink:0;color:#b4761c;transform:rotate(-90deg);transition:transform .2s ease}
.appr-chev svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4}
.approvals-panel[open] .appr-chev{transform:rotate(90deg)}
.approvals-toolbar{padding:0 14px 10px;display:flex;justify-content:flex-end}
.approvals-toolbar .btn-primary{background:linear-gradient(150deg,#d6952f,#b4761c)!important}
.approvals-list{display:flex;flex-direction:column;gap:8px;padding:0 14px 14px}
.appr-row{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid rgba(20,31,23,.07);border-radius:14px;padding:11px 12px}
.appr-info{flex:1;min-width:0}
.appr-top{display:flex;align-items:center;gap:8px}
.appr-top strong{font-size:13.5px;font-weight:800;color:var(--ink-900,#1a241c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appr-h{font-size:11.5px;font-weight:800;color:#9a6a12;background:#fbf1de;padding:2px 7px;border-radius:999px;flex-shrink:0}
.appr-sub{font-size:11.5px;color:var(--ink-500,#5d6b60);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.appr-actions{display:flex;gap:6px;flex-shrink:0}
.appr-btn{display:inline-flex;align-items:center;gap:4px;border:none;cursor:pointer;font-weight:800;font-size:12px;border-radius:11px;padding:0 11px;height:36px}
.appr-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2}
.appr-btn.ok{background:linear-gradient(150deg,#4a8f5a,#2f6b3e);color:#fff;width:36px;justify-content:center;padding:0}
.appr-btn.flag{background:#fbe4e0;color:#b0392c;width:36px;justify-content:center;padding:0}
.appr-btn:active{transform:scale(.96)}
.approvals-head .btn-primary{background:linear-gradient(150deg,#d6952f,#b4761c)!important;flex-shrink:0;font-size:12px;padding:0 12px}


/* ============================================================
   DESKTOP ROSTER — employee-row week grid (admin)
   Names on the left, Mon–Sun columns, sticky day header,
   rectangular cards that expand on hover to reveal tools.
   Shown on desktop only; mobile roster is untouched.
   ============================================================ */
.rwg-wrap{display:none}
@media(min-width:1024px){
  .roster-week{display:none}          /* hide old grid on desktop for admin path */
  .rwg-wrap{
    display:block;margin-top:8px;
    max-height:calc(100dvh - 220px);overflow:auto;
    scrollbar-gutter:stable;
    border:1px solid rgba(20,31,23,.08);border-radius:18px;background:#fff;
    box-shadow:0 4px 16px rgba(20,40,22,.07);
  }
  .rwg-grid{display:grid;grid-template-columns:170px repeat(7,minmax(212px,1fr));min-width:1654px}

  /* sticky header row */
  .rwg-head{display:contents}
  .rwg-corner,.rwg-dayhead{
    position:sticky;top:0;z-index:5;
    background:linear-gradient(180deg,#22452b,#173d27);color:#fff;
    padding:12px 10px;font-weight:800;
  }
  .rwg-corner{left:0;z-index:6;display:flex;align-items:center;font-size:13px;letter-spacing:.03em;border-top-left-radius:18px}
  .rwg-dayhead{display:flex;flex-direction:column;align-items:center;gap:1px;border-left:1px solid rgba(255,255,255,.08);position:sticky;top:0;z-index:5}
  .rwg-dayhead.today{background:linear-gradient(180deg,#2e7d44,#1d5e30)}
  .rwg-dow{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;opacity:.8}
  .rwg-num{font-size:18px;font-weight:800;line-height:1}
  .rwg-dayhrs{font-size:10px;font-weight:800;letter-spacing:.02em;margin-top:2px;padding:1px 7px;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;line-height:1.35}
  .rwg-dayhrs-zero{background:rgba(255,255,255,.07);color:rgba(255,255,255,.5)}
  .rwg-dayhead.today .rwg-dayhrs{background:rgba(255,255,255,.22)}
  /* admin desktop already shows the grid header row, so hide the duplicate day-picker pills */
  .rst-days-admin{display:none}
  .rwg-dayadd{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:7px;border:none;cursor:pointer;
    display:grid;place-items:center;background:rgba(255,255,255,.16);color:#fff;opacity:0;transition:opacity .15s ease}
  .rwg-dayhead:hover .rwg-dayadd{opacity:1}
  .rwg-dayadd svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.4}

  /* rows */
  .rwg-row{display:contents}
  .rwg-name{
    position:sticky;left:0;z-index:4;
    display:flex;align-items:center;gap:10px;padding:12px 12px;
    background:#f7f9f4;border-top:1px solid rgba(20,31,23,.06);border-right:1px solid rgba(20,31,23,.08);
  }
  .rwg-av{flex-shrink:0;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
    font-size:12px;font-weight:800;color:#fff;background:linear-gradient(150deg,#4a8f5a,#2f6b3e)}
  .rwg-nametxt{display:flex;flex-direction:column;min-width:0;line-height:1.15}
  .rwg-nametxt strong{font-size:13.5px;font-weight:800;color:var(--ink-900,#1a241c)}
  .rwg-nametxt em{font-style:normal;font-size:11px;color:var(--ink-500,#5d6b60);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  .rwg-cell{
    position:relative;padding:6px;border-top:1px solid rgba(20,31,23,.06);border-left:1px solid rgba(20,31,23,.05);
    display:flex;flex-direction:column;gap:4px;min-height:42px;
  }
  .rwg-cell-add{
    flex:1;min-height:34px;align-self:stretch;border-radius:9px;border:1.5px dashed rgba(45,107,62,.25);
    background:transparent;color:#9fb39d;cursor:pointer;display:grid;place-items:center;
    opacity:0;transition:opacity .15s ease, background .15s ease, color .15s ease;
  }
  .rwg-cell:hover .rwg-cell-add{opacity:1}
  .rwg-cell-add:hover{background:color-mix(in srgb,#2f6b3e 8%,#fff);color:#2f6b3e;border-color:rgba(45,107,62,.5)}
  .rwg-cell-add svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4}

  /* rectangular shift card — skinny, sleek, softly tinted so colours blend */
  .rgc{
    position:relative;border-radius:14px;cursor:pointer;overflow:hidden;
    background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,#fff),color-mix(in srgb,var(--accent) 9%,#fff));
    border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);
    border-left:4px solid var(--accent);
    box-shadow:0 1px 3px color-mix(in srgb,var(--accent) 16%,transparent);
    transition:box-shadow .16s ease, transform .16s ease;
  }
  .rgc.draft{
    background:#ffffff;
    border:1.5px dashed color-mix(in srgb,var(--accent) 55%,#fff);
    border-left:5px dashed var(--accent);
    box-shadow:0 1px 4px rgba(20,40,22,.08);
  }
  .rgc.draft .rgc-time{color:var(--accent-deep)}
  .rgc.draft .rgc-client{color:color-mix(in srgb,var(--accent-deep) 92%,#000)!important}
  .rgc.draft .rgc-dur{background:color-mix(in srgb,var(--accent) 12%,#fff)}
  .rgc-main{padding:6px 10px}
  .rgc-row1{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}
  .rgc-time{font-size:10.5px;font-weight:800;color:color-mix(in srgb,var(--accent-deep) 88%,#000);white-space:nowrap;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .rgc-dur{flex-shrink:0;font-size:9px;font-weight:800;color:color-mix(in srgb,var(--accent-deep) 88%,#000);background:rgba(255,255,255,.85);padding:1px 6px;border-radius:999px;white-space:nowrap}
  .rgc-row2{display:flex;align-items:center;gap:6px;margin-top:3px;min-width:0}
  .rgc-dot{flex-shrink:0;width:7px;height:7px;border-radius:50%}
  .rgc-dot.pub{background:#2f8a47;box-shadow:0 0 0 2px rgba(47,138,71,.22)}
  .rgc-dot.draft{background:#c9821a;box-shadow:0 0 0 2px rgba(201,130,26,.22)}
  .rgc-client{font-size:12px;font-weight:800;color:color-mix(in srgb,var(--accent-deep) 90%,#000);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}

  /* tools — hidden until hover; labelled, colour-coded chips */
  .rgc-tools{
    display:flex;gap:5px;padding:0 9px;
    max-height:0;opacity:0;overflow:hidden;
    transition:max-height .2s ease, opacity .2s ease, padding .2s ease;
  }
  .rgc:hover{box-shadow:0 12px 26px color-mix(in srgb,var(--accent) 42%,transparent);transform:translateY(-2px);z-index:3}
  .rgc:hover .rgc-tools{max-height:34px;opacity:1;padding:0 8px 7px}
  .rgc-tool{
    flex:1;min-width:0;height:26px;border-radius:8px;border:none;cursor:pointer;
    display:grid;place-items:center;
    background:#fff;box-shadow:0 1px 3px rgba(20,40,22,.12);
    transition:transform .1s ease, background .12s ease, color .12s ease, box-shadow .12s ease;
  }
  .rgc-tool svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
  .rgc-tool:active{transform:scale(.9)}
  .rgc-tool:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(20,40,22,.2)}
  /* colour coding per action */
  .rgc-tool.t-assign{color:#2f6b8a}
  .rgc-tool.t-assign:hover{background:#2f6b8a;color:#fff}
  .rgc-tool.t-publish{color:#2f8a47}
  .rgc-tool.t-publish:hover{background:#2f8a47;color:#fff}
  .rgc-tool.t-add{color:#9a6a12}
  .rgc-tool.t-add:hover{background:#c9821a;color:#fff}
  .rgc-tool.t-del{color:#b0392c}
  .rgc-tool.t-del:hover{background:#b0392c;color:#fff}
}


/* ============================================================
   CLOCK IN / OUT — redesign (clk2)
   ============================================================ */
.clk2{max-width:520px;margin:14px auto 0;background:#fff;border:1px solid rgba(20,31,23,.07);
  border-radius:24px;padding:24px 20px;display:flex;flex-direction:column;align-items:center;
  box-shadow:0 6px 22px rgba(20,40,22,.08);position:relative;overflow:hidden}
.clk2.live{background:linear-gradient(180deg,#1f4e2e,#15391f);border:none}
.clk2.live::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 60% at 50% 0%,rgba(95,191,118,.25),transparent 70%);pointer-events:none}
@keyframes clk2pulse{0%,100%{box-shadow:0 0 0 3px rgba(95,191,118,.35)}50%{box-shadow:0 0 0 8px rgba(95,191,118,0)}}

/* idle clock face */
.clk2-clockface{position:relative;width:96px;height:96px;border-radius:50%;
  background:radial-gradient(circle at 50% 40%,#f3f7ef,#e7efe1);
  box-shadow:inset 0 2px 6px rgba(20,40,22,.1),0 4px 12px rgba(20,40,22,.08);margin-bottom:16px}
.clk2-clockface .clk2-hand{position:absolute;left:50%;bottom:50%;transform-origin:bottom center;border-radius:3px;background:#2f6b3e}
.clk2-clockface .h1{width:3px;height:30px;transform:translateX(-50%) rotate(35deg)}
.clk2-clockface .h2{width:3px;height:22px;transform:translateX(-50%) rotate(-70deg);background:#5fbf76}
.clk2-pin{position:absolute;left:50%;top:50%;width:9px;height:9px;border-radius:50%;background:#2f6b3e;transform:translate(-50%,-50%)}

/* greeting */
.clk2-greet{text-align:center}
.clk2-greet>span{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--clay-500,#a7673e)}
.clk2-greet h2{font-family:var(--font-display,Georgia,serif);font-size:23px;font-weight:600;color:var(--ink-900,#1a241c);margin:5px 0 4px}
.clk2-greet p{font-size:13.5px;color:var(--ink-500,#5d6b60);margin:0}

/* stats row */
.clk2-stats{display:flex;gap:10px;width:100%;margin:20px 0 4px}
.clk2-stat{flex:1;text-align:center;padding:11px 6px;border-radius:14px;background:rgba(255,255,255,.08)}
.clk2.idle .clk2-stat{background:var(--cream-100,#f3eee2)}
.clk2-stat strong{display:block;font-size:19px;font-weight:800;color:#fff;line-height:1}
.clk2.idle .clk2-stat strong{color:var(--ink-900,#1a241c)}
.clk2-stat em{display:block;font-style:normal;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;margin-top:4px;color:rgba(255,255,255,.65)}
.clk2.idle .clk2-stat em{color:var(--ink-500,#5d6b60)}

/* action button */
.clk2-action{margin-top:16px;width:100%;height:52px;border:none;border-radius:15px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:8px;font-size:15.5px;font-weight:800;
  transition:transform .1s ease, box-shadow .15s ease}
.clk2-action svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2}
.clk2-action:active{transform:scale(.98)}
.clk2-action.stop{background:linear-gradient(150deg,#e8896f,#c4543a);color:#fff;box-shadow:0 6px 16px rgba(196,84,58,.4)}
.clk2-action.ghost{background:linear-gradient(150deg,#3f8a52,#2f6b3e);color:#fff;box-shadow:0 6px 16px rgba(47,107,62,.28)}

/* today's shifts */
.clk2-shifts-head{display:flex;align-items:center;gap:9px;max-width:520px;margin:24px auto 10px;padding:0 4px}
.clk2-shifts-head h3{font-family:var(--font-display,Georgia,serif);font-size:18px;font-weight:600;margin:0;color:var(--ink-900,#1a241c)}
.clk2-shifts-head span{min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--forest-700,#1d3d24);color:#fff;font-size:12px;font-weight:800;display:grid;place-items:center}
.clk2-shifts{max-width:520px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.clk2-sh{display:flex;background:#fff;border:1px solid rgba(20,31,23,.07);border-radius:16px;overflow:hidden;box-shadow:0 2px 8px rgba(20,31,23,.05)}
.clk2-sh-rail{flex-shrink:0;width:6px;background:linear-gradient(180deg,var(--accent),var(--accent-deep))}
.clk2-sh-body{flex:1;min-width:0;padding:13px 14px}
.clk2-sh-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
.clk2-sh-time{font-size:13px;font-weight:800;color:var(--accent-deep)}
.clk2-sh-dur{font-size:10.5px;font-weight:800;color:var(--accent-deep);background:color-mix(in srgb,var(--accent) 16%,#fff);padding:2px 9px;border-radius:999px}
.clk2-sh-body h4{font-size:15px;font-weight:800;color:var(--ink-900,#1a241c);margin:0 0 3px}
.clk2-sh-loc{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-500,#5d6b60);margin-bottom:11px}
.clk2-sh-loc svg{width:13px;height:13px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2}
.clk2-sh-actions{display:flex;gap:8px}
.clk2-sh-actions button{flex:1;height:40px;border:none;border-radius:11px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13.5px;font-weight:800;transition:transform .1s ease}
.clk2-sh-actions button:active{transform:scale(.97)}
.clk2-sh-actions button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.clk2-sh-start{background:linear-gradient(150deg,var(--accent),var(--accent-deep));color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 40%,transparent)}
.clk2-sh-accept{background:linear-gradient(150deg,#3f8a52,#2f6b3e);color:#fff}
.clk2-sh-reject{flex:0 0 auto!important;padding:0 14px;background:#fbe4e0;color:#b0392c}
.clk2-sh-done{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;border-radius:11px;background:#e3f0e4;color:#236b34;font-size:13.5px;font-weight:800}
.clk2-sh-declined{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;border-radius:11px;background:#fbe4e0;color:#b0392c;font-size:13.5px;font-weight:800}
.clk2-sh-done svg,.clk2-sh-declined svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.clk2-sh.done{opacity:.7}
.clk2-sh.declined .clk2-sh-rail{background:#b0392c}

.clk2-empty{max-width:520px;margin:18px auto 0;text-align:center;padding:30px 20px;background:#fff;border-radius:18px;border:1px solid rgba(20,31,23,.07)}
.clk2-empty svg{width:34px;height:34px;fill:none;stroke:#bcc4b6;stroke-width:1.8;margin-bottom:8px}
.clk2-empty p{color:var(--ink-500,#5d6b60);margin:0 0 12px}


/* ============================================================
   HOME / DASHBOARD — premium redesign (hm)
   ============================================================ */
.hm{display:flex;flex-direction:column;gap:16px;max-width:780px;margin:0 auto}

/* hero */
.hm-hero{position:relative;overflow:hidden;border-radius:16px;padding:10px 13px 9px;color:#fff;
  box-shadow:0 10px 30px rgba(20,40,22,.18)}
.hm-hero.admin{background:linear-gradient(140deg,#2c5d39,#163a25)}
.hm-hero.staff{background:linear-gradient(140deg,#2f6b8a,#163a4e)}
.hm-hero-bg{position:absolute;inset:0;background:radial-gradient(120% 80% at 85% -10%,rgba(255,255,255,.18),transparent 55%);pointer-events:none}
.hm-hero-row{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.hm-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.04em;color:rgba(255,255,255,.7)}
.hm-hero-copy h1{font-family:var(--font-display,Georgia,serif);font-size:19px;font-weight:600;margin:0 0 1px;line-height:1}
.hm-hero-copy p{font-size:11px;color:rgba(255,255,255,.82);margin:0}
.hm-hero-add{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:3px;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);color:#fff;cursor:pointer;
  border-radius:13px;padding:7px 11px;font-size:10px;font-weight:800;backdrop-filter:blur(4px)}
.hm-hero-add svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}
.hm-hero-add:active{transform:scale(.96)}
.hm-hero-stats{position:relative;display:flex;gap:5px;margin-top:7px}
.hm-hs{flex:1;background:rgba(255,255,255,.12);border-radius:9px;padding:4px 5px;text-align:center}
.hm-hs strong{display:block;font-size:13px;font-weight:800;line-height:1}
.hm-hs em{display:block;font-style:normal;font-size:8px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:rgba(255,255,255,.72);margin-top:1px}
.hm-hs.alert{background:rgba(232,137,111,.35);box-shadow:inset 0 0 0 1px rgba(255,200,180,.4)}
.hm-q{display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;
  background:#fff;border:1px solid rgba(20,31,23,.07);border-radius:16px;padding:14px 6px;
  box-shadow:0 2px 8px rgba(20,31,23,.05);transition:transform .12s ease,box-shadow .12s ease}
.hm-q:active{transform:scale(.97)}
@media(hover:hover){.hm-q:hover{box-shadow:0 6px 16px rgba(20,31,23,.1)}}
.hm-q-ic.green{background:linear-gradient(150deg,#4a8f5a,#2f6b3e)}
.hm-q-ic.clay{background:linear-gradient(150deg,#c4884f,#9a5e2c)}
.hm-q-ic.sage{background:linear-gradient(150deg,#8aa988,#5d7e5f)}
.hm-q-ic.blue{background:linear-gradient(150deg,#5a93b0,#2f6b8a)}

/* next shift card (employee) */
.hm-next{display:flex;cursor:pointer;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 13px 30px rgba(8,30,16,.22)}
.hm-next:active{transform:scale(.99)}
.hm-next-rail{flex:0 0 80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#fff;
  background:linear-gradient(180deg,#243b6b,#0c1730)}
.hm-next-rt{font-family:var(--font-display,Georgia,serif);font-size:20px;font-weight:800;line-height:1}
.hm-next-rap{font-size:9px;font-weight:850;letter-spacing:.08em;color:#e9c87e}
.hm-next-rdur{margin-top:6px;font-size:9px;font-weight:800;background:rgba(255,255,255,.2);padding:2px 9px;border-radius:999px}
.hm-next-in{flex:1;min-width:0;padding:14px 16px;display:flex;flex-direction:column;justify-content:center}
.hm-next-tag{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase;
  color:#2f4a85;background:#e7ecf7;padding:3px 10px;border-radius:999px;margin-bottom:7px}
.hm-next-tag svg{width:11px;height:11px;fill:#2f4a85;stroke:none}
.hm-next-client{font-family:var(--font-display,Georgia,serif);font-size:21px;font-weight:700;color:#15233f;margin:0 0 6px;letter-spacing:-.01em;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hm-next-row{display:flex;align-items:center;gap:7px;font-size:12.5px;color:#54606f;font-weight:600;margin-bottom:4px;min-width:0}
.hm-next-row svg{width:14px;height:14px;fill:none;stroke:#243b6b;stroke-width:2;flex-shrink:0}
.hm-next-cta{margin-top:9px;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(135deg,#243b6b,#0c1730);color:#fff;border:0;padding:12px;border-radius:12px;font-size:13.5px;font-weight:850;cursor:pointer;
  box-shadow:0 6px 16px rgba(20,40,90,.32);transition:transform .12s ease,box-shadow .12s ease}
.hm-next-cta svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4}
.hm-next-cta:active{transform:scale(.98)}
@media(hover:hover){.hm-next-cta:hover{box-shadow:0 9px 22px rgba(20,40,90,.4)}}



/* section head */
.hm-sec-head{display:flex;align-items:center;gap:10px;margin-top:6px;padding:0 2px}
.hm-sec-head h2{font-family:var(--font-display,Georgia,serif);font-size:20px;font-weight:600;margin:0;color:var(--ink-900,#1a241c)}
.hm-pill{font-size:11.5px;font-weight:800;color:var(--ink-500,#5d6b60);background:var(--cream-100,#f3eee2);padding:4px 11px;border-radius:999px}

@media(min-width:1024px){
  .hm-hero-copy h1{font-size:21px}
}


/* ============================================================
   ROSTER — premium header + day selector (mobile-first)
   ============================================================ */
.rst-hero{position:relative;overflow:hidden;border-radius:22px;padding:18px 18px 16px;color:#fff;margin-bottom:14px;
  box-shadow:0 8px 24px rgba(20,40,22,.16)}
.rst-hero.admin{background:linear-gradient(140deg,#2c5d39,#163a25)}
.rst-hero.staff{background:linear-gradient(140deg,#2f6b8a,#163a4e)}
.rst-hero-bg{position:absolute;inset:0;background:radial-gradient(120% 80% at 85% -10%,rgba(255,255,255,.16),transparent 55%);pointer-events:none}
.rst-hero-top{position:relative;display:flex;align-items:center;gap:10px}
.rst-nav{flex-shrink:0;width:38px;height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.12);color:#fff;cursor:pointer;display:grid;place-items:center}
.rst-nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2}
.rst-nav:active{transform:scale(.94)}
.rst-hero-label{flex:1;text-align:center;line-height:1.15}
.rst-eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.rst-hero-label strong{font-family:var(--font-display,Georgia,serif);font-size:19px;font-weight:600}
.rst-hero-foot{position:relative;display:flex;align-items:stretch;gap:8px;margin-top:15px}
.rst-hs{flex:1;background:rgba(255,255,255,.12);border-radius:13px;padding:9px 6px;text-align:center}
.rst-hs strong{display:block;font-size:18px;font-weight:800;line-height:1}
.rst-hs em{display:block;font-style:normal;font-size:9.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-top:3px}
.rst-hero-add{flex:1.3;display:flex;align-items:center;justify-content:center;gap:8px;border:none;cursor:pointer;
  background:linear-gradient(135deg,#fff7ec,#ffffff);color:#1d3d24;border-radius:15px;
  font-size:13.5px;font-weight:800;letter-spacing:-.01em;padding:0 14px;min-height:46px;
  box-shadow:0 6px 16px rgba(10,30,16,.28), inset 0 1px 0 rgba(255,255,255,.9);
  transition:transform .12s ease, box-shadow .14s ease;position:relative;overflow:hidden}
.rst-hero-add::before{content:"";position:absolute;inset:0;border-radius:15px;
  background:linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,255,255,0) 55%);pointer-events:none}
.rst-hero-add svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:2.6;position:relative;z-index:1}
.rst-hero-add .rha-ic{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(140deg,#4a8f5a,#2f6b3e);box-shadow:0 2px 6px rgba(31,80,40,.4);position:relative;z-index:1}
.rst-hero-add span{position:relative;z-index:1}
.rst-hero.staff .rst-hero-add{color:#1d4a63}
.rst-hero.staff .rst-hero-add .rha-ic{background:linear-gradient(140deg,#3f8fb0,#235a73)}
.rst-hero-add:active{transform:translateY(1px) scale(.98);box-shadow:0 3px 10px rgba(10,30,16,.3)}

/* day selector */
.rst-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:14px}
@media(min-width:1024px){
.rst-days{display:grid;grid-template-columns:170px repeat(7,minmax(0,1fr));gap:0;column-gap:0;margin-bottom:14px}
.rst-days::before{content:"";display:block;grid-column:1}
.rst-days .rst-day{margin:0 5px}
}
.rst-day{display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;padding:9px 2px 7px;
  background:#fff;border:1px solid rgba(20,31,23,.07);border-radius:14px;
  transition:transform .1s ease, background .12s ease, box-shadow .12s ease}
.rst-day:active{transform:scale(.95)}
.rd-dow{font-size:9.5px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-400,#9aa090)}
.rd-num{font-size:16px;font-weight:800;color:var(--ink-900,#1a241c);line-height:1}
.rd-cnt{min-width:16px;height:16px;padding:0 5px;border-radius:999px;background:var(--clay-500,#a7673e);color:#fff;font-size:9.5px;font-weight:800;display:grid;place-items:center}
.rd-empty{width:5px;height:5px;border-radius:50%;background:rgba(20,31,23,.12)}
.rst-day.today{box-shadow:inset 0 0 0 1.5px rgba(45,107,62,.4)}
.rst-day.today .rd-dow{color:#2f6b3e}
.rst-day.sel{background:linear-gradient(170deg,#3f8a52,#2f6b3e);border-color:transparent;box-shadow:0 6px 14px rgba(47,107,62,.32)}
.rst-day.sel .rd-dow{color:rgba(255,255,255,.8)}
.rst-day.sel .rd-num{color:#fff}
.rst-day.sel .rd-cnt{background:rgba(255,255,255,.25)}
.rst-day.sel .rd-empty{background:rgba(255,255,255,.4)}

/* day head */
.rst-day-head{display:flex;align-items:baseline;gap:10px;margin:4px 2px 12px}
.rst-day-head h2{font-family:var(--font-display,Georgia,serif);font-size:20px;font-weight:600;margin:0;color:var(--ink-900,#1a241c)}
.rst-day-head span{font-size:12.5px;font-weight:700;color:var(--ink-500,#5d6b60)}

/* on desktop, admin uses the week grid below the shared hero */


/* ============================================================
   STICKY HEADER — premium redesign (tb2)
   ============================================================ */
.topbar.tb2{
  position:sticky;top:0;z-index:40;
  display:flex!important;align-items:center;gap:12px;
  padding:calc(14px + var(--safe-t)) 18px 14px!important;
  border:none!important;border-bottom:1px solid rgba(255,255,255,.08)!important;
  border-radius:0 0 24px 24px!important;
  box-shadow:0 10px 26px -14px rgba(8,23,12,.55)!important;
  overflow:hidden;
}
.topbar.tb2::after{opacity:.1!important}
.topbar.tb-admin{background:linear-gradient(125deg,var(--forest-700) 0%,var(--forest-800) 55%,var(--forest-950) 100%)!important}
.topbar.tb-staff{background:linear-gradient(125deg,var(--forest-600) 0%,var(--forest-800) 55%,var(--forest-950) 100%)!important}
.topbar.tb2::before{content:"";position:absolute;inset:0;
  background:radial-gradient(110% 90% at 88% -20%,rgba(149,173,146,.18),transparent 55%);pointer-events:none}
.topbar.tb2 h1{
  font-family:var(--font-display,Georgia,serif)!important;font-weight:600!important;
  font-size:21px!important;letter-spacing:-.02em!important;line-height:1.05!important;
  color:var(--cream-50)!important;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.topbar.tb2 .sub{
  font-size:12px!important;color:var(--sage-300)!important;font-weight:600!important;
  margin-top:2px!important;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.topbar.tb2 .topbar-actions{margin-left:auto;display:flex;align-items:center;gap:9px;position:relative}
.tb2-bell .dot{position:absolute;top:9px;right:9px;width:9px;height:9px;border-radius:50%;
  background:var(--clay-500);border:2px solid var(--forest-800)}
.tb2-profile .avatar{width:42px!important;height:42px!important;border-radius:13px!important;
  border:2px solid rgba(255,255,255,.3)!important;font-size:13px!important;font-weight:800!important;
  box-shadow:0 2px 8px rgba(0,0,0,.25)!important}
.tb2-profile:active{transform:scale(.95)}

@media(min-width:1024px){
  .topbar.tb2{border-radius:0!important;padding:20px 32px!important}
  .topbar.tb2 h1{font-size:24px!important}
}


/* single Availability card on admin home */
.hm-avail{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;
  background:#fff;border:1px solid rgba(20,31,23,.07);border-radius:12px;padding:8px 12px;
  box-shadow:0 1px 6px rgba(20,31,23,.05);transition:transform .12s ease, box-shadow .12s ease}
.hm-avail:active{transform:scale(.99)}
@media(hover:hover){.hm-avail:hover{box-shadow:0 5px 13px rgba(20,31,23,.1)}}
.hm-avail-ic{flex-shrink:0;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;
  background:linear-gradient(150deg,var(--clay-400,#cf8a64),var(--clay-600,#a35a35))}
.hm-avail-ic svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}
.hm-avail-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:0}
.hm-avail-txt strong{font-size:13px;font-weight:800;color:var(--ink-900,#1a241c)}
.hm-avail-txt span{font-size:11px;color:var(--ink-500,#5d6b60)}
.hm-avail-go{flex-shrink:0;color:#c2cabd;transform:rotate(180deg)}
.hm-avail-go svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4}


/* ============================================================
   ADD-SHIFT — employee search bar + dropdown
   ============================================================ */
.emp-field{display:flex;flex-direction:column;gap:7px}
.shift-section-label{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:800;color:var(--forest-700,#1d3d24)}
.shift-section-label svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}

.emp-searchbar{display:flex;align-items:center;gap:9px;width:100%;cursor:pointer;text-align:left;
  background:#fff;border:1.5px solid rgba(20,31,23,.14);border-radius:13px;padding:12px 14px;
  transition:border-color .12s ease, box-shadow .12s ease}
.emp-searchbar:hover{border-color:rgba(45,107,62,.4)}
.emp-searchbar > svg{flex-shrink:0;width:17px;height:17px;fill:none;stroke:#8a958b;stroke-width:2}
.emp-searchbar-txt.has{color:var(--ink-900,#1a241c);font-weight:700}
.emp-searchbar-chev.open{transform:rotate(90deg)}
@keyframes empSlide{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.emp-dropdown .employee-picker{max-height:260px;overflow-y:auto;padding:6px}
.emp-dd-btn{flex:1;height:42px;border:none;border-radius:12px;cursor:pointer;font-size:14px;font-weight:800;transition:transform .1s ease;display:inline-flex;align-items:center;justify-content:center;gap:7px;line-height:1;text-align:center}
.emp-dd-btn svg{width:16px;height:16px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2.2;vertical-align:middle}
.emp-dd-btn:active{transform:scale(.97)}
.emp-dd-btn.clear{background:#fff;color:var(--ink-500,#5d6b60);box-shadow:inset 0 0 0 1.5px rgba(20,31,23,.14)}
.emp-dd-btn.done{background:linear-gradient(150deg,#3f8a52,#2f6b3e);color:#fff!important;box-shadow:0 4px 12px rgba(47,107,62,.3)}
.emp-dd-btn.done svg{stroke:#fff!important}


/* add-client inline form */
.add-client-block{margin-top:10px}
.add-client-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;cursor:pointer;
  background:var(--cream-50,#fbf8f1);border:1.5px dashed rgba(45,107,62,.3);border-radius:13px;padding:11px 14px;
  font-size:13.5px;font-weight:800;color:var(--forest-700,#1d3d24)}
.add-client-toggle > span:first-child{display:inline-flex;align-items:center;gap:7px}
.add-client-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.ac-chev{color:var(--forest-500,#4a7351);transform:rotate(-90deg);transition:transform .2s ease}
.ac-chev.open{transform:rotate(90deg)}
/* ---- refined, compact add-client form ---- */
.add-client-form{margin-top:8px;border:1px solid rgba(45,107,62,.18);border-radius:16px;padding:16px 15px;background:#fff;
  box-shadow:0 8px 24px -14px rgba(20,40,22,.35);animation:empSlide .16s ease;display:flex;flex-direction:column;gap:13px}
.add-client-form .field{display:flex;flex-direction:column;gap:6px;margin:0}
.add-client-form .field label{font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#5d6b58;margin:0}
.add-client-form .input,.add-client-form .addr-input{width:100%;height:46px;padding:0 13px;border-radius:11px;
  border:1.5px solid rgba(45,107,62,.18);background:#fcfdfb;font-size:15px;color:#1a251b;outline:none;
  transition:border-color .15s,box-shadow .15s,background .15s;box-shadow:none;line-height:1.2}
.add-client-form .input::placeholder,.add-client-form .addr-input::placeholder{color:#a4ad9c;font-size:14.5px}
.add-client-form .input:focus,.add-client-form .addr-input:focus{border-color:#4a7351;background:#fff;box-shadow:0 0 0 3px rgba(74,115,81,.14)}
.add-client-form .row2{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:0}
.add-client-foot{display:flex;gap:9px;margin-top:3px}
.add-client-foot .emp-dd-btn{flex:1;height:48px;border-radius:12px;font-size:15px;font-weight:800;cursor:pointer;border:0;display:flex;align-items:center;justify-content:center;gap:7px}
.add-client-foot .clear{background:#fff;border:1.5px solid rgba(45,107,62,.2);color:#4a5a48}
.add-client-foot .done{background:linear-gradient(180deg,#4a7d4e,#2c5a34);color:#fff;box-shadow:0 10px 22px -10px rgba(30,60,30,.5)}
.add-client-foot .done svg{width:16px;height:16px;stroke:#fff}


/* ---- TABLET RANGE (1024–1200px): slim the sidebar so content isn't cramped.
   Landscape iPads were giving ~26% of the screen to navigation; this reclaims it. */
@media(min-width:1024px) and (max-width:1200px){
  :root{--sidebar-w:212px;}
  .sidebar{padding:20px 12px 16px!important}
  .side-link,.nav-link,.sidebar a{font-size:14.5px!important}
  .content{padding-left:clamp(18px,2.4vw,28px)!important;padding-right:clamp(18px,2.4vw,28px)!important}
}
/* ensure header is sticky on desktop across all pages */
@media(min-width:1024px){
  /* Lock the shell to the viewport; scroll happens INSIDE .main. */
  html,body{height:100%!important;overflow:hidden!important}
  #app{height:100dvh!important;overflow:hidden!important}
  .shell{height:100dvh!important;overflow:hidden!important;align-items:stretch}
  .sidebar{height:100dvh!important;flex:0 0 var(--sidebar-w);position:relative;top:auto}
  /* .main is the scroll container */
  .main{height:100dvh!important;overflow-y:auto!important;overflow-x:hidden!important;min-height:0!important}
  /* header sticks to the top of the scrolling .main */
  .topbar{
    position:sticky!important;top:0!important;z-index:120!important;
    transform:none!important;-webkit-transform:none!important;flex:0 0 auto;
  }
  .content{padding-top:24px!important}
  .rwg-wrap{max-height:calc(100dvh - 230px)!important}
  /* modal scroll-lock */
  body.modal-open{overflow:hidden!important}
}


/* ============================================================
   DESKTOP FULL-WIDTH LAYOUTS (≥1024px)
   Use the whole screen; remove narrow centered columns.
   ============================================================ */
@media(min-width:1024px){
  .content{max-width:none!important;width:auto!important;margin:0!important;
    padding:26px clamp(24px,3vw,44px) 48px!important}

  /* ---- HOME: two-column dashboard ---- */
  .hm{max-width:none!important;
    display:grid!important;grid-template-columns:1.55fr 1fr;gap:18px;align-items:start}
  /* hero spans both columns */
  .hm-hero{grid-column:1 / -1}
  /* approvals + updates on the left, availability + roster flow naturally */
  .approvals-panel{grid-column:1 / -1}
  .hm > .updates-panel{grid-column:1}
  .hm-avail{grid-column:2;align-self:start}
  .hm-sec-head{grid-column:1 / -1}
  .home-roster-list{grid-column:1 / -1;
    display:grid!important;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px}
  /* employee next-shift card sits beside updates */
  .hm-next{grid-column:2;align-self:start}

  /* ---- ROSTER: full width grid ---- */
  .rst-hero{max-width:none!important}
  .rwg-wrap{max-width:none!important}
  .rwg-grid{min-width:0!important;width:100%}

  /* ---- BOOKINGS: two-column card grid so the list fills the screen ---- */
  .v213-list{grid-template-columns:repeat(auto-fill,minmax(430px,1fr))!important;align-items:start!important}
  .v213-toolbar{grid-template-columns:1fr auto!important;align-items:center!important}
  .v213-filter-row{overflow:visible!important;flex-wrap:wrap!important}

  /* ---- DIRECTORY: preview lists side by side ---- */
  .directory-preview-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:16px!important;align-items:start!important}

  /* ---- MESSAGES: full-height two-pane that fills the screen ---- */
  .chat-shell{height:calc(100dvh - 150px)!important;max-width:none!important;width:100%!important;gap:18px!important}
  .chat-list{width:340px!important;flex:0 0 340px!important}
  .chat-thread{flex:1!important;min-width:0!important;display:flex!important;flex-direction:column!important}
  .chat-scroll{flex:1!important;min-height:0!important}
  .bubble{max-width:min(70%,640px)!important}

  /* ---- PROFILE: clean wider single column, centered ---- */
  .pf2{max-width:920px!important;margin:0 auto!important}
  .pf2-links{display:grid!important;grid-template-columns:repeat(3,1fr);gap:10px}
  .pf2-card .pf2-row{padding:15px 18px}
}
@media(min-width:1500px){
  .content{padding-left:clamp(28px,4vw,72px)!important;padding-right:clamp(28px,4vw,72px)!important}
}


/* ============================================================
   TIMESHEET — full-screen single-employee focus view (tsf)
   ============================================================ */
.tsf{display:flex;flex-direction:column;gap:14px}
.tsf-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.tsf-back{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid rgba(20,31,23,.1);border-radius:999px;padding:9px 15px;font-size:13px;font-weight:800;color:var(--forest-700,#1d3d24);cursor:pointer;box-shadow:0 2px 7px rgba(20,31,23,.06)}
.tsf-back svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2}
.tsf-back:active{transform:scale(.97)}
.tsf-nav{display:flex;align-items:center;gap:8px}
.tsf-nav-count{font-size:12px;font-weight:800;color:#fff;background:var(--forest-700,#1d3d24);border-radius:999px;padding:5px 11px;min-width:46px;text-align:center}
.tsf-nav-btn{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1.5px solid rgba(45,107,62,.22);border-radius:14px;padding:7px 12px;font-weight:800;color:var(--forest-700,#1d3d24);cursor:pointer;box-shadow:0 3px 12px rgba(20,40,22,.1);transition:transform .1s ease,box-shadow .12s ease,border-color .12s ease}
.tsf-nav-btn:hover{border-color:var(--forest-500,#4a7351);box-shadow:0 6px 18px rgba(20,40,22,.16);transform:translateY(-1px)}
.tsf-nav-btn:active{transform:scale(.97)}
.tsf-nav-btn svg{width:16px;height:16px;fill:none;stroke:var(--forest-500,#4a7351);stroke-width:2.4}
.tsf-nav-av{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font-size:12px;font-weight:800;color:#fff;background:linear-gradient(150deg,var(--forest-500),var(--forest-700));box-shadow:0 2px 6px rgba(20,40,22,.25)}
.tsf-nav-lbl{display:flex;flex-direction:column;line-height:1.05;text-align:left}
.tsf-nav-lbl.right{text-align:right}
.tsf-nav-lbl em{font-style:normal;font-size:8.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--clay-600,#a35a35)}
.tsf-nav-lbl strong{font-size:14px;font-weight:800;color:var(--ink-900,#1a241c);max-width:96px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.tsf-nav-btn:active{transform:scale(.97)}
.tsf-head{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:13px 16px;background:linear-gradient(140deg,var(--forest-600),var(--forest-900));color:#fff;border-radius:20px;padding:18px;box-shadow:0 8px 24px rgba(20,40,22,.18)}
.tsf-av{flex-shrink:0;width:56px;height:56px;border-radius:16px;font-size:19px;font-weight:800;background:rgba(255,255,255,.16)!important;color:#fff!important;border:2px solid rgba(255,255,255,.3);display:grid;place-items:center}
.tsf-head-copy{flex:1;min-width:0}
.tsf-head-copy h2{font-family:var(--font-display,Georgia,serif);font-size:21px;font-weight:600;margin:0;color:#fff;line-height:1.1}
.tsf-head-copy span{display:block;font-size:12.5px;color:rgba(255,255,255,.8);margin-top:3px;line-height:1.35}
.tsf-head-stats{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:2px}
.tsf-hs{background:rgba(255,255,255,.12);border-radius:13px;padding:9px 6px;text-align:center;min-width:0}
.tsf-hs em{display:block;font-style:normal;font-size:9px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:rgba(255,255,255,.7);white-space:nowrap}
.tsf-hs strong{display:block;font-size:15px;font-weight:800;margin-top:2px;white-space:nowrap}
.tsf-hs.warn{background:rgba(232,137,111,.4)}
.tsf-period{font-size:13px;font-weight:700;color:var(--ink-500,#5d6b60);margin:-2px 2px 0}
.tsf-rows{display:flex;flex-direction:column;gap:5px}
.tsf-row{display:flex;align-items:stretch;background:#fff;border:1px solid rgba(20,31,23,.08);border-radius:10px;overflow:hidden}
.tsf-row.today{box-shadow:inset 0 0 0 1.5px rgba(45,107,62,.4)}
.tsf-row-day{flex-shrink:0;width:62px;display:flex;flex-direction:column;justify-content:center;gap:0;padding:6px 8px;background:linear-gradient(160deg,var(--forest-600),var(--forest-800));color:#fff}
.tsf-row.today .tsf-row-day{background:linear-gradient(160deg,var(--forest-500),var(--forest-700))}
.tsf-rd-dow{font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.tsf-rd-num{font-size:16px;font-weight:800;line-height:1}
.tsf-rd-mon{display:none}
.tsf-rd-sum{margin-top:2px;font-size:7.5px;font-weight:800;color:rgba(255,255,255,.85)}
.tsf-row-entries{flex:1;min-width:0;display:flex;flex-direction:column}
.tsf-row-empty{display:flex;align-items:center;font-size:11px;font-weight:600;color:#bcc4b6;padding:8px 12px}
.tsf-row-add{align-self:flex-start;margin:4px 0 5px 12px;height:24px;padding:0 10px;border-radius:7px;border:1px dashed rgba(45,107,62,.3);background:transparent;color:var(--forest-500,#4a7351);cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800}
.tsf-row-add svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.2}
.tsf-row-add:active{transform:scale(.96)}

/* table-style timesheet entry */
.tfe{display:flex;align-items:center;gap:10px;padding:7px 12px;border-bottom:1px solid rgba(20,31,23,.06);cursor:pointer;transition:background .12s ease}
.tfe:last-of-type{border-bottom:none}
.tfe:hover{background:var(--cream-50,#fbf8f1)}
.tfe-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%}
.tfe-dot.pending{background:#c9821a}.tfe-dot.approved{background:#2f8a47}.tfe-dot.paid{background:#3a6fb0}.tfe-dot.flagged{background:#b0392c}
.tfe-client{flex:0 0 150px;font-size:12.5px;font-weight:800;color:var(--ink-900,#1a241c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tfe-time{flex:0 0 96px;font-size:11.5px;font-weight:700;color:var(--forest-700,#1d3d24)}
.tfe-h{flex:0 0 44px;font-size:11.5px;font-weight:800;color:var(--ink-800,#2a3a2c)}
.tfe-km{flex:0 0 44px;font-size:11px;font-weight:800;color:#8a5326}
.tfe-note{flex:1;min-width:0;font-size:11.5px;color:var(--ink-600,#4a5a4c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tfe-note em{color:#c2cabd}
.tfe-status{flex-shrink:0;font-size:8px;padding:2px 7px}
.tfe-actions{flex-shrink:0;display:flex;gap:4px}
.tfe-ic{width:26px;height:26px;border-radius:7px;border:none;cursor:pointer;display:grid;place-items:center;background:rgba(20,31,23,.06);color:var(--forest-700,#1d3d24)}
.tfe-ic svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2}
.tfe-ic.flag{background:#fbe4e0;color:#b0392c}
.tfe-ic.ok{background:#2f6b3e;color:#fff}
.tfe-ic:active{transform:scale(.9)}
@media(max-width:1100px){.tfe-status{display:none}}
@media(max-width:900px){.tfe-note{flex-basis:100%;order:5;white-space:normal}.tfe-client{flex-basis:120px}}


/* timesheet focus — search + results */
.tsf-search{flex:1;max-width:300px;display:flex;align-items:center;gap:7px;background:#fff;border:1px solid rgba(20,31,23,.12);border-radius:999px;padding:7px 14px}
.tsf-search svg{width:15px;height:15px;fill:none;stroke:#8a958b;stroke-width:2;flex-shrink:0}
.tsf-search input{flex:1;border:none;outline:none;background:none;font-size:13px;font-weight:600;color:var(--ink-900,#1a241c)}
.tsf-search input::placeholder{color:#a7b0a6}
.tsf-results{display:flex;flex-wrap:wrap;gap:7px;background:#fff;border:1px solid rgba(20,31,23,.08);border-radius:13px;padding:10px;box-shadow:0 6px 18px rgba(20,40,22,.1)}
.tsf-result{display:inline-flex;align-items:center;gap:7px;background:var(--cream-50,#fbf8f1);border:1px solid rgba(20,31,23,.08);border-radius:999px;padding:5px 13px 5px 5px;font-size:12.5px;font-weight:800;color:var(--ink-900,#1a241c);cursor:pointer}
.tsf-result.active{background:var(--forest-600,#385c3d);color:#fff}
.tsf-result .avatar{width:26px;height:26px;font-size:10px}
.tsf-noresult{font-size:12.5px;color:var(--ink-500,#5d6b60);padding:4px 8px}


/* ============================================================
   EMPLOYEE ROSTER CARD — premium (rc2)
   ============================================================ */
.rc2{position:relative;overflow:hidden;background:#fff;border:1px solid rgba(20,31,23,.07);
  border-radius:20px;padding:14px 14px 12px 0;margin-bottom:12px;
  box-shadow:0 4px 16px rgba(20,40,22,.07)}
.rc2.is-rejected{opacity:.85}
.rc2.is-rejected .rc2-rail{background:#b0392c}
.rc2.is-done{opacity:.8}
.rc2-start{flex-shrink:0;border:none;cursor:pointer;background:linear-gradient(150deg,#3f8a52,#2f6b3e);color:#fff;
  font-size:14px;font-weight:800;padding:11px 20px;border-radius:14px;box-shadow:0 5px 14px rgba(47,107,62,.32)}
.rc2-start.ghost{background:#fff;color:var(--deep);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--solid) 30%,transparent)}
.rc2-start:active{transform:scale(.96)}
.rc2-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;border:none;
  height:42px;border-radius:13px;font-size:14px;font-weight:800;transition:transform .1s ease}
.rc2-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2}
.rc2-btn:active{transform:scale(.97)}
.rc2-btn.accept{background:#fff;color:#2f6b3e;box-shadow:inset 0 0 0 1.5px rgba(47,107,62,.25)}
.rc2-btn.accept.full{background:linear-gradient(150deg,#3f8a52,#2f6b3e);color:#fff;box-shadow:0 5px 14px rgba(47,107,62,.3)}
.rc2-btn.reject{background:#fff;color:#5d6b60;box-shadow:inset 0 0 0 1.5px rgba(20,31,23,.16)}
.rc2-state.pending{background:var(--cream-100,#f3eee2);color:var(--ink-500,#5d6b60)}
.rc2-state.done{background:#e3f0e4;color:#236b34}
.rc2-state.rejected{background:#fbe4e0;color:#b0392c}


/* ============================================================
   ROSTER CARD edges/colours to match reference + tiny admin card
   ============================================================ */
/* soften shared rc2 to match the reference watercolor edge */
.rc2{border-radius:22px;box-shadow:0 5px 18px rgba(20,40,22,.08)}
.rc2-edit{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;border:none;cursor:pointer;
  background:linear-gradient(150deg,var(--solid),var(--deep));color:#fff;
  font-size:12.5px;font-weight:800;padding:9px 15px;border-radius:13px;
  box-shadow:0 4px 11px color-mix(in srgb,var(--solid) 38%,transparent)}
.rc2-edit svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
.rc2-edit:active{transform:scale(.95)}
.rc2-statusbtn.pub{background:linear-gradient(150deg,var(--solid),var(--deep));color:#fff;
  box-shadow:0 4px 11px color-mix(in srgb,var(--solid) 34%,transparent)}
.rc2-statusbtn.draft{background:#fbf0d8;color:#9a6a12}


/* ============================================================
   CHAT CONTACT INFO modal
   ============================================================ */
.cth-card{display:flex;align-items:center;gap:11px;background:none;border:none;cursor:pointer;text-align:left;padding:0;flex:1;min-width:0}
.cth-card .cth-info{min-width:0}
.contact-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:6px 0 16px}
.avatar.xl{width:84px;height:84px;border-radius:26px;font-size:28px;font-weight:800}
.contact-name{font-family:var(--font-display,Georgia,serif);font-size:22px;font-weight:600;color:var(--ink-900,#1a241c)}
.contact-title{font-size:13px;font-weight:600;color:var(--ink-500,#5d6b60);margin-top:-4px}
.contact-actions{display:flex;gap:10px;margin-bottom:16px}
.contact-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  text-decoration:none;border-radius:16px;padding:14px 8px;font-size:13px;font-weight:800;cursor:pointer}
.contact-btn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2}
.contact-btn:active{transform:scale(.97)}
.contact-btn.call{background:linear-gradient(150deg,#3f8a52,#2f6b3e);color:#fff;box-shadow:0 5px 14px rgba(47,107,62,.3)}
.contact-btn.email{background:linear-gradient(150deg,var(--clay-400,#cf8a64),var(--clay-600,#a35a35));color:#fff;box-shadow:0 5px 14px rgba(163,90,53,.3)}
.contact-btn.chat{background:linear-gradient(150deg,var(--sage-500,#7a987b),var(--forest-600,#385c3d));color:#fff;box-shadow:0 5px 14px rgba(56,92,61,.3);border:none}
.contact-info{display:flex;flex-direction:column;gap:8px}
.contact-row{display:flex;align-items:center;gap:12px;text-decoration:none;background:var(--cream-50,#fbf8f1);
  border:1px solid rgba(20,31,23,.06);border-radius:13px;padding:11px 13px}
a.contact-row:active{transform:scale(.99)}


/* prevent horizontal drift, overscroll, and double-tap zoom */
html,body{overscroll-behavior:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html{touch-action:pan-y;overflow-x:hidden}
body{max-width:100vw;overflow-x:hidden;touch-action:pan-y}
*{-webkit-tap-highlight-color:transparent}
/* allow normal typing/selection in inputs */
input,textarea{-webkit-user-select:text;user-select:text;touch-action:auto}


.cv-search{display:flex;align-items:center;gap:8px;margin:0 12px 8px;padding:0 12px;height:42px;background:#fff;border:1.5px solid rgba(20,31,23,.12);border-radius:12px}
.cv-search:focus-within{border-color:var(--forest-500,#4a7351);box-shadow:0 0 0 3px rgba(74,115,81,.18)}
.cv-search-ic{display:flex;flex-shrink:0}
.cv-search-ic svg{width:16px;height:16px;fill:none;stroke:#8a958b;stroke-width:2}
.cv-search input{flex:1;border:0;outline:0;background:transparent;font-size:14px;font-weight:600;color:#1a241c;min-width:0}
.cv-search input::placeholder{color:#a7b0a6}
.cv-search input::-webkit-search-cancel-button{display:none;-webkit-appearance:none}
.cv-search-clear{flex-shrink:0;width:24px;height:24px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;background:rgba(20,31,23,.1);color:#3a4a3c}
.cv-search-clear svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.4}
.cv-people-label{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#9aa090;padding:10px 16px 4px}
.cv-none{font-size:13px;color:#5d6b60;padding:18px 16px}
.cv-person .cv-chev svg{stroke:#4a7351}
.nc-search{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:0 12px;height:44px;background:#fff;border:1.5px solid rgba(20,31,23,.12);border-radius:12px}
.nc-search:focus-within{border-color:var(--forest-500,#4a7351);box-shadow:0 0 0 3px rgba(74,115,81,.18)}
.nc-search-ic{display:flex;flex-shrink:0}
.nc-search-ic svg{width:16px;height:16px;fill:none;stroke:#8a958b;stroke-width:2}
.nc-search input{flex:1;border:0;outline:0;background:transparent;font-size:14.5px;font-weight:600;color:#1a241c;min-width:0}
.nc-search input::placeholder{color:#a7b0a6}
.nc-search input::-webkit-search-cancel-button{display:none;-webkit-appearance:none}
.nc-none{font-size:13px;color:#5d6b60;padding:16px 4px;text-align:center}


/* ============================================================
   EMPLOYEE TIMESHEET REQUESTS — grouped by status
   ============================================================ */
.treq-zone{margin-top:14px;background:#fff;border:1px solid rgba(20,31,23,.08);border-radius:18px;
  padding:14px 13px;box-shadow:0 4px 16px rgba(20,40,22,.06)}
.treq-title{margin-bottom:10px}
.treq-title h3{font-family:var(--font-display,Georgia,serif);font-size:17px;font-weight:600;color:var(--ink-900,#1a241c);margin:0}
.treq-sub{font-size:12px;color:var(--ink-500,#5d6b60);font-weight:600}
.treq-group{margin-top:12px}
.treq-group-head{display:flex;align-items:center;justify-content:space-between;
  font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  padding:6px 4px 8px;color:var(--ink-500,#5d6b60)}
.treq-group-head.pending{color:#9a6a12}
.treq-group-head.approved{color:#236b34}
.treq-group-head.paid{color:#2f6b3e}
.treq-group-head.flagged{color:#b0392c}
.treq-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;
  font-size:11px;font-weight:800;background:rgba(20,31,23,.08);color:var(--ink-700,#3a4a3c)}
.treq-row{width:100%;display:flex;align-items:center;gap:11px;cursor:pointer;text-align:left;
  background:var(--cream-50,#fbf8f1);border:1px solid rgba(20,31,23,.06);border-radius:13px;
  padding:10px 12px;margin-bottom:7px}
.treq-row:active{transform:scale(.995)}
.treq-date{flex-shrink:0;display:flex;flex-direction:column;min-width:74px}
.treq-date strong{font-size:12.5px;font-weight:800;color:var(--forest-700,#1d3d24);line-height:1.2}
.treq-date em{font-style:normal;font-size:10.5px;color:var(--ink-500,#5d6b60);font-weight:600}
.treq-main{flex:1;display:flex;flex-direction:column;min-width:0}
.treq-main strong{font-size:14px;font-weight:700;color:var(--ink-900,#1a241c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.treq-main em{font-style:normal;font-size:11.5px;color:var(--ink-500,#5d6b60);font-weight:600}
.treq-badge{flex-shrink:0;font-size:10.5px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;
  padding:5px 10px;border-radius:999px}
.treq-badge.pending{background:#fbf0d8;color:#9a6a12}
.treq-badge.approved{background:#e3f0e4;color:#236b34}
.treq-badge.paid{background:#dcebe0;color:#2f6b3e}
.treq-badge.flagged{background:#fbe4e0;color:#b0392c}


/* roster employee search */
.rwg-search{display:flex;align-items:center;gap:9px;margin:0 0 12px;padding:0 13px;height:46px;
  background:#fff;border:1.5px solid rgba(20,31,23,.12);border-radius:13px}
.rwg-search:focus-within{border-color:var(--forest-500,#4a7351);box-shadow:0 0 0 3px rgba(74,115,81,.18)}
.rwg-search-ic{display:flex;flex-shrink:0}
.rwg-search-ic svg{width:17px;height:17px;fill:none;stroke:#8a958b;stroke-width:2}
.rwg-search input{flex:1;border:0;outline:0;background:transparent;font-size:14.5px;font-weight:600;color:var(--ink-900,#1a241c);min-width:0}
.rwg-search input::placeholder{color:#a7b0a6}
.rwg-search input::-webkit-search-cancel-button{display:none;-webkit-appearance:none}
.rwg-search-clear{flex-shrink:0;width:26px;height:26px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;background:rgba(20,31,23,.1);color:#3a4a3c}
.rwg-search-clear svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.4}
.rwg-noemp{padding:26px;text-align:center;color:var(--ink-500,#5d6b60);font-weight:600}
.rwg-name[data-action]:hover{background:var(--cream-50,#fbf8f1);border-radius:10px}

/* employee week modal */
.ew-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.ew-name{font-family:var(--font-display,Georgia,serif);font-size:18px;font-weight:600;color:var(--ink-900,#1a241c)}
.ew-sub{font-size:12px;color:var(--ink-500,#5d6b60);font-weight:600}
.ew-total{flex-shrink:0;text-align:center;background:linear-gradient(150deg,#4a8f5a,#2f6b3e);color:#fff;border-radius:13px;padding:9px 13px}
.ew-total strong{display:block;font-size:18px;font-weight:800;line-height:1}
.ew-total em{font-style:normal;font-size:9.5px;text-transform:uppercase;letter-spacing:.03em;color:rgba(255,255,255,.82)}
.ew-days{display:flex;flex-direction:column;gap:7px}
.ew-day{display:flex;align-items:stretch;gap:11px;padding:9px 11px;border-radius:12px;background:var(--cream-50,#fbf8f1);border:1px solid rgba(20,31,23,.07)}
.ew-day.has{background:linear-gradient(120deg,#e8f2e6,#fbf8f1 70%);border-color:rgba(63,107,62,.22)}
.ew-daycol{flex-shrink:0;width:42px;text-align:center;display:flex;flex-direction:column;justify-content:center}
.ew-dow{font-size:10px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-500,#5d6b60)}
.ew-daycol strong{font-size:17px;color:var(--forest-700,#1d3d24)}
.ew-daybody{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px;justify-content:center}
.ew-shift{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ew-time{font-size:12px;font-weight:800;color:var(--forest-700,#1d3d24)}
.ew-client{font-size:13px;font-weight:700;color:var(--ink-900,#1a241c);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ew-pill{font-size:9.5px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;padding:3px 8px;border-radius:999px}
.ew-pill.pub{background:#e3f0e4;color:#236b34}
.ew-pill.draft{background:#fbf0d8;color:#9a6a12}
.ew-none{font-size:12.5px;color:var(--ink-400,#9aa090);font-style:italic}
.ew-dayh{flex-shrink:0;align-self:center;font-size:12px;font-weight:800;color:var(--deep,#2f6b3e)}

/* nicer time dropdowns */
.time-select{cursor:pointer}


/* Melbourne address autocomplete */
.addr-wrap{position:relative}
.addr-suggest{display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:30;
  background:#fff;border:1px solid rgba(20,31,23,.12);border-radius:13px;
  box-shadow:0 10px 28px rgba(20,40,22,.16);overflow:hidden;max-height:240px;overflow-y:auto}
.addr-suggest.open{display:block}
.addr-opt{display:flex;align-items:center;gap:9px;width:100%;text-align:left;cursor:pointer;
  border:0;background:#fff;padding:11px 13px;font-size:13.5px;font-weight:600;color:var(--ink-900,#1a241c);
  border-bottom:1px solid var(--line,rgba(20,31,23,.06))}
.addr-opt:last-child{border-bottom:0}
.addr-opt:hover,.addr-opt:active{background:var(--cream-50,#fbf8f1)}
.addr-opt svg{width:15px;height:15px;flex-shrink:0;fill:none;stroke:var(--forest-600,#385c3d);stroke-width:2}
.addr-opt span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.addr-opt.addr-best{background:var(--sage-50,#eef3e7)}
.addr-opt.addr-best span{font-weight:800;color:var(--forest-700,#1d3d24)}
.addr-best-tag{margin-left:auto;flex-shrink:0;font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--forest-600,#385c3d);background:rgba(56,92,61,.12);padding:2px 7px;border-radius:999px;font-style:normal}


/* tappable address → maps */
.sv-maplink{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;cursor:pointer;
  border:1px solid rgba(63,107,62,.28)!important;background:linear-gradient(120deg,#e8f2e6,#fbf8f1 80%)!important;
  border-radius:13px;transition:transform .12s ease,box-shadow .12s ease}
.sv-maplink:active{transform:scale(.99)}
.sv-maplink .sv-go{margin-left:auto;flex-shrink:0;width:30px;height:30px;border-radius:50%;
  display:grid;place-items:center;background:var(--forest-600,#385c3d);color:#fff;transform:rotate(180deg)}
.sv-maplink .sv-go svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.4}
.sv-dirbtn{margin-top:12px;display:flex;align-items:center;justify-content:center;gap:8px}
.sv-dirbtn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}
.sv-loc-wrap{display:flex;flex-direction:column;gap:6px}
.sv-addr-copy{cursor:pointer}
.sv-addr-copy:active{transform:scale(.99)}
.sv-go-btn{border:0;cursor:pointer;padding:0}
.sv-copy-addr{
  align-self:flex-start;display:inline-flex;align-items:center;gap:6px;
  padding:6px 12px;border-radius:10px;cursor:pointer;
  background:rgba(255,255,255,.7);border:1px solid rgba(63,107,62,.24);
  color:#2e4c2c;font-size:12.5px;font-weight:800;
}
.sv-copy-addr svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
.sv-copy-addr:active{transform:scale(.97)}
/* bigger, easier close X */
.modal-x{width:38px;height:38px;font-size:24px;display:grid;place-items:center;border-radius:12px}
.modal-x:active{background:rgba(20,31,23,.08)}


/* roster employee search at top + result cards */
.rwg-search-top{margin:0 0 12px}
.rwg-results{display:flex;flex-direction:column;gap:8px;margin:0 0 16px}
.rwg-result{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;
  background:#fff;border:1px solid rgba(20,31,23,.1);border-radius:14px;padding:11px 13px;
  box-shadow:0 2px 8px rgba(20,40,22,.05)}
.rwg-result:active{transform:scale(.995)}
.rwg-result-av{flex-shrink:0;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--forest-500,#4a7351),var(--forest-700,#1d3d24));color:#fff;font-weight:800;font-size:15px}
.rwg-result-txt{flex:1;min-width:0;display:flex;flex-direction:column}
.rwg-result-txt strong{font-size:15px;font-weight:800;color:var(--ink-900,#1a241c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rwg-result-txt em{font-style:normal;font-size:12.5px;color:var(--ink-500,#5d6b60);font-weight:600}
.rwg-result-go{flex-shrink:0;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  background:var(--cream-100,#f3eee2);color:var(--forest-700,#1d3d24);transform:rotate(180deg)}
.rwg-result-go svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.4}
.rwg-result-none{padding:18px;text-align:center;color:var(--ink-500,#5d6b60);font-weight:600;font-size:13.5px}


/* ===== Add a shift — redesigned footer buttons ===== */
.shift-modal .modal-foot{display:flex;align-items:center;gap:10px}
.sft-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:42px;border-radius:13px;border:0;cursor:pointer;
  font-size:14.5px;font-weight:800;letter-spacing:-.01em;
  transition:transform .12s ease, box-shadow .14s ease, background .14s ease;
}
.sft-btn:active{transform:translateY(1px) scale(.99)}
.sft-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
/* Cancel — clean outlined */
.sft-cancel{
  flex:0 0 auto;padding:0 20px;background:#fff;color:var(--ink-700,#3a4a3c);
  border:1.5px solid rgba(20,31,23,.16);
}
.sft-cancel:hover{background:var(--cream-50,#fbf8f1)}
/* Save / Create — bold gradient, fills remaining width */
.sft-save{
  flex:1 1 auto;padding:0 22px;color:#fff;
  background:linear-gradient(135deg,#4a8f5a 0%,#2f6b3e 60%,#1d4a2a 100%);
  box-shadow:0 8px 20px rgba(31,80,40,.34), inset 0 1px 0 rgba(255,255,255,.22);
}
.sft-save:hover{box-shadow:0 10px 26px rgba(31,80,40,.42), inset 0 1px 0 rgba(255,255,255,.25)}
.sft-save svg{stroke-width:2.6}
/* Delete — soft red square */
.sft-del{
  flex:0 0 auto;width:50px;padding:0;color:#b0392c;
  background:#fbe7e3;border:1.5px solid rgba(176,57,44,.22);
}
.sft-del:hover{background:#f7d8d2}
.sft-del svg{width:20px;height:20px;stroke:#b0392c}

@media(max-width:480px){
  .sft-btn{height:40px;font-size:13.5px;border-radius:12px}
  .sft-cancel{padding:0 16px}
  .sft-del{width:40px}
}



/* Easy employee login upgrade */
.employee-login-help{
  display:grid;
  gap:6px;
  margin:0 0 14px;
  padding:12px 13px;
  border-radius:17px;
  background:linear-gradient(135deg,#eef6e8,#fff8eb);
  border:1px solid rgba(55,88,49,.16);
  color:#213b22;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
}
.employee-login-help strong{font-size:13px;font-weight:900;color:#17351c;letter-spacing:-.01em}
.employee-login-help span{font-size:12px;font-weight:700;color:#526252;line-height:1.25}
.employee-login-help b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.employee-first-login-btn{
  width:100%;
  min-height:44px;
  margin-top:9px;
  border:1px solid rgba(55,88,49,.18);
  background:#fffaf0;
  border-radius:15px;
  color:#24452a;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
}
.employee-first-login-btn:hover{background:#eef6e8}
.login-share-note,.login-details-card{
  margin-top:10px;
  padding:12px 13px;
  border-radius:16px;
  background:linear-gradient(135deg,#f3eadb,#e6f0df);
  border:1px solid rgba(58,88,54,.14);
  color:#2c4630;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}
.login-details-card{display:grid;gap:6px;margin:12px 0}
.login-details-card strong{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:950;color:#18341d}
.login-details-card strong svg{width:16px;height:16px}
.login-details-card span{font-size:12px;color:#526252}
.login-details-card b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.login-details-card small{font-size:11.5px;color:#687467;font-weight:700}
@media(max-width:480px){.employee-login-help{padding:10px 11px}.employee-first-login-btn{min-height:42px;font-size:12px}}




/* ---- inline style 7 ---- */

/* Make Important Updates unmistakable without changing other sections */
.important-updates-panel{
  position:relative!important;
  overflow:hidden!important;
  border:1.5px solid rgba(179,101,36,.34)!important;
  background:
    radial-gradient(circle at 12% 0%,rgba(255,213,128,.42),transparent 34%),
    linear-gradient(135deg,#fff4da 0%,#f4dfba 48%,#e4efd9 100%)!important;
  box-shadow:0 16px 34px rgba(65,45,18,.13),inset 0 1px 0 rgba(255,255,255,.78)!important;
}
.important-updates-panel .section-head{align-items:center!important;margin-bottom:12px!important}
.important-updates-panel .section-head h2{
  display:flex!important;align-items:center!important;gap:8px!important;
  color:#1d3d24!important;font-weight:950!important;letter-spacing:-.02em!important;
}
.iu-pulse{
  width:24px;height:24px;border-radius:50%;display:inline-grid;place-items:center;
  background:linear-gradient(180deg,#dc8b35,#9c4f24);color:#fff8e8;font-size:15px;font-weight:950;
  box-shadow:0 0 0 5px rgba(205,132,50,.16),0 7px 16px rgba(131,75,28,.22);
}
.iu-count{background:#1d3d24!important;color:#fff8e8!important;border-color:rgba(29,61,36,.25)!important}
.important-updates-panel .upd-item{
  border:1px solid rgba(146,85,34,.18)!important;
  background:rgba(255,252,244,.76)!important;
  box-shadow:0 8px 18px rgba(48,58,38,.07)!important;
}
.important-updates-panel .upd-item.pinned{border-color:rgba(184,103,32,.34)!important;background:#fff7e8!important}
.important-updates-panel .upd-row{min-height:60px!important}
.upd-priority{
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  height:22px;padding:0 8px;border-radius:999px;background:#934b24;color:#fff8e8;
  font-size:8px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;
}
.important-updates-panel .upd-dot{background:linear-gradient(180deg,#dd9243,#9d5527)!important;color:#fff!important;box-shadow:0 7px 16px rgba(139,78,32,.2)!important}

/* Employee mobile roster cards — skinnier and quicker to scan */
@media(max-width:720px){
  .roster-mobile .shift-card{min-height:52px!important;margin-bottom:5px!important;border-radius:13px!important;box-shadow:0 4px 12px rgba(27,43,27,.07)!important}
  .roster-mobile .shift-card .sc-time{width:40px!important;padding:4px 1px!important}
  .roster-mobile .shift-card .sc-dow{font-size:7.5px!important}
  .roster-mobile .shift-card .sc-start{font-size:12px!important}
  .roster-mobile .shift-card .sc-main{padding:5px 7px!important}
  .roster-mobile .shift-card .sc-row1 h3{font-size:11.8px!important;line-height:1.05!important}
  .roster-mobile .shift-card .sc-range{height:20px!important;padding:0 7px!important;font-size:8.8px!important}
  .roster-mobile .shift-card .sc-row2{font-size:9px!important;margin-top:2px!important;line-height:1.2!important}
  .roster-mobile .shift-card .sc-row3{margin-top:3px!important}
  .roster-mobile .shift-card .sc-emp-accept,
  .roster-mobile .shift-card .sc-emp-reject,
  .roster-mobile .shift-card .sc-emp-start,
  .roster-mobile .shift-card .sc-emp-state,
  .roster-mobile .shift-card .sc-locked{height:22px!important;border-radius:8px!important;font-size:8.2px!important}

  .employee-clock-shifts .emp-shift.v28-slim-shift{padding:6px 7px 7px!important;border-radius:13px!important;margin-bottom:6px!important;box-shadow:0 4px 12px rgba(27,43,27,.07)!important}
  .employee-clock-shifts .emp-shift.v28-slim-shift h3{font-size:14px!important;margin-bottom:2px!important}
  .employee-clock-shifts .emp-shift.v28-slim-shift .es-loc{font-size:9.7px!important}
  .employee-clock-shifts .emp-shift.v28-slim-shift .es-note{padding:4px 6px!important;font-size:9.5px!important;margin-top:4px!important}
  .employee-clock-shifts .emp-shift.v28-slim-shift .es-actions{gap:4px!important;margin-top:4px!important;padding-top:4px!important}
  .employee-clock-shifts .emp-shift.v28-slim-shift .ec-reject,
  .employee-clock-shifts .emp-shift.v28-slim-shift .ec-accept,
  .employee-clock-shifts .emp-shift.v28-slim-shift .ec-start,
  .employee-clock-shifts .emp-shift.v28-slim-shift .ec-done,
  .employee-clock-shifts .emp-shift.v28-slim-shift .ec-declined{height:24px!important;border-radius:8px!important;font-size:8.8px!important}
}

/* Mobile speed/responsiveness: reduce expensive paint work on phone only */
@media(max-width:720px){
  *{scroll-behavior:auto!important}
  .content,.chat-scroll,.employee-clock-shifts,.roster-mobile{contain:layout paint style!important}
  .shift-card,.emp-shift.v28-slim-shift,.important-updates-panel .upd-item,.stat,.card,.doc-card{transition:none!important}
  .shift-card:hover,.emp-shift.v28-slim-shift:hover,.card:hover{transform:none!important}
  .shift-card::after,.emp-shift.v28-slim-shift::after{opacity:.25!important}
}

/* Remove awkward white bottom space on mobile by making the bottom area intentional */
@media(max-width:1023px){
  html,body,#app,.shell,.main{
    min-height:100dvh!important;
    background:linear-gradient(180deg,#e8f0e3 0%,#dce8d8 56%,#18321f 100%)!important;
  }
  .main{padding-bottom:0!important}
  .content{min-height:calc(100dvh - 84px)!important;padding-bottom:calc(104px + var(--safe-b))!important;background:transparent!important}
}


/* Easy employee login upgrade */
.employee-login-help{
  display:grid;
  gap:6px;
  margin:0 0 14px;
  padding:12px 13px;
  border-radius:17px;
  background:linear-gradient(135deg,#eef6e8,#fff8eb);
  border:1px solid rgba(55,88,49,.16);
  color:#213b22;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
}
.employee-login-help strong{font-size:13px;font-weight:900;color:#17351c;letter-spacing:-.01em}
.employee-login-help span{font-size:12px;font-weight:700;color:#526252;line-height:1.25}
.employee-login-help b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.employee-first-login-btn{
  width:100%;
  min-height:44px;
  margin-top:9px;
  border:1px solid rgba(55,88,49,.18);
  background:#fffaf0;
  border-radius:15px;
  color:#24452a;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
}
.employee-first-login-btn:hover{background:#eef6e8}
.login-share-note,.login-details-card{
  margin-top:10px;
  padding:12px 13px;
  border-radius:16px;
  background:linear-gradient(135deg,#f3eadb,#e6f0df);
  border:1px solid rgba(58,88,54,.14);
  color:#2c4630;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}
.login-details-card{display:grid;gap:6px;margin:12px 0}
.login-details-card strong{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:950;color:#18341d}
.login-details-card strong svg{width:16px;height:16px}
.login-details-card span{font-size:12px;color:#526252}
.login-details-card b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.login-details-card small{font-size:11.5px;color:#687467;font-weight:700}
@media(max-width:480px){.employee-login-help{padding:10px 11px}.employee-first-login-btn{min-height:42px;font-size:12px}}




/* ---- inline style 8 ---- */

/* Compact Important Updates card — still clear, but no oversized rows */
.important-updates-panel{
  margin-top:4px!important;
  padding:10px 11px 8px!important;
  border-radius:17px!important;
  box-shadow:0 8px 18px rgba(65,45,18,.08),inset 0 1px 0 rgba(255,255,255,.75)!important;
}
.important-updates-panel .section-head{
  min-height:34px!important;
  margin:0 0 7px!important;
  padding-bottom:6px!important;
  border-bottom:1px solid rgba(83,93,62,.14)!important;
}
.important-updates-panel .section-head h2{
  gap:6px!important;
  font-size:18px!important;
  line-height:1.05!important;
}
.important-updates-panel .section-head .btn{
  height:34px!important;
  min-height:34px!important;
  padding:0 13px!important;
  border-radius:13px!important;
  font-size:12.5px!important;
  box-shadow:0 4px 10px rgba(30,55,34,.06)!important;
}
.important-updates-panel .section-head .btn svg{width:15px!important;height:15px!important}
.iu-pulse{width:20px!important;height:20px!important;font-size:13px!important;box-shadow:0 0 0 4px rgba(205,132,50,.12),0 4px 9px rgba(131,75,28,.16)!important}
.iu-count{height:20px!important;min-width:20px!important;padding:0 6px!important;font-size:10px!important}
.important-updates-panel .updates-list{padding-top:0!important;margin:0!important;border-top:0!important}
.important-updates-panel .upd-item{border-radius:0!important;box-shadow:none!important;background:rgba(255,252,244,.66)!important}
.important-updates-panel .upd-item:first-child{border-radius:10px 10px 0 0!important}
.important-updates-panel .upd-item:last-child{border-radius:0 0 10px 10px!important}
.important-updates-panel .upd-row{min-height:44px!important;padding:8px 7px!important;gap:8px!important}
.important-updates-panel .upd-dot{width:27px!important;height:27px!important;border-radius:8px!important;box-shadow:0 3px 8px rgba(139,78,32,.13)!important}
.important-updates-panel .upd-dot svg{width:12px!important;height:12px!important}
.important-updates-panel .upd-priority{height:19px!important;padding:0 7px!important;font-size:7.4px!important;letter-spacing:.06em!important}
.important-updates-panel .upd-title{font-size:12.4px!important;line-height:1.05!important;gap:5px!important}
.important-updates-panel .upd-meta{font-size:10px!important;line-height:1.05!important}
.important-updates-panel .upd-pin{font-size:7.4px!important;padding:1px 6px!important}
.important-updates-panel .upd-chev{width:18px!important;height:18px!important}
.important-updates-panel .upd-chev svg{width:12px!important;height:12px!important}

/* Mobile admin roster: cleaner, more professional Add shift button */
@media(max-width:720px){
  .rst-hero.admin .rst-hero-foot{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;margin-top:11px!important}
  .rst-hero.admin .rst-hs{min-height:46px!important;border-radius:12px!important;padding:7px 5px!important;background:rgba(255,255,255,.11)!important}
  .rst-hero.admin .rst-hs strong{font-size:16px!important}
  .rst-hero.admin .rst-hs em{font-size:8.4px!important;line-height:1.05!important}
  .rst-hero.admin .rst-hero-add{
    grid-column:1 / -1!important;
    min-height:42px!important;
    border-radius:15px!important;
    padding:0 14px!important;
    justify-content:center!important;
    background:linear-gradient(135deg,#f6ead5 0%,#fffdf6 52%,#e4eddd 100%)!important;
    color:#173a24!important;
    border:1px solid rgba(255,255,255,.45)!important;
    box-shadow:0 8px 16px rgba(9,27,13,.20),inset 0 1px 0 rgba(255,255,255,.88)!important;
    font-size:13px!important;
    font-weight:950!important;
  }
  .rst-hero.admin .rst-hero-add .rha-ic{
    width:25px!important;height:25px!important;
    background:linear-gradient(145deg,#3f8f50,#1f6531)!important;
    box-shadow:0 3px 9px rgba(31,101,49,.28)!important;
  }
  .rst-hero.admin .rst-hero-add svg{width:14px!important;height:14px!important;stroke-width:2.8!important}
  .rst-hero.admin .rst-hero-add:active{transform:scale(.985)!important}
}

/* Faster/smoother phone interaction without changing layout */
@media(max-width:1023px){
  button,a,[data-action],input,textarea,select{touch-action:manipulation!important}
  .content{overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important}
  .topbar,.mobile-nav,.important-updates-panel,.rst-hero,.shift-card,.rcard,.card,.updates-panel{
    -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  }
  .shift-card,.rcard,.updates-panel,.important-updates-panel,.stat,.card,.rst-hero{
    transition:transform .08s ease!important;
  }
  .mobile-nav .mtab.active{transition:transform .08s ease!important}
}
@media(max-width:430px){
  .important-updates-panel{padding:9px 10px 7px!important;border-radius:16px!important}
  .important-updates-panel .section-head h2{font-size:16.5px!important}
  .important-updates-panel .section-head .btn{height:31px!important;min-height:31px!important;padding:0 10px!important;font-size:11.5px!important}
  .important-updates-panel .upd-row{min-height:40px!important;padding:7px 6px!important;gap:7px!important}
  .important-updates-panel .upd-priority{display:none!important}
  .important-updates-panel .upd-title{font-size:12px!important}
  .important-updates-panel .upd-dot{width:23px!important;height:23px!important}
}


/* Easy employee login upgrade */
.employee-login-help{
  display:grid;
  gap:6px;
  margin:0 0 14px;
  padding:12px 13px;
  border-radius:17px;
  background:linear-gradient(135deg,#eef6e8,#fff8eb);
  border:1px solid rgba(55,88,49,.16);
  color:#213b22;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
}
.employee-login-help strong{font-size:13px;font-weight:900;color:#17351c;letter-spacing:-.01em}
.employee-login-help span{font-size:12px;font-weight:700;color:#526252;line-height:1.25}
.employee-login-help b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.employee-first-login-btn{
  width:100%;
  min-height:44px;
  margin-top:9px;
  border:1px solid rgba(55,88,49,.18);
  background:#fffaf0;
  border-radius:15px;
  color:#24452a;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
}
.employee-first-login-btn:hover{background:#eef6e8}
.login-share-note,.login-details-card{
  margin-top:10px;
  padding:12px 13px;
  border-radius:16px;
  background:linear-gradient(135deg,#f3eadb,#e6f0df);
  border:1px solid rgba(58,88,54,.14);
  color:#2c4630;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}
.login-details-card{display:grid;gap:6px;margin:12px 0}
.login-details-card strong{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:950;color:#18341d}
.login-details-card strong svg{width:16px;height:16px}
.login-details-card span{font-size:12px;color:#526252}
.login-details-card b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.login-details-card small{font-size:11.5px;color:#687467;font-weight:700}
@media(max-width:480px){.employee-login-help{padding:10px 11px}.employee-first-login-btn{min-height:42px;font-size:12px}}




/* ---- inline style 9 ---- */

@media(max-width:720px){
  .hm-hero.admin .hm-hero-add{
    flex-direction:row!important;
    align-items:center!important;
    justify-content:center!important;
    gap:6px!important;
    min-width:92px!important;
    height:34px!important;
    padding:0 10px 0 8px!important;
    border-radius:14px!important;
    background:linear-gradient(135deg,#f7b24a 0%,#c87627 42%,#9c4f1f 100%)!important;
    color:#fffaf0!important;
    border:1px solid rgba(255,224,169,.72)!important;
    box-shadow:0 8px 16px rgba(91,45,15,.24),inset 0 1px 0 rgba(255,255,255,.34)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    font-size:11px!important;
    font-weight:950!important;
    letter-spacing:.01em!important;
    text-shadow:0 1px 1px rgba(64,31,10,.22)!important;
  }
  .hm-hero.admin .hm-hero-add::before{
    content:""!important;
    width:20px!important;
    height:20px!important;
    border-radius:8px!important;
    background:rgba(255,255,255,.20)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.22)!important;
    position:absolute!important;
    left:7px!important;
    pointer-events:none!important;
  }
  .hm-hero.admin .hm-hero-add svg{
    width:14px!important;
    height:14px!important;
    stroke-width:2.8!important;
    flex:0 0 auto!important;
    position:relative!important;
    z-index:1!important;
    margin-right:2px!important;
  }
  .hm-hero.admin .hm-hero-add span{
    display:inline-block!important;
    line-height:1!important;
    white-space:nowrap!important;
    position:relative!important;
    z-index:1!important;
  }
  .hm-hero.admin .hm-hero-add:active{
    transform:scale(.97)!important;
  }
}


/* Easy employee login upgrade */
.employee-login-help{
  display:grid;
  gap:6px;
  margin:0 0 14px;
  padding:12px 13px;
  border-radius:17px;
  background:linear-gradient(135deg,#eef6e8,#fff8eb);
  border:1px solid rgba(55,88,49,.16);
  color:#213b22;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
}
.employee-login-help strong{font-size:13px;font-weight:900;color:#17351c;letter-spacing:-.01em}
.employee-login-help span{font-size:12px;font-weight:700;color:#526252;line-height:1.25}
.employee-login-help b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.employee-first-login-btn{
  width:100%;
  min-height:44px;
  margin-top:9px;
  border:1px solid rgba(55,88,49,.18);
  background:#fffaf0;
  border-radius:15px;
  color:#24452a;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
}
.employee-first-login-btn:hover{background:#eef6e8}
.login-share-note,.login-details-card{
  margin-top:10px;
  padding:12px 13px;
  border-radius:16px;
  background:linear-gradient(135deg,#f3eadb,#e6f0df);
  border:1px solid rgba(58,88,54,.14);
  color:#2c4630;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}
.login-details-card{display:grid;gap:6px;margin:12px 0}
.login-details-card strong{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:950;color:#18341d}
.login-details-card strong svg{width:16px;height:16px}
.login-details-card span{font-size:12px;color:#526252}
.login-details-card b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.login-details-card small{font-size:11.5px;color:#687467;font-weight:700}
@media(max-width:480px){.employee-login-help{padding:10px 11px}.employee-first-login-btn{min-height:42px;font-size:12px}}




/* ---- inline style 10 ---- */

@media(max-width:720px){
  .hm-hero.admin .hm-hero-add{
    position:relative!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    width:auto!important;
    min-width:0!important;
    height:29px!important;
    padding:0 10px 0 6px!important;
    border-radius:999px!important;
    background:linear-gradient(135deg,#fffaf0 0%,#f6e2b8 100%)!important;
    color:#173f25!important;
    border:1px solid rgba(244,190,89,.95)!important;
    box-shadow:0 7px 15px rgba(0,0,0,.16),0 0 0 2px rgba(255,243,208,.16),inset 0 1px 0 rgba(255,255,255,.82)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    font-size:10.5px!important;
    font-weight:950!important;
    letter-spacing:.01em!important;
    text-shadow:none!important;
  }
  .hm-hero.admin .hm-hero-add::before{
    content:none!important;
  }
  .hm-hero.admin .hm-hero-add::after{
    content:""!important;
    position:absolute!important;
    right:5px!important;
    top:5px!important;
    width:5px!important;
    height:5px!important;
    border-radius:50%!important;
    background:#24c064!important;
    box-shadow:0 0 0 3px rgba(36,192,100,.18)!important;
    pointer-events:none!important;
  }
  .hm-hero.admin .hm-hero-add svg{
    width:20px!important;
    height:20px!important;
    padding:4px!important;
    box-sizing:border-box!important;
    border-radius:50%!important;
    background:linear-gradient(135deg,#ef9f29 0%,#ae5c20 100%)!important;
    color:#fffaf0!important;
    stroke:#fffaf0!important;
    stroke-width:3!important;
    flex:0 0 20px!important;
    position:relative!important;
    z-index:1!important;
    margin:0!important;
    box-shadow:0 3px 8px rgba(111,54,18,.22),inset 0 1px 0 rgba(255,255,255,.30)!important;
  }
  .hm-hero.admin .hm-hero-add span{
    display:inline-block!important;
    position:relative!important;
    z-index:1!important;
    line-height:1!important;
    white-space:nowrap!important;
    padding-right:3px!important;
  }
  .hm-hero.admin .hm-hero-add:active{
    transform:translateY(1px) scale(.98)!important;
  }
}
@media(max-width:1023px){
  .sidebar{display:none}
  body.chat-thread-open::before{display:none}
  .dock-inner{display:flex;align-items:stretch;width:100%;max-width:520px}

  .dock-ico{display:grid;place-items:center;width:24px;height:24px}
  .dock-ico svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.9;
    stroke-linecap:round;stroke-linejoin:round;display:block}
  .dock-lbl{
    font-size:10.5px;font-weight:700;letter-spacing:.005em;line-height:1;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
  }

  /* active: white + small green dot underneath */
  .dock-tab.is-active{color:#fff}
  .dock-tab.is-active .dock-ico svg{stroke-width:2.2}
  .dock-tab.is-active::after{
    content:"";position:absolute;bottom:1px;left:50%;transform:translateX(-50%);
    width:5px;height:5px;border-radius:50%;
    background:#7fe39a;box-shadow:0 0 7px rgba(127,227,154,.7);
  }

  .content{padding-bottom:calc(86px + var(--safe-b))!important}
  body.chat-thread-open .dock{display:none!important}
}
@keyframes ndialPulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(2.6);opacity:0}}
.ndial-ticks line.maj{stroke:rgba(233,205,134,.9)}
.ndial-stop:active{transform:translateY(1px) scale(.99)}



/* time entry modal — standout header */
.te-head{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 12px;overflow:hidden;
  background:
    radial-gradient(120% 90% at 90% -10%, rgba(143,224,163,.28), transparent 55%),
    linear-gradient(135deg,#2c6a3e 0%,#1a4429 55%,#12351f 100%);
  color:#fff;border-radius:20px;padding:18px 18px;margin-bottom:14px;
  border:1px solid rgba(150,200,160,.2);
  box-shadow:0 14px 30px rgba(8,30,16,.34), inset 0 1px 0 rgba(255,255,255,.1)}
.te-head::before{content:"";position:absolute;width:130px;height:130px;border-radius:50%;
  background:rgba(143,224,163,.22);filter:blur(40px);top:-40px;right:-30px;pointer-events:none}
.te-client{position:relative;font-family:var(--font-display,Georgia,serif);font-size:21px;font-weight:700;line-height:1.1}
.te-sub{position:relative;grid-column:1;font-size:12.5px;color:rgba(220,236,222,.78);font-weight:600;margin-top:2px}
.te-hours{position:relative;grid-row:1 / span 2;grid-column:2;text-align:right;align-self:center}
.te-hours strong{display:block;font-size:30px;font-weight:850;line-height:1;text-shadow:0 2px 8px rgba(0,0,0,.25)}
.te-hours span{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:rgba(220,236,222,.72);font-weight:800}
.te-status{position:relative;grid-column:1;justify-self:start;margin-top:8px}
/* approved pill — bolder inside the dark header */
.te-status.pill-green{
  display:inline-flex;align-items:center;gap:6px;
  background:linear-gradient(135deg,#8fe0a3,#4caf68)!important;color:#0c2a16!important;
  border:0!important;font-weight:850;padding:6px 13px;font-size:12px;
  box-shadow:0 4px 12px rgba(40,120,60,.4)}
.te-status.pill-green::before{content:"✓";font-weight:900;font-size:12px}
/* request/admin variants without the hours block */
.te-head-req{grid-template-columns:1fr}
.te-head-req .te-status{margin-top:10px}
.te-head-req .te-status.pill-green::before{content:""}


/* keep on-shift clock fully visible on short phones */
@media(max-height:740px){
}


/* ============================================================
   PERFORMANCE & SMOOTHNESS
   ============================================================ */
*{
  -webkit-tap-highlight-color:transparent;   /* no grey flash on tap */
}
html{
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body{
  overscroll-behavior-y:none;                  /* stop rubber-band jank */
}
.content,.modal-body,.chat-scroll,.page,#page{
  -webkit-overflow-scrolling:touch;            /* momentum scroll on iOS */
  overscroll-behavior:contain;
}
/* snappy, consistent press feedback on all tappable elements */
button,.btn,[data-action],a{
  -webkit-touch-callout:none;
  transition:transform .12s ease, opacity .12s ease, background-color .16s ease, box-shadow .16s ease;
}
button:active,.btn:active,[data-action]:active{transform:scale(.97)}
/* keep already-styled controls from double-shrinking */
.dock-tab:active,.ndial-stop:active,.sft-save:active,.sft-cancel:active{transform:scale(.97)}

/* promote only genuinely-animated layers to GPU to avoid repaint jank */
.modal,.modal-overlay,.dock,.ndial-prog{
  will-change:transform;
  transform:translateZ(0);
}

/* respect users who prefer less motion */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.05ms!important}
  html{scroll-behavior:auto}
}


/* ============================================================
   IMPORTANT UPDATES — clean professional redesign (final)
   ============================================================ */
.important-updates-panel{
  background:#ffffff !important;
  border:1px solid rgba(20,40,22,.08) !important;
  border-radius:16px !important;
  padding:11px 11px 9px !important;
  box-shadow:0 6px 18px rgba(20,40,22,.06) !important;
}
.important-updates-panel .section-head{
  display:flex !important;align-items:center !important;gap:8px !important;
  min-height:0 !important;margin:0 0 9px !important;padding:0 !important;border-bottom:0 !important;
}
.important-updates-panel .section-head h2{
  display:flex !important;align-items:center !important;gap:8px !important;
  font-family:var(--font-display,Georgia,serif) !important;
  font-size:15px !important;font-weight:700 !important;color:#16271a !important;margin:0 !important;
}
/* tidy accent icon instead of the heavy orange ! */
.iu-pulse{
  width:21px !important;height:21px !important;border-radius:7px !important;
  display:grid !important;place-items:center !important;
  background:linear-gradient(140deg,#3f8f50,#1f6531) !important;color:#fff !important;
  font-size:12px !important;font-weight:800 !important;
  box-shadow:0 3px 8px rgba(31,101,49,.26) !important;
}
.iu-count{
  height:19px !important;min-width:19px !important;padding:0 6px !important;
  display:grid !important;place-items:center !important;border-radius:999px !important;
  background:#eef3ea !important;color:#1d3d24 !important;border:0 !important;
  font-size:10.5px !important;font-weight:800 !important;
}
.important-updates-panel .section-head .btn{
  height:30px !important;min-height:30px !important;padding:0 12px !important;border-radius:9px !important;
  background:#f1f5ee !important;color:#1d3d24 !important;border:1px solid rgba(20,40,22,.08) !important;
  font-size:12px !important;font-weight:800 !important;box-shadow:none !important;
}

.important-updates-panel .updates-list{
  display:flex !important;flex-direction:column !important;gap:6px !important;
  padding:0 !important;margin:0 !important;border-top:0 !important;list-style:none !important;
}
.important-updates-panel .upd-item{
  background:#fbfaf6 !important;border:1px solid rgba(20,40,22,.07) !important;
  border-radius:11px !important;box-shadow:none !important;overflow:hidden !important;
  position:relative !important;
}
.important-updates-panel .upd-item::before{
  content:"" !important;position:absolute !important;left:0 !important;top:0 !important;bottom:0 !important;
  width:3px !important;background:#cbd5c2 !important;
}
.important-updates-panel .upd-item.pinned{background:#fffdf5 !important;border-color:rgba(201,162,78,.32) !important}
.important-updates-panel .upd-item.pinned::before{background:linear-gradient(180deg,#e9cd86,#c9a24e) !important}

.important-updates-panel .upd-row{
  display:flex !important;align-items:center !important;gap:9px !important;
  min-height:0 !important;padding:8px 10px 8px 12px !important;width:100% !important;
}
/* small status dot instead of big square icon */
.important-updates-panel .upd-dot{
  width:26px !important;height:26px !important;border-radius:8px !important;flex-shrink:0 !important;
  display:grid !important;place-items:center !important;
  background:#eef3ea !important;color:#2c6139 !important;box-shadow:none !important;
}
.important-updates-panel .upd-item.pinned .upd-dot{background:#f6edd6 !important;color:#9a7320 !important}
.important-updates-panel .upd-dot svg{width:13px !important;height:13px !important;fill:none !important;stroke:currentColor !important;stroke-width:2 !important}
.important-updates-panel .upd-priority{display:none !important}  /* drop the redundant "Important" tag */
.important-updates-panel .upd-text{display:flex !important;flex-direction:column !important;gap:2px !important;min-width:0 !important;flex:1 !important}
.important-updates-panel .upd-title{
  display:flex !important;align-items:center !important;gap:6px !important;
  font-size:12.5px !important;font-weight:800 !important;color:#16271a !important;line-height:1.2 !important;
}
.important-updates-panel .upd-pin{
  font-size:7.5px !important;font-weight:800 !important;letter-spacing:.06em !important;
  background:#f1e2bd !important;color:#8a6516 !important;padding:1px 6px !important;border-radius:999px !important;font-style:normal !important;
}
.important-updates-panel .upd-meta{font-size:10.5px !important;color:#7c8a76 !important;font-weight:600 !important;line-height:1.2 !important}
.important-updates-panel .upd-chev{
  width:20px !important;height:20px !important;flex-shrink:0 !important;color:#aab4a3 !important;
  display:grid !important;place-items:center !important;
}
.important-updates-panel .upd-chev svg{width:13px !important;height:13px !important;transform:rotate(180deg) !important}
.important-updates-panel .upd-item.open .upd-chev{transform:rotate(-90deg) !important}
.important-updates-panel .upd-item.open{background:#f4f8f0 !important}
.important-updates-panel .upd-body{padding:0 12px 10px 12px !important}
.important-updates-panel .upd-body p{font-size:12.5px !important;color:#3a4a3c !important;line-height:1.45 !important;margin:0 !important}


/* ============================================================
   ROSTER CARDS — round badge, bold + sleek edges, mobile only
   ============================================================ */
@media(max-width:1023px){
.rcard{
  position:relative !important;display:block !important;
  border-radius:16px !important;padding:10px 12px !important;margin-bottom:8px !important;overflow:hidden !important;
  background:
    linear-gradient(140deg, var(--solid) 0%, var(--deep) 100%) !important;
  border:0 !important;
  box-shadow:0 11px 26px color-mix(in srgb,var(--deep) 55%,transparent) !important;
  cursor:pointer !important;-webkit-tap-highlight-color:transparent !important;
  transition:transform .14s ease, box-shadow .14s ease !important;
}
/* sleek double-edged line tracing the whole card */
.rcard::before{
  content:"" !important;position:absolute !important;inset:4px !important;border-radius:13px !important;pointer-events:none !important;z-index:3 !important;
  border:1px solid rgba(255,255,255,.32) !important;
  box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.12) !important;
}
/* sleek double-line accent on the left edge */
.rcard{padding-left:17px !important}
.rcard .rc-main::before{
  content:"" !important;position:absolute !important;left:-9px !important;top:4px !important;bottom:4px !important;width:3px !important;border-radius:3px !important;
  background:rgba(255,255,255,.85) !important;z-index:5 !important;
  box-shadow:4px 0 0 0 rgba(255,255,255,.3) !important;
}
/* glossy top highlight for depth */
.rcard::after{display:none !important}
.rcard.is-draft{background:linear-gradient(140deg, color-mix(in srgb,var(--solid) 88%,#000 0%), var(--deep)) !important;opacity:.96 !important}
/* Admin draft (unpublished) shift = white card that stands out */
.rcard.is-admin.is-draft{
  background:#ffffff !important;border:2px dashed color-mix(in srgb,var(--solid) 55%,#fff) !important;opacity:1 !important;
  box-shadow:0 6px 18px rgba(20,40,22,.12) !important;
}
.rcard.is-admin.is-draft::after{display:none !important}
.rcard.is-admin.is-draft .rc-badge{background:linear-gradient(160deg,var(--solid),var(--deep)) !important;border:0 !important;color:#fff !important;box-shadow:0 4px 10px color-mix(in srgb,var(--deep) 45%,transparent) !important}
.rcard.is-admin.is-draft .rc-badge strong,.rcard.is-admin.is-draft .rc-badge .rc-ap{color:#fff !important;text-shadow:none !important}
.rcard.is-admin.is-draft .rc-badge .rc-dur{background:#fff !important;color:var(--deep) !important}
.rcard.is-admin.is-draft .rc-info h3{background:transparent !important;border:0 !important;box-shadow:none !important;color:#1a241c !important;text-shadow:none !important;padding-left:0 !important}
.rcard.is-admin.is-draft .rc-time-range{color:var(--deep) !important;text-shadow:none !important}
.rcard.is-admin.is-draft .rc-meta{color:#5d6b60 !important;text-shadow:none !important}
.rcard.is-admin.is-draft .rc-main::before{background:color-mix(in srgb,var(--solid) 70%,#fff) !important;box-shadow:none !important}
.rcard.is-admin.is-draft::before{display:none !important}
.rcard.is-admin.is-draft .rc-draft-tag{display:inline-flex !important}
.rcard:active{transform:scale(.99) !important}

.rc-main{position:relative !important;z-index:2 !important;display:flex !important;align-items:center !important;gap:11px !important;flex-wrap:wrap !important}
.is-emp .rc-actions-row{flex-shrink:0 !important;margin-top:0 !important}
.is-emp .rc-actions-row .rc-act{flex:0 0 auto !important}

/* bold round badge — sleek glass ring */
.rc-badge{
  position:relative !important;
  width:60px !important;height:60px !important;border-radius:50% !important;flex-shrink:0 !important;
  background:
    radial-gradient(circle at 50% 30%, rgba(255,255,255,.28), rgba(255,255,255,.1) 60%, rgba(255,255,255,.04)) !important;
  border:1.5px solid rgba(255,255,255,.4) !important;color:#fff !important;
  display:flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important;gap:0 !important;
  box-shadow:0 6px 16px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.4), inset 0 0 0 4px rgba(255,255,255,.05) !important;
  backdrop-filter:blur(2px) !important;
}
.rc-badge strong{font-family:var(--font-display,Georgia,serif) !important;font-size:16px !important;font-weight:800 !important;line-height:1 !important;letter-spacing:-.02em !important;color:#fff !important;text-shadow:0 1px 4px rgba(0,0,0,.5) !important}
.rc-badge .rc-ap{font-size:7.5px !important;font-weight:850 !important;opacity:1 !important;letter-spacing:.12em !important;color:#fff !important;margin-top:1px !important;text-shadow:0 1px 2px rgba(0,0,0,.4) !important}
.rc-badge .rc-dur{
  margin-top:3px !important;font-size:8.5px !important;font-weight:900 !important;letter-spacing:.02em !important;color:var(--deep) !important;white-space:nowrap !important;
  background:#fff !important;padding:1px 8px !important;border-radius:999px !important;line-height:1.3 !important;
  box-shadow:0 2px 5px rgba(0,0,0,.3) !important;
}

.rc-info{flex:1 !important;min-width:0 !important;display:flex !important;flex-direction:column !important;gap:3px !important}
.rc-info h3{
  font-family:var(--font-display,Georgia,serif) !important;font-size:16.5px !important;font-weight:800 !important;color:#fff !important;
  letter-spacing:-.01em !important;line-height:1.2 !important;margin:0 0 1px !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;
  display:inline-block !important;align-self:flex-start !important;max-width:100% !important;
  padding:3px 12px !important;border-radius:999px !important;
  background:linear-gradient(135deg, rgba(255,255,255,.32), rgba(255,255,255,.16)) !important;border:1px solid rgba(255,255,255,.45) !important;
  box-shadow:0 2px 8px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.35) !important;
  text-shadow:0 1px 3px rgba(0,0,0,.5) !important;
}
.rc-time-range{font-size:13.5px !important;font-weight:850 !important;color:#fff !important;letter-spacing:.01em !important;line-height:1.25 !important;margin-top:2px !important;text-shadow:0 1px 3px rgba(0,0,0,.55) !important}
.rc-meta{font-size:12px !important;font-weight:700 !important;color:#fff !important;line-height:1.3 !important;min-width:0 !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;text-shadow:0 1px 3px rgba(0,0,0,.5) !important;opacity:.96 !important}
.rc-status{
  align-self:flex-start !important;display:inline-flex !important;align-items:center !important;gap:3px !important;margin-top:4px !important;
  font-size:9px !important;font-weight:850 !important;letter-spacing:.06em !important;text-transform:uppercase !important;
  padding:3px 11px !important;border-radius:999px !important;
}
.rc-status svg{width:10px !important;height:10px !important;fill:none !important;stroke:currentColor !important;stroke-width:2.4 !important}
.rc-status.pub,.rc-status.accepted{background:#e6f2e8 !important;color:#247038 !important}
.rc-status.draft{background:#fff5e2 !important;color:#946b1f !important;border:0 !important}
.rc-status.rejected{background:#fbe6e2 !important;color:#b23b2d !important}

.rc-foot,.rc-avs,.rc-names,.rc-top,.rc-av,.rc-end{display:none !important}

/* actions inline on the right */
.rc-actions-row{flex-shrink:0 !important;display:flex !important;gap:8px !important;align-items:center !important}
.rc-actions-row .rc-act{
  height:36px !important;min-width:40px !important;padding:0 13px !important;border-radius:11px !important;font-weight:800 !important;font-size:13px !important;border:0 !important;
  display:flex !important;align-items:center !important;justify-content:center !important;gap:5px !important;cursor:pointer !important;white-space:nowrap !important;
  background:#fff !important;color:var(--deep) !important;box-shadow:0 4px 10px rgba(20,40,22,.12) !important;
}
.rc-actions-row svg{width:16px !important;height:16px !important;fill:none !important;stroke:currentColor !important;stroke-width:2.4 !important}
.rc-actions-row .rc-act-edit{width:36px !important;padding:0 !important}
.rc-actions-row .rc-pub.is-pub,.rc-actions-row .rc-pub.is-unpub{background:#fff !important;color:var(--deep) !important}
/* employee */
.rc-actions-row .rc-reject{flex:1 1 auto !important;min-width:64px !important;padding:0 12px !important;background:#fff !important;color:#d63b2a !important;border:0 !important;box-shadow:0 4px 12px rgba(0,0,0,.24), inset 0 0 0 2px #f1b4ab !important}
.rc-actions-row .rc-reject svg{stroke:#d63b2a !important;stroke-width:2.8 !important}
.rc-actions-row .rc-accept,.rc-actions-row .rc-start{flex:1 1 auto !important;min-width:76px !important}
.rc-actions-row .rc-accept,.rc-actions-row .rc-start{background:#fff !important;color:var(--deep) !important;border:0 !important;box-shadow:0 4px 12px rgba(0,0,0,.28), inset 0 0 0 1.5px rgba(255,255,255,.6) !important;font-weight:850 !important}
.rc-actions-row .rc-accept svg,.rc-actions-row .rc-start svg{stroke:var(--deep) !important}
.rc-actions-row .rc-emp-state{height:36px !important;padding:0 12px !important;border-radius:11px !important;display:flex !important;align-items:center !important;justify-content:center !important;background:#fff !important;color:var(--deep) !important;font-weight:800 !important;font-size:13px !important;box-shadow:0 4px 10px rgba(20,40,22,.1) !important}
/* employee cards a touch skinnier */
.is-emp.rcard{padding-top:8px !important;padding-bottom:8px !important;margin-bottom:7px !important}
.is-emp .rc-badge{width:54px !important;height:54px !important}
.is-emp .rc-badge strong{font-size:14px !important}
.is-emp .rc-info h3{font-size:15px !important;padding:2px 9px !important}
.is-emp .rc-time-range{font-size:12px !important}
.is-emp .rc-meta{font-size:11px !important}
.is-emp .rc-actions-row .rc-act{height:32px !important;font-size:12px !important}
.is-emp .rc-actions-row .rc-reject{width:auto !important;min-width:54px !important;padding:0 11px !important;font-size:12px !important;font-weight:800 !important;gap:0 !important}
.is-emp .rc-actions-row .rc-reject svg{display:none !important}
.is-emp .rc-actions-row .rc-accept,.is-emp .rc-actions-row .rc-start{min-width:0 !important;padding:0 11px !important}

/* ============================================================
   SKINNY SHIFT CARD (v134) — slimmer, more professional
   Trims the time badge, tightens vertical spacing and softens
   the oversized title pill so each roster card is noticeably
   shorter while keeping the same premium look.
   ============================================================ */
.rcard{padding-top:9px !important;padding-bottom:9px !important;margin-bottom:7px !important;border-radius:14px !important}
.rc-main{gap:10px !important;row-gap:6px !important}
.rc-info{gap:2px !important}
.rc-badge{width:50px !important;height:50px !important}
.rc-badge strong{font-size:14px !important}
.rc-badge .rc-ap{font-size:7px !important;margin-top:0 !important}
.rc-badge .rc-dur{margin-top:2px !important;font-size:8px !important;padding:1px 7px !important}
.rc-info h3{font-size:15px !important;padding:2px 10px !important;line-height:1.15 !important;margin:0 !important}
.rc-time-range{font-size:12.5px !important;margin-top:1px !important;line-height:1.2 !important}
.rc-meta{font-size:11.5px !important;line-height:1.25 !important}
.rc-status{margin-top:3px !important;padding:2px 9px !important}
/* employee variant a touch tighter still */
.is-emp.rcard{padding-top:7px !important;padding-bottom:7px !important;margin-bottom:6px !important}
.is-emp .rc-badge{width:46px !important;height:46px !important}
.is-emp .rc-badge strong{font-size:13px !important}
.is-emp .rc-info h3{font-size:14.5px !important;padding:2px 9px !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;word-break:normal !important;line-height:1.2 !important;max-width:100% !important}
.is-emp .rc-main{gap:9px !important;row-gap:4px !important}
.is-emp .rc-meta{line-height:1.15 !important;margin-top:2px !important}
.is-emp .rc-time-range{margin-top:1px !important}
/* center the STAFF pill content nicely */
.is-emp .rc-meta .rc-staff-line{justify-content:center !important;align-self:flex-start !important}
.is-emp .rc-meta .rc-staff-line .rc-staff-names{text-align:center !important}

/* ============================================================
   REJECTED SHIFT CARD — greyed out & crossed out (v134)
   Matches the reference: the whole card is desaturated to a calm
   grey/taupe, the time, client name and time-range are struck
   through, and a clear "✕ REJECTED" pill sits top-right. Reads
   instantly as "this shift was declined / no longer active".
   ============================================================ */
.rcard.is-rejected{
  position:relative !important;
  background:linear-gradient(150deg,#efeceb 0%,#e7e3e1 100%) !important;
  filter:grayscale(1) !important;opacity:.96 !important;
  border:1px solid rgba(90,78,74,.20) !important;
  box-shadow:0 4px 12px rgba(60,50,46,.10) !important;
  padding-left:18px !important;
}
.rcard.is-rejected .rc-main{opacity:1 !important;}
.rcard.is-rejected::before{
  inset:4px !important;border:1px solid rgba(90,78,74,.12) !important;box-shadow:none !important;
}
/* solid grey left rail — the main "rejected" signal */
.rcard.is-rejected .rc-main::before{
  left:-10px !important;width:4px !important;border-radius:4px !important;
  background:#6f635f !important;box-shadow:none !important;
}
/* time badge: muted grey, with the time struck through */
.rcard.is-rejected .rc-badge{
  background:linear-gradient(160deg,#8a807c,#6f635f) !important;
  box-shadow:0 3px 9px rgba(70,60,56,.22) !important;
  filter:none !important;color:#fff !important;
}
.rcard.is-rejected .rc-badge strong{text-decoration:line-through !important;text-decoration-thickness:2px !important;color:#fff !important;}
.rcard.is-rejected .rc-badge .rc-ap{color:rgba(255,255,255,.92) !important;}
.rcard.is-rejected .rc-badge .rc-dur{background:rgba(255,255,255,.92) !important;color:#5a4e4a !important;}
/* client name: struck through, muted */
.rcard.is-rejected .rc-info h3{
  background:transparent !important;border:0 !important;box-shadow:none !important;text-shadow:none !important;
  padding-left:0 !important;color:#5a4e4a !important;
  text-decoration:line-through !important;text-decoration-thickness:2px !important;text-decoration-color:rgba(90,78,74,.7) !important;
}
/* time-range: struck through, muted */
.rcard.is-rejected .rc-time-range{
  color:#8a807c !important;text-shadow:none !important;
  text-decoration:line-through !important;text-decoration-thickness:1.5px !important;text-decoration-color:rgba(138,128,124,.7) !important;
}
.rcard.is-rejected .rc-meta{color:#8a807c !important;text-shadow:none !important;}
.rcard.is-rejected .rc-addr-line{color:#8a807c !important;}
/* staff pill stays readable on the grey card (not crossed out) */
.rcard.is-rejected .rc-staff-line{
  background:#f4f2f1 !important;border:1px solid rgba(90,78,74,.16) !important;box-shadow:0 2px 6px rgba(60,50,46,.08) !important;
}
.rcard.is-rejected .rc-staff-line .rc-staff-names{color:#5a4e4a !important;}
.rcard.is-rejected .rc-staff-line .rc-staff-kicker{background:#6f635f !important;color:#fff !important;}
/* hide the old inline status pill and dead actions — the pill + strikes say it */
.rcard.is-rejected .rc-status.rejected{display:none !important;}
.rcard.is-rejected .rc-actions-row{display:none !important;}

/* Clean "✕ REJECTED" pill, top-right */
.rc-reject-stamp{
  position:absolute !important;top:10px !important;right:10px !important;left:auto !important;
  transform:none !important;z-index:6 !important;pointer-events:none !important;
  display:inline-flex !important;align-items:center !important;gap:5px !important;
  font-family:"Inter Tight",-apple-system,BlinkMacSystemFont,sans-serif !important;
  font-size:11px !important;font-weight:800 !important;letter-spacing:.06em !important;
  text-transform:uppercase !important;color:#fff !important;
  padding:5px 11px 5px 9px !important;border-radius:999px !important;
  border:0 !important;
  background:linear-gradient(150deg,#8a807c,#6f635f) !important;
  box-shadow:0 3px 8px rgba(70,60,56,.30) !important;
  text-shadow:none !important;white-space:nowrap !important;
}
.rc-reject-stamp::before{
  content:"" !important;width:14px !important;height:14px !important;flex-shrink:0 !important;
  background:no-repeat center/14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") !important;
}
@media(max-width:390px){
  .rc-reject-stamp{font-size:10px !important;padding:4px 9px 4px 7px !important;}
  .rc-reject-stamp::before{width:12px !important;height:12px !important;background-size:12px !important;}
}


/* ============================================================
   REJECTED SHIFT CARD — desktop + all sizes (v134)
   The mobile rejected styling above lives inside a max-width:1023px
   media query, so on desktop the card kept its normal colours. This
   unscoped block applies the same greyed + crossed-out treatment on
   every screen size, including the desktop week/matrix views.
   ============================================================ */
.rcard.is-rejected{
  position:relative !important;
  background:linear-gradient(150deg,#efeceb 0%,#e7e3e1 100%) !important;
  filter:grayscale(1) !important;opacity:.96 !important;
  border:1px solid rgba(90,78,74,.20) !important;
  box-shadow:0 4px 12px rgba(60,50,46,.10) !important;
}
.rcard.is-rejected .rc-main{opacity:1 !important;}
.rcard.is-rejected .rc-badge{
  background:linear-gradient(160deg,#8a807c,#6f635f) !important;
  box-shadow:0 3px 9px rgba(70,60,56,.22) !important;filter:none !important;color:#fff !important;
}
.rcard.is-rejected .rc-badge strong{text-decoration:line-through !important;text-decoration-thickness:2px !important;color:#fff !important;}
.rcard.is-rejected .rc-badge .rc-ap{color:rgba(255,255,255,.92) !important;}
.rcard.is-rejected .rc-badge .rc-dur{background:rgba(255,255,255,.92) !important;color:#5a4e4a !important;}
.rcard.is-rejected .rc-info h3{
  background:transparent !important;border:0 !important;box-shadow:none !important;text-shadow:none !important;
  color:#5a4e4a !important;text-decoration:line-through !important;text-decoration-thickness:2px !important;
  text-decoration-color:rgba(90,78,74,.7) !important;
}
.rcard.is-rejected .rc-time-range{
  color:#8a807c !important;text-shadow:none !important;
  text-decoration:line-through !important;text-decoration-thickness:1.5px !important;text-decoration-color:rgba(138,128,124,.7) !important;
}
.rcard.is-rejected .rc-meta,.rcard.is-rejected .rc-addr-line{color:#8a807c !important;text-shadow:none !important;}
.rcard.is-rejected .rc-staff-line{
  background:#f4f2f1 !important;border:1px solid rgba(90,78,74,.16) !important;box-shadow:0 2px 6px rgba(60,50,46,.08) !important;
}
.rcard.is-rejected .rc-staff-line .rc-staff-names{color:#5a4e4a !important;}
.rcard.is-rejected .rc-staff-line .rc-staff-kicker{background:#6f635f !important;color:#fff !important;}
.rcard.is-rejected .rc-status.rejected{display:none !important;}
.rcard.is-rejected .rc-actions-row{display:none !important;}
}


/* shift colour picker */
.colour-picker{display:flex;flex-direction:column;gap:7px}
.colour-swatches{display:flex;flex-wrap:wrap;gap:6px}
.colour-sw{width:22px;height:22px;border-radius:7px;cursor:pointer;border:2px solid #fff;
  box-shadow:0 1px 4px rgba(20,40,22,.16), 0 0 0 1px rgba(20,40,22,.08);transition:transform .12s ease, box-shadow .12s ease}
.colour-sw:active{transform:scale(.9)}
.colour-sw.is-sel{box-shadow:0 0 0 2px #fff, 0 0 0 4px #2c6a3e;transform:scale(1.08)}
@media(hover:hover){.colour-sw:hover{transform:scale(1.1)}}
.shift-colour-section{display:block;padding:11px 13px;border:1px solid rgba(20,40,22,.1);border-radius:13px;background:#fbfaf6;margin-bottom:10px}
.shift-colour-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13.5px;font-weight:800;color:#16271a;margin-bottom:9px}
.shift-colour-head svg{width:15px;height:15px;vertical-align:-2px;margin-right:5px}
.shift-colour-current{font-size:12px;font-weight:800;color:#2c6a3e;background:#e6f2e8;padding:3px 11px;border-radius:999px}


/* ===== Employee home: compact so two roster cards show, mobile ===== */
@media(max-width:1023px){
  .hm{gap:9px !important}
  .hm-hero{padding:8px 12px 7px !important;border-radius:13px !important}
  .hm-hero h1{font-size:17px !important;line-height:1.05 !important}
  .hm-hero .hm-eyebrow{font-size:9px !important}
  .hm-hero p{font-size:11px !important;margin-top:0 !important}
  .hm-hero-stats{margin-top:5px !important;gap:5px !important}
  .hm-hs{padding:5px 4px !important}
  .hm-hs strong{font-size:14px !important}
  .hm-hs em{font-size:8px !important}
  .hm-hero-add{padding:6px 9px !important}

  /* next shift compact */
  .hm-next-rail{flex:0 0 72px !important}
  .hm-next-rt{font-size:18px !important}
  .hm-next-in{padding:12px 14px !important}
  .hm-next-client{font-size:19px !important}
  .hm-next-cta{padding:11px !important;font-size:13px !important}

  /* updates compact but fully visible */
  .important-updates-panel{padding:8px 9px 7px !important}
  .important-updates-panel .section-head{margin-bottom:7px !important}
  .important-updates-panel .updates-list{gap:5px !important}
  .important-updates-panel .upd-item{border-radius:9px !important}
  .important-updates-panel .upd-row{padding:6px 9px 6px 11px !important}

  /* tighter section heading + list */
  .hm-sec-head{margin:1px 0 0 !important}
  .hm-sec-head h2{font-size:16px !important}
  .home-roster-list{display:flex !important;flex-direction:column !important;gap:7px !important}
}


/* updates read/unread states */
.upd-item.unread .upd-title{font-weight:850 !important}
.upd-item.read{opacity:.82}
.upd-item.read .upd-title{font-weight:600 !important;color:#5a6a5d !important}
.upd-unread-dot{width:8px;height:8px;border-radius:50%;background:#e2483b;flex-shrink:0;box-shadow:0 0 0 3px rgba(226,72,59,.16);margin-right:2px}
.upd-new{font-size:8px !important;font-weight:850 !important;letter-spacing:.06em !important;background:#e2483b !important;color:#fff !important;padding:1px 6px !important;border-radius:999px !important;font-style:normal !important;margin-left:6px}
.iu-count.all-read{background:#e4ebe0 !important;color:#7c8a76 !important}
.upd-item.read .upd-dot{opacity:.7}


/* ===== Desktop admin home roster cards (min-width:1024px) ===== */
@media(min-width:1024px){
  .home-roster-list{display:grid !important;grid-template-columns:1fr 1fr !important;gap:14px !important}
  .home-roster-list .rcard{
    position:relative !important;display:flex !important;align-items:center !important;gap:14px !important;
    background:linear-gradient(135deg, color-mix(in srgb,var(--pop) 30%,#fff), #fff 80%) !important;
    border:1px solid color-mix(in srgb,var(--pop) 40%,#fff) !important;border-left:5px solid var(--solid) !important;
    border-radius:16px !important;padding:14px 16px !important;
    box-shadow:0 4px 14px color-mix(in srgb,var(--pop) 14%,transparent) !important;overflow:hidden !important;
    transition:transform .14s ease, box-shadow .14s ease !important;
  }
  @media(hover:hover){.home-roster-list .rcard:hover{transform:translateY(-2px) !important;box-shadow:0 10px 24px color-mix(in srgb,var(--pop) 22%,transparent) !important}}
  .home-roster-list .rcard .rc-main{display:flex !important;align-items:center !important;gap:14px !important;flex:1 !important;min-width:0 !important}
  .home-roster-list .rc-badge{
    width:64px !important;height:64px !important;border-radius:50% !important;flex-shrink:0 !important;
    background:radial-gradient(circle at 50% 32%, color-mix(in srgb,var(--solid) 88%,#fff), var(--deep)) !important;color:#fff !important;
    display:flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important;
    box-shadow:0 5px 12px color-mix(in srgb,var(--deep) 45%,transparent), 0 0 0 3px rgba(255,255,255,.6) !important;
  }
  .home-roster-list .rc-badge strong{font-family:var(--font-display,Georgia,serif) !important;font-size:17px !important;font-weight:800 !important;line-height:1 !important;color:#fff !important}
  .home-roster-list .rc-badge .rc-ap{font-size:8px !important;font-weight:800 !important;letter-spacing:.06em !important;margin-top:2px !important;color:#fff !important}
  .home-roster-list .rc-badge .rc-dur{margin-top:3px !important;font-size:10px !important;font-weight:900 !important;color:var(--deep) !important;background:#fff !important;padding:1px 8px !important;border-radius:999px !important}
  .home-roster-list .rc-info{flex:1 !important;min-width:0 !important;display:flex !important;flex-direction:column !important;gap:3px !important}
  .home-roster-list .rc-info h3{
    display:inline-block !important;align-self:flex-start !important;font-family:var(--font-display,Georgia,serif) !important;font-size:16px !important;font-weight:800 !important;
    color:#fff !important;background:linear-gradient(135deg,var(--solid),var(--deep)) !important;padding:2px 11px !important;border-radius:8px !important;
    margin:0 !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;max-width:100% !important;
    box-shadow:0 2px 7px color-mix(in srgb,var(--solid) 35%,transparent) !important;
  }
  .home-roster-list .rc-time-range{font-size:13px !important;font-weight:850 !important;color:var(--deep) !important}
  .home-roster-list .rc-meta{font-size:12.5px !important;font-weight:600 !important;color:#5d6b60 !important}
  .home-roster-list .rc-status{
    align-self:flex-start !important;font-size:9px !important;font-weight:850 !important;letter-spacing:.05em !important;text-transform:uppercase !important;
    padding:3px 10px !important;border-radius:999px !important;
  }
  .home-roster-list .rc-status.pub,.home-roster-list .rc-status.accepted{background:#e6f2e8 !important;color:#247038 !important}
  .home-roster-list .rc-status.draft{background:#fff5e2 !important;color:#946b1f !important}
  /* Desktop admin: published = coloured, draft = white standout (consistent with mobile) */
  .home-roster-list .rcard.is-published{
    background:linear-gradient(135deg, color-mix(in srgb,var(--pop) 38%,#fff), #fff 82%) !important;
    border:1px solid color-mix(in srgb,var(--pop) 45%,#fff) !important;border-left:5px solid var(--solid) !important;
  }
  .home-roster-list .rcard.is-draft{
    background:#ffffff !important;
    border:2px dashed color-mix(in srgb,var(--solid) 50%,#fff) !important;border-left:2px dashed color-mix(in srgb,var(--solid) 50%,#fff) !important;
    box-shadow:0 4px 14px rgba(20,40,22,.08) !important;
  }
  .home-roster-list .rcard.is-draft .rc-info h3{background:transparent !important;color:#1a241c !important;box-shadow:none !important;padding-left:0 !important}
  .home-roster-list .rcard.is-draft .rc-time-range{color:var(--deep) !important}
  .home-roster-list .rc-draft-tag{align-self:flex-start !important;font-size:9.5px !important;font-weight:850 !important;letter-spacing:.04em !important;text-transform:uppercase !important;color:var(--deep) !important;background:color-mix(in srgb,var(--solid) 14%,#fff) !important;border:1px solid color-mix(in srgb,var(--solid) 30%,#fff) !important;padding:3px 10px !important;border-radius:999px !important;display:inline-flex !important;align-items:center !important;gap:4px !important;margin-top:4px !important}
  .home-roster-list .rc-draft-tag svg{width:12px !important;height:12px !important;stroke:currentColor !important;fill:none !important}
  .home-roster-list .rc-actions-row{flex-shrink:0 !important;display:flex !important;gap:8px !important;align-items:center !important}
  .home-roster-list .rc-actions-row .rc-act{
    height:40px !important;border:0 !important;border-radius:11px !important;font-weight:800 !important;font-size:13px !important;padding:0 16px !important;
    display:flex !important;align-items:center !important;justify-content:center !important;gap:6px !important;cursor:pointer !important;
    background:#fff !important;color:var(--deep) !important;box-shadow:0 2px 8px rgba(20,40,22,.1) !important;
  }
  .home-roster-list .rc-actions-row .rc-act svg{width:15px !important;height:15px !important;fill:none !important;stroke:currentColor !important;stroke-width:2.2 !important}
  .home-roster-list .rc-actions-row .rc-act-edit{width:40px !important;padding:0 !important;border:1px solid color-mix(in srgb,var(--solid) 25%,#fff) !important}
  .home-roster-list .rc-actions-row .rc-pub.is-pub{background:linear-gradient(135deg,var(--solid),var(--deep)) !important;color:#fff !important}
}


/* group privacy toggle */
.grp-type-toggle{display:flex;gap:7px}
.grp-type-opt{flex:1;display:flex;align-items:center;gap:7px;text-align:left;padding:8px 11px;border-radius:10px;border:1.5px solid #d9e2d3;background:#fff;cursor:pointer;transition:all .14s ease}
.grp-type-opt svg{width:15px;height:15px;flex-shrink:0;fill:none;stroke:#7c8a76;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.grp-type-opt span{display:flex;flex-direction:column;min-width:0}
.grp-type-opt strong{font-size:13px;font-weight:800;color:#1a241c;line-height:1.1}
.grp-type-opt em{display:none}
.grp-type-opt.on{border-color:var(--forest-500,#2e7b43);background:#eef6ee}
.grp-type-opt.on svg{stroke:var(--forest-600,#256139)}
.grp-type-opt.on strong{color:var(--forest-700,#1d542d)}

.grp-type-hint{font-size:11px;color:#7c8a76;margin-top:6px;font-weight:600}

/* Employee timesheet focus bar — fit prev/next on mobile */
@media(max-width:1023px){
  .tsf-bar{flex-wrap:wrap;gap:9px}
  .tsf-search{order:2;flex:1 1 100%;min-width:0}
  .tsf-back{order:1;flex-shrink:0}
  .tsf-nav{order:3;flex:1 1 100%;justify-content:space-between;gap:8px}
  .tsf-nav-btn{flex:1;min-width:0;justify-content:center;padding:8px 10px;border-radius:12px}
  .tsf-nav-btn .tsf-nav-av{display:none}
  .tsf-nav-btn .tsf-nav-lbl em{font-size:8px}
  .tsf-nav-btn .tsf-nav-lbl strong{max-width:74px;font-size:12.5px}
  .tsf-nav-count{flex-shrink:0;min-width:52px}
}


/* ===== Chat: make thread fill screen on mobile so composer is always reachable ===== */
@media(max-width:1023px){
  body.chat-thread-open{overflow:hidden !important;background:#143a26 !important}
  body.chat-thread-open::after{display:none !important}
  html:has(body.chat-thread-open){background:#143a26 !important}
  body.chat-thread-open .content{padding:0 !important;overflow:visible !important;contain:none !important}
  body.chat-thread-open .page{opacity:1 !important}
  body.chat-thread-open .chat-shell{
    position:fixed !important;left:0 !important;right:0 !important;top:0 !important;bottom:0 !important;
    height:100dvh !important;max-height:100dvh !important;
    margin:0 !important;padding:0 !important;gap:0 !important;border-radius:0 !important;z-index:1000 !important;background:var(--paper) !important;
    display:flex !important;flex-direction:column !important;
  }
  body.chat-thread-open .chat-shell .chat-list{display:none !important}
  body.chat-thread-open .chat-shell .chat-thread{
    display:flex !important;flex-direction:column !important;flex:1 1 auto !important;min-height:0 !important;height:100% !important;
    border-radius:0 !important;border:0 !important;background:var(--paper) !important;
  }
  /* header frozen at top */
  body.chat-thread-open .chat-thread-head{flex:0 0 auto !important;padding-top:calc(12px + var(--safe-t,0px)) !important}
  /* ONLY this area scrolls */
  body.chat-thread-open .chat-scroll{flex:1 1 auto !important;min-height:0 !important;overflow-y:auto !important;-webkit-overflow-scrolling:touch !important}
  /* composer frozen at bottom */
  body.chat-thread-open .chat-composer{
    flex:0 0 auto !important;align-items:center !important;position:relative !important;
    padding:7px 11px 7px !important;background:linear-gradient(180deg,#1d4d33,#143a26) !important;border-top:1px solid rgba(255,255,255,.12) !important;
    box-shadow:0 -6px 18px rgba(8,30,16,.3) !important;opacity:1 !important;
  }
  /* small dark strip only for the home-indicator zone (not a big gap) */
  body.chat-thread-open .chat-composer::after{
    content:"" !important;position:absolute !important;left:0 !important;right:0 !important;top:100% !important;height:18px !important;background:#143a26 !important;
  }
  body.chat-thread-open .chat-composer .input{
    min-height:38px !important;max-height:120px !important;font-size:16px !important;line-height:1.3 !important;
    background:rgba(255,255,255,.12) !important;border:1.5px solid rgba(255,255,255,.28) !important;border-radius:18px !important;
    color:#fff !important;opacity:1 !important;padding:8px 14px !important;resize:none !important;overflow-y:auto !important;
  }
  body.chat-thread-open .chat-composer .input::placeholder{color:rgba(255,255,255,.6) !important;opacity:1 !important}
  body.chat-thread-open .chat-composer .cattach{color:#1d4d33 !important;opacity:1 !important;align-self:center !important;margin-bottom:0 !important}
  body.chat-thread-open .chat-composer .csend{background:#fff !important;color:#1d4d33 !important;opacity:1 !important;align-self:center !important}
  body.chat-thread-open .dock{display:none !important}
  .cth-back{display:grid !important}
}



.rc-draft-tag{align-self:flex-start;font-size:9px;font-weight:850;letter-spacing:.04em;text-transform:uppercase;color:var(--deep,#0e3019);background:color-mix(in srgb,var(--solid,#2f7345) 14%,#fff);border:1px solid color-mix(in srgb,var(--solid,#2f7345) 30%,#fff);padding:3px 9px;border-radius:999px;display:inline-flex;align-items:center;gap:4px;margin-top:3px}
.rc-draft-tag svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2}


/* Easy employee login upgrade */
.employee-login-help{
  display:grid;
  gap:6px;
  margin:0 0 14px;
  padding:12px 13px;
  border-radius:17px;
  background:linear-gradient(135deg,#eef6e8,#fff8eb);
  border:1px solid rgba(55,88,49,.16);
  color:#213b22;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
}
.employee-login-help strong{font-size:13px;font-weight:900;color:#17351c;letter-spacing:-.01em}
.employee-login-help span{font-size:12px;font-weight:700;color:#526252;line-height:1.25}
.employee-login-help b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.employee-first-login-btn{
  width:100%;
  min-height:44px;
  margin-top:9px;
  border:1px solid rgba(55,88,49,.18);
  background:#fffaf0;
  border-radius:15px;
  color:#24452a;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
}
.employee-first-login-btn:hover{background:#eef6e8}
.login-share-note,.login-details-card{
  margin-top:10px;
  padding:12px 13px;
  border-radius:16px;
  background:linear-gradient(135deg,#f3eadb,#e6f0df);
  border:1px solid rgba(58,88,54,.14);
  color:#2c4630;
  font-size:12px;
  font-weight:700;
  line-height:1.35;
}
.login-details-card{display:grid;gap:6px;margin:12px 0}
.login-details-card strong{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:950;color:#18341d}
.login-details-card strong svg{width:16px;height:16px}
.login-details-card span{font-size:12px;color:#526252}
.login-details-card b{color:#17351c;background:rgba(85,115,62,.13);padding:1px 6px;border-radius:7px}
.login-details-card small{font-size:11.5px;color:#687467;font-weight:700}
@media(max-width:480px){.employee-login-help{padding:10px 11px}.employee-first-login-btn{min-height:42px;font-size:12px}}


/* Desktop stability fix: keeps the page width stable and stops visible shake if a sync refresh occurs. */
@media (min-width: 900px){
  html{scrollbar-gutter: stable;}
  body{overflow-y: scroll;}
  .page{animation:none !important;}
}


/* ===== Design 1 — minimal stacked clock card ===== */
.clk1{background:linear-gradient(160deg,#235138,#0e2c1b);border-radius:24px;padding:22px;color:#fff;box-shadow:0 16px 36px rgba(8,30,16,.3);margin-bottom:16px}
.clk1-live{display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase;color:#cdeccf;background:rgba(255,255,255,.1);padding:6px 13px;border-radius:999px;margin-bottom:18px}
.clk1-dot{width:8px;height:8px;border-radius:50%;background:#62d98a;box-shadow:0 0 0 4px rgba(98,217,138,.25);animation:clk1pulse 2s ease-in-out infinite}
@keyframes clk1pulse{0%,100%{box-shadow:0 0 0 3px rgba(98,217,138,.28)}50%{box-shadow:0 0 0 7px rgba(98,217,138,.06)}}
.clk1-big{font-size:52px;font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.clk1-elapsed{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-top:6px}
.clk1-bar{height:6px;border-radius:99px;background:rgba(255,255,255,.14);margin:18px 0;overflow:hidden}
.clk1-bar>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#e9c87e,#d8a85a);transition:width .8s ease}
.clk1-ends{display:flex;justify-content:space-between;font-size:12.5px;color:rgba(255,255,255,.72);font-weight:600}
.clk1-job{font-family:var(--font-display,Georgia,serif);font-size:22px;font-weight:700;margin:14px 0 3px;color:#fff}
.clk1-addr{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:rgba(255,255,255,.72);cursor:pointer}
.clk1-addr svg{width:14px;height:14px;fill:none;stroke:#9ad6a8;stroke-width:2}
.clk1-twin{display:flex;gap:10px;margin:16px 0 16px}
.clk1-t{flex:1;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:11px 13px}
.clk1-v{font-size:16px;font-weight:800;color:#fff}
.clk1-k{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:2px}
.clk1-stop{width:100%;background:#fff;color:#1a3b26;border:0;padding:15px;border-radius:15px;font-size:15px;font-weight:850;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.2)}
.clk1-stop svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2}
.clk1-stop:active{transform:scale(.99)}


/* ============================================================
   FINAL bottom-strip fix — overrides ALL earlier conflicting
   html/body/#app/.shell/.main background rules. Root layers are
   SOLID dark green so the iOS home-indicator safe-area can never
   show white under the dock. The light page colour lives on .main
   as a fixed (non-scrolling) backdrop so it never bleeds to the edge.
   ============================================================ */
@media(max-width:1023px){
  html,body,#app,.shell{background:#11301d !important}
  .main{
    background:#11301d !important;
    position:relative !important;
  }
  /* light backdrop behind the content, stopping above the dock */
  .main::before{
    content:"" !important;position:fixed !important;left:0 !important;right:0 !important;top:0 !important;
    bottom:calc(78px + var(--safe-b)) !important;
    background:linear-gradient(180deg,#e8f0e3 0%,#dce8d8 60%,#d3e0cf 100%) !important;
    z-index:-1 !important;pointer-events:none !important;
  }
  body.chat-thread-open .main::before{display:none !important}
}


/* recognised-user greeting on login */
.lc-recognised{max-height:0;overflow:hidden;transition:max-height .25s ease,margin .25s ease;margin:0}
.lc-recognised.show{max-height:90px;margin:0 0 14px}
.lc-rec-inner{display:flex;align-items:center;gap:11px;background:linear-gradient(135deg,#e8f2ea,#f3f8f0);border:1px solid rgba(47,138,71,.2);border-radius:14px;padding:11px 13px}
.lc-rec-av{width:38px;height:38px;border-radius:11px;background:linear-gradient(150deg,#2f8a47,#0e2c1b);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px;flex-shrink:0}
.lc-rec-inner b{display:block;font-size:14px;color:#15331f;font-weight:800}
.lc-rec-inner em{font-style:normal;font-size:12px;color:#5a6a5d}

/* invite-employee modal */
.invite-box{background:#f1f5ee;border:1px solid #dde6d8;border-radius:14px;padding:6px 14px;margin-bottom:12px}
.invite-line{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid #e6ece1;font-size:13px}
.invite-line:last-child{border-bottom:0}
.invite-line span{color:#7c8a76;font-weight:600}
.invite-line b{color:#15331f;font-weight:800;font-family:ui-monospace,Menlo,monospace}
.invite-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.invite-btn{display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:13px;padding:14px;font-size:14px;font-weight:800;cursor:pointer}
.invite-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}
.invite-btn.sms{background:linear-gradient(135deg,#2f8a47,#176030);color:#fff}
.invite-btn.email{background:linear-gradient(135deg,#235138,#0e2c1b);color:#fff}
.invite-btn.share{background:#e9c87e;color:#2a1c05}
.invite-btn.copy{background:#eef1e8;color:#2a3a2c}
.invite-btn:active{transform:scale(.98)}



/* ---- inline style 11 ---- */

/* Employee invite / install helper */
.install-prompt-card{
  margin-top:14px;
  padding:14px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:20px;
  background:rgba(255,255,255,.08);
  box-shadow:0 14px 30px rgba(0,0,0,.12);
  display:grid;
  gap:10px;
}
.install-prompt-card.installed{display:none!important;}
.install-prompt-card.invite-open{outline:2px solid rgba(216,196,142,.55);}
.ipc-text{display:grid;gap:3px;text-align:left;color:#f7f2e5;}
.ipc-text strong{font-weight:900;font-size:14px;}
.ipc-text span{font-size:12px;line-height:1.35;opacity:.84;}
.install-guide{display:grid;gap:12px;line-height:1.45;}
.install-guide ol{margin:6px 0 0 20px;padding:0;display:grid;gap:8px;}
.install-guide li{padding-left:3px;}
.install-ok{padding:12px;border-radius:16px;background:rgba(53,120,77,.12);border:1px solid rgba(53,120,77,.24);font-weight:900;color:#2f6e45;}
.invite-box .invite-line b{word-break:break-word;}
@media(max-width:760px){
  .install-prompt-card{border-radius:18px;padding:12px;}
  .install-guide ol{margin-left:18px;}
}


/* ---- inline style 12 ---- */

/* FINAL FIX — stable mobile dock and admin delete for Important Updates */
@media (max-width:1023px){
  :root{ --ww-mobile-dock-height: 54px; }
  .mobile-nav .mtab:active,.mobile-nav .mtab.active{transform:none!important;}
  .mobile-nav .mtab.active{
    background:linear-gradient(180deg,#5fbf76,#3f9a57)!important;
    color:#fff!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 3px 10px rgba(0,0,0,.22)!important;
  }
  .mobile-nav .nav-badge{top:3px!important;right:12px!important;margin:0!important;transform:none!important;}
  .content{padding-bottom:calc(var(--ww-mobile-dock-height) + env(safe-area-inset-bottom,0px) + 16px)!important;}
  body.chat-thread-open .mobile-nav{display:none!important;}
}
@media(max-width:380px){
}
.important-updates-panel .upd-item{position:relative!important;}
.important-updates-panel .upd-row{padding-right:78px!important;}
.important-updates-panel .upd-quick-del{
  position:absolute!important;right:7px!important;top:7px!important;
  height:28px!important;min-width:62px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;
  border:1px solid rgba(166,68,43,.26)!important;border-radius:9px!important;
  background:#fff7f2!important;color:#9b3d2a!important;
  font-size:10.5px!important;font-weight:850!important;line-height:1!important;
  padding:0 8px!important;z-index:3!important;cursor:pointer!important;
}
.important-updates-panel .upd-quick-del svg{width:12px!important;height:12px!important;stroke:currentColor!important;fill:none!important;}
.important-updates-panel .upd-quick-del:hover{background:#ffece3!important;border-color:rgba(166,68,43,.42)!important;}
@media(max-width:430px){
  .important-updates-panel .upd-row{padding-right:44px!important;}
  .important-updates-panel .upd-quick-del{min-width:30px!important;width:30px!important;padding:0!important;}
  .important-updates-panel .upd-quick-del span{display:none!important;}
}


/* ---- inline style 13 ---- */

/* REAL FINAL MOBILE MENU FIX — no big empty space, no jumping, no safe-area expansion */
/* DISABLED: superseded by ww-absolute-bottom-menu-clean-final (kept for history) */
@media (max-width:0px){
  :root{
    --safe-b:0px!important;
    --ww-real-dock-h:54px!important;
  }

  html,body,#app,.shell,.main{
    min-height:100dvh!important;
  }

  .dock-inner{
    all:unset!important;
    box-sizing:border-box!important;
    width:100%!important;
    max-width:520px!important;
    height:55px!important;
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    align-items:center!important;
    gap:0!important;
    margin:0 auto!important;
    padding:0!important;
  }

  .dock-tab:active,
  .dock-tab.is-active{
    transform:none!important;
    opacity:1!important;
  }

  .dock-tab.is-active{
    color:#fff!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  .dock-ico{
    all:unset!important;
    box-sizing:border-box!important;
    width:24px!important;
    height:24px!important;
    min-width:24px!important;
    max-width:24px!important;
    min-height:24px!important;
    max-height:24px!important;
    display:grid!important;
    place-items:center!important;
    margin:0!important;
    padding:0!important;
    flex:0 0 24px!important;
  }

  .dock-ico svg,
  .dock-tab svg{
    width:22px!important;
    height:22px!important;
    min-width:22px!important;
    max-width:22px!important;
    min-height:22px!important;
    max-height:22px!important;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:2!important;
    display:block!important;
  }

  .dock-tab.is-active .dock-ico svg,
  .dock-tab.is-active svg{
    stroke-width:2.35!important;
  }

  .dock-lbl{
    all:unset!important;
    box-sizing:border-box!important;
    display:block!important;
    font-size:9.6px!important;
    line-height:1!important;
    font-weight:750!important;
    text-align:center!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    max-width:100%!important;
    color:currentColor!important;
  }

  .dock-tab.is-active::after{
    content:""!important;
    position:absolute!important;
    left:50%!important;
    bottom:1px!important;
    transform:translateX(-50%)!important;
    width:5px!important;
    height:5px!important;
    border-radius:50%!important;
    background:#7fe39a!important;
    box-shadow:0 0 6px rgba(127,227,154,.7)!important;
    display:block!important;
  }

  .content{
    padding-bottom:74px!important;
  }
  main.content > .page,
  .content > .page{
    padding-bottom:74px!important;
  }

  .toast{
    bottom:76px!important;
  }

  body.chat-thread-open .dock{
    display:none!important;
  }
}

@media (max-width:0px){
  .dock-inner{height:54px!important;}
  .dock-ico svg,.dock-tab svg{width:21px!important;height:21px!important;min-width:21px!important;min-height:21px!important;max-width:21px!important;max-height:21px!important;}
  .dock-lbl{font-size:9px!important;}
  .content,main.content > .page,.content > .page{padding-bottom:70px!important;}
}


/* ---- inline style 14 ---- */

/* DESIGN 3 — Circular Icons mobile menu: rebuilt from scratch, stable, compact, no expanding/collapsing */
@media (max-width:1023px){
  :root{
    --ww-circular-dock-h:54px!important;
    --ww-circular-green:#2a472f!important;
    --ww-circular-green-dark:#1f3424!important;
    --ww-circular-line:#e7ece3!important;
  }

  html,body,#app,.shell,.main{background:#11301d!important;min-height:100dvh!important;overflow-x:hidden!important;}

  /* page background stops behind the menu without creating extra bottom height */
  .main{position:relative!important;background:linear-gradient(180deg,#edf3e9 0%,#dfeade 58%,#d3e0cf 100%)!important;}

  .dock-inner{
    all:unset!important;
    box-sizing:border-box!important;
    width:100%!important;max-width:540px!important;
    height:68px!important;min-height:68px!important;max-height:68px!important;
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    align-items:center!important;justify-items:center!important;
    gap:1px!important;margin:0 auto!important;padding:0!important;
  }
  .dock-tab:active,.dock-tab.is-active{transform:none!important;opacity:1!important;}

  .dock-ico{
    all:unset!important;
    box-sizing:border-box!important;
    width:44px!important;height:44px!important;
    min-width:44px!important;max-width:44px!important;
    min-height:44px!important;max-height:44px!important;
    display:grid!important;place-items:center!important;
    border-radius:50%!important;
    background:#fff!important;
    border:1px solid var(--ww-circular-line)!important;
    box-shadow:0 2px 8px rgba(20,37,23,.05), inset 0 1px 0 rgba(255,255,255,.9)!important;
    margin:0!important;padding:0!important;flex:0 0 44px!important;
    color:#53605a!important;
  }

  .dock-ico svg,.dock-tab svg{
    width:23px!important;height:23px!important;
    min-width:23px!important;max-width:23px!important;
    min-height:23px!important;max-height:23px!important;
    padding:0!important;margin:0!important;
    background:transparent!important;border:0!important;box-shadow:none!important;
    fill:none!important;stroke:currentColor!important;stroke-width:2.15!important;
    display:block!important;
  }

  .dock-lbl{
    all:unset!important;
    box-sizing:border-box!important;
    display:block!important;
    max-width:100%!important;
    font-size:9.6px!important;
    line-height:1!important;
    font-weight:750!important;
    letter-spacing:-.01em!important;
    text-align:center!important;
    white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
    color:#36433b!important;
  }

  .dock-tab.is-active{background:transparent!important;color:var(--ww-circular-green)!important;box-shadow:none!important;}
  .dock-tab.is-active .dock-ico{
    width:50px!important;height:50px!important;
    min-width:50px!important;max-width:50px!important;
    min-height:50px!important;max-height:50px!important;
    flex-basis:50px!important;
    background:linear-gradient(180deg,#4a7351 0%,var(--ww-circular-green) 55%,var(--ww-circular-green-dark) 100%)!important;
    border-color:rgba(18,132,67,.20)!important;
    color:#fff!important;
    box-shadow:0 10px 22px rgba(18,132,67,.32), inset 0 1px 0 rgba(255,255,255,.28)!important;
  }
  .dock-tab.is-active .dock-ico svg,.dock-tab.is-active svg{stroke-width:2.35!important;}
  .dock-tab.is-active .dock-lbl{color:var(--ww-circular-green)!important;font-weight:900!important;}
  .dock-tab.is-active::after{display:none!important;content:none!important;}

  .dock-tab .nav-badge{
    position:absolute!important;
    top:2px!important;right:9px!important;
    min-width:17px!important;height:17px!important;
    display:grid!important;place-items:center!important;
    padding:0 4px!important;margin:0!important;
    border-radius:999px!important;
    background:#c46b3d!important;color:#fff!important;
    border:2px solid #fff!important;
    font-size:9px!important;font-weight:900!important;line-height:1!important;
    box-shadow:0 4px 8px rgba(196,107,61,.24)!important;
  }

  .content{padding-bottom:calc(var(--ww-circular-dock-h) + 14px)!important;}
  main.content > .page,.content > .page{padding-bottom:calc(var(--ww-circular-dock-h) + 10px)!important;}
  .toast{bottom:calc(var(--ww-circular-dock-h) + 10px)!important;}
  body.chat-thread-open .dock{display:none!important;}
}

@media (max-width:380px){
  :root{--ww-circular-dock-h:54px!important;}
  .dock-inner{height:66px!important;min-height:66px!important;max-height:66px!important;}
  .dock-ico{width:41px!important;height:41px!important;min-width:41px!important;max-width:41px!important;min-height:41px!important;max-height:41px!important;flex-basis:41px!important;}
  .dock-tab.is-active .dock-ico{width:46px!important;height:46px!important;min-width:46px!important;max-width:46px!important;min-height:46px!important;max-height:46px!important;flex-basis:46px!important;}
  .dock-ico svg,.dock-tab svg{width:21px!important;height:21px!important;min-width:21px!important;min-height:21px!important;max-width:21px!important;max-height:21px!important;}
  .dock-lbl{font-size:8.7px!important;}
}


/* ---- inline style 15 ---- */

/* Fit all 6 circular menu buttons on iPhone widths without clipping */
@media (max-width:1023px){
  .dock-inner{width:100%!important;max-width:100%!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:0!important;}
  .dock-ico{width:38px!important;height:38px!important;min-width:38px!important;max-width:38px!important;min-height:38px!important;max-height:38px!important;flex-basis:38px!important;}
  .dock-tab.is-active .dock-ico{width:42px!important;height:42px!important;min-width:42px!important;max-width:42px!important;min-height:42px!important;max-height:42px!important;flex-basis:42px!important;}
  .dock-ico svg,.dock-tab svg{width:19px!important;height:19px!important;min-width:19px!important;max-width:19px!important;min-height:19px!important;max-height:19px!important;}
  .dock-lbl{font-size:9.2px!important;line-height:1.1!important;letter-spacing:.005em!important;}
  .dock-tab .nav-badge{right:4px!important;top:4px!important;}
}
@media (min-width:390px) and (max-width:480px){
  .dock-ico{width:40px!important;height:40px!important;min-width:40px!important;max-width:40px!important;min-height:40px!important;max-height:40px!important;flex-basis:40px!important;}
  .dock-tab.is-active .dock-ico{width:44px!important;height:44px!important;min-width:44px!important;max-width:44px!important;min-height:44px!important;max-height:44px!important;flex-basis:44px!important;}
  .dock-ico svg,.dock-tab svg{width:20px!important;height:20px!important;min-width:20px!important;max-width:20px!important;min-height:20px!important;max-height:20px!important;}
  .dock-lbl{font-size:8.7px!important;}
}


/* ---- inline style 16 ---- */

/* V102 — desktop smoothness only: reduce expensive paint work without changing layout. */
@media (min-width:1024px){
  .sidebar,.topbar,.card,.updates-panel,.important-updates-panel,.shift-card,.rcard,.modal,.modal-card,.directory-card,.client-card,.rst-hero,.clock-hero,.clock-hero-v28{
    -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  }
  .shift-card,.rcard,.card,.updates-panel,.important-updates-panel,.directory-card,.client-card,.stat{
    transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease!important;
  }
  .content{scroll-behavior:auto!important;}
}


/* ---- inline style 17 ---- */


/* V104 fast chat delivery + archive/delete controls */
.cv-archive-filter{height:32px;border:0;border-radius:999px;padding:0 10px;background:#e9f0e4;color:#2f5c38;font-weight:900;font-size:11px;display:inline-flex;align-items:center;justify-content:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
.cv-archive-filter.active{background:#2f5c38;color:#fffaf0}
.cv-mini-action{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#eef5eb;color:#35643c;flex:0 0 31px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8);position:relative;z-index:2}
.cv-mini-action svg{width:16px;height:16px;stroke-width:2.4}
.cv-mini-action.danger{background:#fff2ee;color:#a0443b}
.cv-mini-action:active{transform:scale(.94)}
.msg-status.delivered{color:#758276!important}
.msg-status.seen{color:#2f7a43!important;font-weight:850!important}
.msg.mine .msg-status.seen{color:#e6f7d8!important}
.msg.mine .msg-status.delivered{color:rgba(255,248,232,.76)!important}

/* V103 message read receipts + live presence */
.msg-status{display:block;margin-top:4px;font-size:10px;line-height:1.15;text-align:right;font-weight:750;letter-spacing:.005em;color:#72806f;}
.msg-status.seen{color:#2f7040;}
.msg-status.delivered{color:#7c8978;font-weight:700;}
.msg.mine .msg-status{color:rgba(255,248,232,.70);}
.msg.mine .msg-status.seen{color:#dcefd1;}
.msg.mine .msg-status.delivered{color:rgba(255,248,232,.62);}
.cv-unread .cv-name{font-weight:950;}
.cth-presence:not(.is-online){color:rgba(255,248,232,.68);}
.cth-dot{width:7px;height:7px;border-radius:999px;background:#43c464;box-shadow:0 0 0 3px rgba(67,196,100,.16);display:inline-block;}


/* ---- inline style 18 ---- */

/* V127 — make ONLY the roster week header truly skinny/compact. */
@media (max-width:1023px){
  .rst-hero.admin,
  .rst-hero.staff{
    padding:8px 10px 9px!important;
    border-radius:18px!important;
    margin:7px 10px 9px!important;
    min-height:0!important;
    box-shadow:0 8px 18px rgba(14,34,20,.20)!important;
  }
  .rst-hero-bg{opacity:.45!important}
  .rst-hero-top{
    display:grid!important;
    grid-template-columns:34px minmax(0,1fr) 34px!important;
    align-items:center!important;
    gap:8px!important;
    min-height:40px!important;
  }
  .rst-nav{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    min-height:32px!important;
    border-radius:12px!important;
  }
  .rst-nav svg{width:15px!important;height:15px!important}
  .rst-hero-label{
    min-width:0!important;
    text-align:center!important;
  }
  .rst-eyebrow{
    font-size:8px!important;
    line-height:1!important;
    letter-spacing:.14em!important;
    margin:0 0 2px!important;
  }
  .rst-hero-label strong{
    display:block!important;
    font-size:17px!important;
    line-height:1!important;
    letter-spacing:-.018em!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .rst-hero.admin .rst-hero-foot,
  .rst-hero.staff .rst-hero-foot{
    display:grid!important;
    grid-template-columns:.76fr .62fr 1.35fr!important;
    align-items:center!important;
    gap:6px!important;
    margin-top:7px!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
  }
  .rst-hero.admin .rst-hs,
  .rst-hero.staff .rst-hs{
    min-height:34px!important;
    height:34px!important;
    padding:4px 5px!important;
    border-radius:11px!important;
    background:rgba(255,255,255,.075)!important;
    border:1px solid rgba(255,255,255,.10)!important;
  }
  .rst-hero.admin .rst-hs strong,
  .rst-hero.staff .rst-hs strong{
    font-size:15.5px!important;
    line-height:.95!important;
  }
  .rst-hero.admin .rst-hs em,
  .rst-hero.staff .rst-hs em{
    font-size:7px!important;
    line-height:1!important;
    letter-spacing:.055em!important;
    margin-top:2px!important;
  }
  .rst-hero.admin .rst-hero-add,
  .rst-hero.staff .rst-hero-add{
    min-height:34px!important;
    height:34px!important;
    padding:0 9px!important;
    border-radius:12px!important;
    font-size:12px!important;
    gap:6px!important;
    box-shadow:0 5px 11px rgba(8,24,12,.18),inset 0 1px 0 rgba(255,255,255,.85)!important;
  }
  .rst-hero.admin .rst-hero-add .rha-ic,
  .rst-hero.staff .rst-hero-add .rha-ic{
    width:22px!important;
    height:22px!important;
    min-width:22px!important;
  }
  .rst-hero.admin .rst-hero-add svg,
  .rst-hero.staff .rst-hero-add svg{
    width:12px!important;
    height:12px!important;
  }
}
@media (max-width:380px){
  .rst-hero.admin,.rst-hero.staff{padding:7px 8px 8px!important;margin:6px 8px 8px!important}
  .rst-hero-top{grid-template-columns:30px minmax(0,1fr) 30px!important;gap:6px!important;min-height:36px!important}
  .rst-nav{width:29px!important;height:29px!important;min-width:29px!important;min-height:29px!important}
  .rst-hero-label strong{font-size:15.5px!important}
  .rst-hero.admin .rst-hero-foot,.rst-hero.staff .rst-hero-foot{gap:5px!important;margin-top:6px!important}
  .rst-hero.admin .rst-hs,.rst-hero.staff .rst-hs,.rst-hero.admin .rst-hero-add,.rst-hero.staff .rst-hero-add{height:31px!important;min-height:31px!important}
  .rst-hero.admin .rst-hs strong,.rst-hero.staff .rst-hs strong{font-size:14px!important}
  .rst-hero.admin .rst-hero-add,.rst-hero.staff .rst-hero-add{font-size:11px!important;padding:0 7px!important}
}


/* ---- inline style 19 ---- */

/* V196 — requested only: keep original STAFF bar colours/design, make employee-name bar hug first-name text and centre it. */
@media (max-width:1023px){
  .roster-mobile .rc-main .rc-meta-full,
  .home-roster-list .rc-main .rc-meta-full{
    flex:0 0 100%!important;
    width:100%!important;
    max-width:100%!important;
    order:99!important;
    margin-top:6px!important;
    display:block!important;
    align-self:stretch!important;
  }
  .roster-mobile .rc-main .rc-meta-full .rc-staff-line,
  .home-roster-list .rc-main .rc-meta-full .rc-staff-line,
  .roster-mobile .rc-meta .rc-staff-line,
  .home-roster-list .rc-meta .rc-staff-line{
    display:inline-flex!important;
    grid-template-columns:unset!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    gap:0!important;
    margin-top:5px!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }

  .roster-mobile .rc-main .rc-meta-full .rc-staff-line .rc-staff-kicker,
  .home-roster-list .rc-main .rc-meta-full .rc-staff-line .rc-staff-kicker,
  .roster-mobile .rc-meta .rc-staff-line .rc-staff-kicker,
  .home-roster-list .rc-meta .rc-staff-line .rc-staff-kicker{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    height:23px!important;
    padding:0 10px!important;
    border-radius:999px!important;
    background:var(--accent,#7fb56a)!important;
    color:#10240f!important;
    font-size:9.8px!important;
    font-weight:900!important;
    letter-spacing:.09em!important;
    flex:0 0 auto!important;
    text-shadow:none!important;
    box-shadow:0 1px 2px rgba(0,0,0,.2)!important;
    line-height:1!important;
  }
  .roster-mobile .rc-main .rc-meta-full .rc-staff-line .rc-staff-names,
  .home-roster-list .rc-main .rc-meta-full .rc-staff-line .rc-staff-names,
  .roster-mobile .rc-meta .rc-staff-line .rc-staff-names,
  .home-roster-list .rc-meta .rc-staff-line .rc-staff-names{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    width:auto!important;
    min-width:0!important;
    max-width:calc(100vw - 150px)!important;
    margin-left:0!important;
    padding:0 13px!important;
    min-height:32px!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.06)!important;
    border:1px solid rgba(255,255,255,.18)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important;
    line-height:1!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
}


/* ---- inline style 20 ---- */

/* V205 — requested only: staff bar colours now follow the roster card colour instead of staying green. Layout stays unchanged. */
@media (max-width:1023px){
  .roster-mobile .rcard:not(.is-rejected) .rc-meta .rc-staff-line,
  .home-roster-list .rcard:not(.is-rejected) .rc-meta .rc-staff-line,
  .rcard.is-emp:not(.is-rejected) .rc-meta .rc-staff-line{
    background:linear-gradient(135deg,
      color-mix(in srgb,var(--solid,#315f3a) 76%,#000 24%),
      color-mix(in srgb,var(--deep,#173b23) 92%,#000 8%))!important;
    border-color:color-mix(in srgb,var(--solid,#315f3a) 62%,rgba(255,255,255,.28))!important;
  }
  .roster-mobile .rcard:not(.is-rejected) .rc-meta .rc-staff-line .rc-staff-kicker,
  .home-roster-list .rcard:not(.is-rejected) .rc-meta .rc-staff-line .rc-staff-kicker,
  .rcard.is-emp:not(.is-rejected) .rc-meta .rc-staff-line .rc-staff-kicker{
    background:linear-gradient(135deg,
      color-mix(in srgb,var(--solid,#7fb56a) 58%,#fff 42%),
      color-mix(in srgb,var(--solid,#7fb56a) 82%,#fff 18%))!important;
    color:color-mix(in srgb,var(--deep,#10240f) 78%,#000 22%)!important;
  }
  .rgc:not(.is-rejected) .rgc-staff{
    background:linear-gradient(135deg,
      color-mix(in srgb,var(--accent,#315f3a) 76%,#000 24%),
      color-mix(in srgb,var(--accent-deep,#173b23) 92%,#000 8%))!important;
    border-color:color-mix(in srgb,var(--accent,#315f3a) 62%,rgba(255,255,255,.28))!important;
  }
  .rgc:not(.is-rejected) .rgc-staff-kicker{
    background:linear-gradient(135deg,
      color-mix(in srgb,var(--accent,#7fb56a) 58%,#fff 42%),
      color-mix(in srgb,var(--accent,#7fb56a) 82%,#fff 18%))!important;
    color:color-mix(in srgb,var(--accent-deep,#10240f) 78%,#000 22%)!important;
  }
}


/* ---- inline style 21 ---- */

/* V208 — admin roster only: show daily total labour hours inside each day chip. Employee roster keeps the existing shift-count dots. */
@media (max-width:1023px){
  .rst-days-admin .rst-day{min-height:66px!important;justify-content:center!important;gap:3px!important;padding:7px 2px 6px!important;}
  .rst-days-admin .rd-stats{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:3px!important;min-width:37px!important;height:17px!important;padding:0 5px!important;border-radius:999px!important;background:#f0e4d0!important;border:1px solid rgba(151,108,70,.16)!important;box-shadow:0 1px 2px rgba(80,48,24,.08)!important;line-height:1!important;white-space:nowrap!important;}
  .rst-days-admin .rd-stats b{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:12px!important;height:12px!important;border-radius:999px!important;background:#b07a4a!important;color:#fff!important;font-size:8px!important;font-weight:900!important;line-height:12px!important;font-family:var(--font-sans,-apple-system,BlinkMacSystemFont,'SF Pro Text',system-ui)!important;}
  .rst-days-admin .rd-stats em{font-style:normal!important;color:#536251!important;font-size:8.5px!important;font-weight:900!important;letter-spacing:-.02em!important;font-variant-numeric:tabular-nums!important;}
  .rst-days-admin .rd-stats.empty{opacity:.62!important;background:#f3efe7!important;}
  .rst-days-admin .rd-stats.empty b{background:#c8c1b4!important;color:#fff!important;}
  .rst-days-admin .rst-day.sel .rd-stats{background:rgba(255,255,255,.22)!important;border-color:rgba(255,255,255,.18)!important;box-shadow:none!important;}
  .rst-days-admin .rst-day.sel .rd-stats b{background:rgba(255,255,255,.92)!important;color:#2d6b3e!important;}
  .rst-days-admin .rst-day.sel .rd-stats em{color:#fff!important;}
  .rst-day-head span{white-space:nowrap!important;}
}
@media(max-width:430px){
  .rst-days-admin{gap:5px!important}
  .rst-days-admin .rst-day{min-height:64px!important;border-radius:14px!important;padding:6px 1px 6px!important}
  .rst-days-admin .rd-dow{font-size:8.6px!important}
  .rst-days-admin .rd-num{font-size:16px!important}
  .rst-days-admin .rd-stats{min-width:34px!important;height:16px!important;padding:0 4px!important;gap:2px!important}
  .rst-days-admin .rd-stats b{min-width:11px!important;height:11px!important;font-size:7.5px!important;line-height:11px!important}
  .rst-days-admin .rd-stats em{font-size:8px!important}
}
@media(min-width:1024px){.rst-days-admin .rst-day{min-height:64px!important}}


/* ---- inline style 22 ---- */

.important-updates-panel .upd-body{padding-top:0!important;padding-bottom:7px!important}.important-updates-panel .upd-body p{margin:0 0 2px!important;line-height:1.32!important}.important-updates-panel .upd-react{margin-top:1px!important;margin-bottom:0!important;min-height:18px!important;height:auto!important}.important-updates-panel .upd-react-chips{min-height:18px!important;gap:3px!important}.important-updates-panel .upd-react-add{width:20px!important;height:20px!important;min-width:20px!important;opacity:.72!important}.important-updates-panel .upd-react-add svg{width:12px!important;height:12px!important}.important-updates-panel .upd-comments{margin-top:1px!important;padding-top:4px!important;border-top:1px solid rgba(20,31,23,.06)!important}.important-updates-panel .upd-comments-head{margin:0 0 4px!important;font-size:10px!important;line-height:1!important}.important-updates-panel .upd-comment-list{gap:4px!important}.important-updates-panel .upd-comment{gap:7px!important;margin:0!important;align-items:flex-start!important}.important-updates-panel .ucm-av .avatar{width:28px!important;height:28px!important;font-size:11px!important}.important-updates-panel .ucm-top{gap:5px!important;line-height:1.05!important}.important-updates-panel .ucm-name{font-size:12.4px!important;line-height:1.05!important}.important-updates-panel .ucm-time{font-size:10px!important;line-height:1.05!important}.important-updates-panel .ucm-text{margin-top:1px!important;font-size:12.8px!important;line-height:1.18!important}.important-updates-panel .ucm-reply-btn{margin-top:1px!important;padding:0!important;font-size:11.5px!important;line-height:1.05!important}.important-updates-panel .ucm-replies{margin-top:3px!important;gap:2px!important}.important-updates-panel .upd-comment-add{margin-top:5px!important;gap:7px!important}@media(max-width:720px){.important-updates-panel .upd-body{padding-bottom:6px!important}.important-updates-panel .upd-comments{padding-top:3px!important}.important-updates-panel .upd-comment-add{margin-top:4px!important}}


/* ---- inline style 23 ---- */

/* Important Updates only: more reactions in a tidy two-row tray. */
.important-updates-panel .upd-quickbar{
  position:relative!important;
  display:grid!important;
  grid-template-columns:repeat(6,34px)!important;
  gap:4px!important;
  width:max-content!important;
  max-width:100%!important;
  margin:8px 0 2px!important;
  padding:7px!important;
  border-radius:18px!important;
  background:rgba(255,253,247,.98)!important;
  border:1px solid rgba(37,66,41,.12)!important;
  box-shadow:0 10px 26px rgba(25,46,28,.16)!important;
  animation:rxPop .14s ease both!important;
}
.important-updates-panel .upd-quickbar .rx-quick{
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  border-radius:11px!important;
  font-size:20px!important;
  background:transparent!important;
  border:0!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
}
.important-updates-panel .upd-quickbar .rx-quick:active{
  background:#edf4e8!important;
  transform:scale(.92)!important;
}
.important-updates-panel .upd-quickbar .rx-more{
  background:#edf1e8!important;
  border:1px solid rgba(37,66,41,.10)!important;
}
.important-updates-panel .upd-quickbar .rx-more svg{width:17px!important;height:17px!important;stroke:#355a3b!important;}
/* Full picker opened by +: large daily-use and cleaning-business set. */
body[data-modal-type="upd-react"] .emoji-pick{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:8px!important;
  padding:8px 2px 4px!important;
  max-height:min(52vh,420px)!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
}
body[data-modal-type="upd-react"] .emoji-pick-btn{
  min-width:0!important;
  width:100%!important;
  min-height:46px!important;
  border-radius:13px!important;
  font-size:24px!important;
  background:#f6f2e9!important;
  border:1px solid rgba(37,66,41,.09)!important;
}
@media(max-width:390px){
  .important-updates-panel .upd-quickbar{grid-template-columns:repeat(5,34px)!important;}
  body[data-modal-type="upd-react"] .emoji-pick{grid-template-columns:repeat(5,minmax(0,1fr))!important;}
}


/* ---- inline style 24 ---- */

.important-updates-panel .ucm-comment-target,
.important-updates-panel .ucm-reply-target{position:relative!important;-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important;border-radius:10px!important;}
.important-updates-panel .ucm-comment-target:active,
.important-updates-panel .ucm-reply-target:active{background:rgba(47,107,62,.055)!important;}
.important-updates-panel .ucm-reply{position:relative!important;display:block!important;padding:6px 8px!important;border-radius:11px!important;background:rgba(255,255,255,.48)!important;border:1px solid rgba(37,66,41,.08)!important;}
.important-updates-panel .ucm-replies{display:grid!important;gap:5px!important;}
.important-updates-panel .ucm-inline-quickbar{position:relative!important;z-index:35!important;margin:6px 0 4px!important;grid-template-columns:repeat(6,32px)!important;padding:6px!important;border-radius:16px!important;}
.important-updates-panel .ucm-inline-quickbar .rx-quick{width:32px!important;height:32px!important;min-width:32px!important;font-size:19px!important;border-radius:10px!important;}
.important-updates-panel .ucm-react,
.important-updates-panel .ucm-reply-react{display:flex!important;align-items:center!important;gap:4px!important;flex-wrap:wrap!important;margin-top:3px!important;}
.important-updates-panel .ucm-rx-chip{min-height:23px!important;padding:1px 7px!important;border-radius:999px!important;background:#f3f5ee!important;border:1px solid rgba(37,66,41,.10)!important;font-size:13px!important;}
.important-updates-panel .ucm-rx-chip.mine{background:#dcebd7!important;border-color:rgba(47,107,62,.22)!important;}
.important-updates-panel .ucm-rx-chip span{font-size:10px!important;font-weight:850!important;color:#536356!important;margin-left:2px!important;}
.important-updates-panel .ucm-rx-add{width:24px!important;height:24px!important;min-width:24px!important;border-radius:999px!important;background:transparent!important;border:1px solid rgba(37,66,41,.12)!important;color:#55705a!important;display:grid!important;place-items:center!important;padding:0!important;}
.important-updates-panel .ucm-rx-add svg{width:13px!important;height:13px!important;}
@media(max-width:390px){
  .important-updates-panel .ucm-inline-quickbar{grid-template-columns:repeat(5,32px)!important;}
}


/* ---- reliability.css ---- */
/* EarthRoster v396 security & reliability module */
.ww396-security-card{margin:0 0 18px;padding:16px;border-radius:20px;background:linear-gradient(145deg,#f8fbf4,#eef4e9);border:1px solid rgba(44,84,49,.14);box-shadow:0 12px 28px -24px rgba(20,54,27,.55)}
.ww396-security-top{display:flex;align-items:center;gap:11px}.ww396-security-top>span:nth-child(2){flex:1;min-width:0}.ww396-security-top strong{display:block;color:#173a23;font-size:14.5px;font-weight:900}.ww396-security-top small{display:block;margin-top:2px;color:#6d796c;font-size:11.5px;line-height:1.35}.ww396-shield{width:37px;height:37px;border-radius:12px;display:grid;place-items:center;background:#2c7b45;color:#fff;font-weight:950;box-shadow:0 7px 16px -10px #173d23}.ww396-sync-chip{padding:6px 9px;border-radius:999px;background:#e2eee0;color:#315c36;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.ww396-sync-chip[data-state="syncing"]{background:#fff0cc;color:#855f0b}.ww396-sync-chip[data-state="error"]{background:#fde2de;color:#9a332d}.ww396-security-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin:13px 0}.ww396-security-grid span{padding:9px;border-radius:13px;background:rgba(255,255,255,.72);border:1px solid rgba(44,84,49,.08);text-align:center}.ww396-security-grid b{display:block;color:#244b2d;font-size:12.5px}.ww396-security-grid em{display:block;margin-top:2px;color:#778176;font-size:9.5px;font-style:normal;font-weight:700}.ww396-security-actions{display:grid;grid-template-columns:.85fr 1.15fr;gap:8px}.ww396-security-actions .btn{min-height:43px;border-radius:13px;font-size:12px}
.ww396-overlay{position:fixed;inset:0;z-index:10050;background:rgba(7,18,11,.56);backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;padding:14px}.ww396-backup-sheet{width:min(620px,100%);max-height:min(86dvh,760px);display:flex;flex-direction:column;background:#f8f6ef;border-radius:28px;overflow:hidden;box-shadow:0 28px 80px rgba(0,0,0,.34);border:1px solid rgba(255,255,255,.65)}.ww396-backup-sheet header{display:flex;align-items:center;padding:18px 18px 14px;border-bottom:1px solid rgba(30,61,35,.1)}.ww396-backup-sheet header>span{flex:1}.ww396-backup-sheet header strong{display:block;color:#17351f;font-family:Georgia,serif;font-size:22px}.ww396-backup-sheet header small{display:block;color:#7a8378;font-size:11.5px;margin-top:2px}.ww396-backup-sheet header button{width:42px;height:42px;border:0;border-radius:14px;background:#ece9df;color:#637065;font-size:27px;line-height:1}.ww396-backup-sheet main{overflow:auto;overscroll-behavior:contain;padding:15px;display:grid;gap:11px}.ww396-loading{display:grid;place-items:center;gap:10px;padding:60px 20px;color:#526052}.ww396-loading span{width:28px;height:28px;border-radius:50%;border:3px solid #d6ded2;border-top-color:#2d7c45;animation:ww396spin .7s linear infinite}@keyframes ww396spin{to{transform:rotate(360deg)}}.ww396-local-card,.ww396-backup-head{display:flex;align-items:center;gap:10px;padding:13px;border-radius:16px;background:#fff;border:1px solid rgba(35,75,42,.1)}.ww396-local-card>span,.ww396-backup-head>span{flex:1}.ww396-local-card strong,.ww396-backup-head strong{display:block;color:#1d4027;font-size:13.5px}.ww396-local-card small,.ww396-backup-head small{display:block;color:#7a8579;font-size:10.5px;margin-top:2px}.ww396-local-card button,.ww396-backup-head button,.ww396-row-actions button{border:0;border-radius:11px;padding:9px 11px;background:#2e7141;color:#fff;font-size:10.5px;font-weight:850}.ww396-backup-row{display:flex;align-items:center;gap:9px;padding:12px 13px;border-radius:15px;background:#fff;border:1px solid rgba(35,75,42,.1)}.ww396-backup-row>span:first-child{flex:1;min-width:0}.ww396-backup-row strong{display:block;color:#263b2b;font-size:12.5px}.ww396-backup-row small{display:block;color:#899087;font-size:10.5px;margin-top:3px;text-transform:capitalize}.ww396-row-actions{display:flex;gap:5px}.ww396-row-actions button{background:#e6efe2;color:#315d39}.ww396-row-actions button.danger{background:#f7e4df;color:#9b4038}.ww396-warning{padding:14px;border-radius:16px;background:#fff0dd;border:1px solid rgba(164,105,40,.18)}.ww396-warning strong{display:block;color:#6e4319;font-size:13px}.ww396-warning span{display:block;color:#866542;font-size:11.5px;line-height:1.45;margin-top:4px}.ww396-empty{padding:26px 15px;text-align:center;color:#828a80;font-size:12px;background:#fff;border:1px dashed rgba(35,75,42,.15);border-radius:15px}.ww396-footnote{color:#7d857b;font-size:10.5px;line-height:1.45;text-align:center;padding:3px 10px 8px}.ww396-backup-open{overflow:hidden!important}
@media(min-width:721px){.ww396-overlay{align-items:center}.ww396-backup-sheet{border-radius:24px}}@media(max-width:390px){.ww396-security-grid{gap:5px}.ww396-security-grid span{padding:8px 4px}.ww396-security-actions{grid-template-columns:1fr}.ww396-backup-row{align-items:flex-start;flex-direction:column}.ww396-row-actions{width:100%}.ww396-row-actions button{flex:1}.ww396-overlay{padding:0}.ww396-backup-sheet{border-radius:25px 25px 0 0;max-height:92dvh}}


/* v489 — stable profile security card: no pulsing, shifting or live flicker. */
.ww396-security-card,.ww396-security-card *{animation:none!important;transition:none!important}
.ww396-sync-chip{min-width:68px;text-align:center}
.ww396-security-grid b{min-height:1.25em;display:block}
.ww396-security-top small{min-height:1.35em}
.ww396-security-actions .btn:disabled{opacity:.7;cursor:wait}


/* ---- inline style 26 ---- */

/*
  One structural mobile navigation implementation.
  The app shell owns the full physical Home Screen height; the navigation is
  anchored to that shell rather than to iOS's occasionally shorter dynamic
  viewport. This removes the pale strip without creating a tall empty block.
*/
@media (max-width:1023px){
  :root{
    --ww-shell-h:100lvh;
    --ww-nav-core:60px;
    --ww-nav-safe:env(safe-area-inset-bottom,0px);
    --ww-nav-total:calc(var(--ww-nav-core) + var(--ww-nav-safe));
    --ww-nav-bg:#1d3524;
    --ww-page-bg:#e7f0e4;
  }

  html,body{
    width:100%!important;
    height:var(--ww-shell-h)!important;
    min-height:var(--ww-shell-h)!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:var(--ww-nav-bg)!important;
    background-color:var(--ww-nav-bg)!important;
  }

  #app,.shell{
    width:100%!important;
    height:var(--ww-shell-h)!important;
    min-height:0!important;
    max-height:var(--ww-shell-h)!important;
    overflow:hidden!important;
    background:var(--ww-nav-bg)!important;
    background-color:var(--ww-nav-bg)!important;
  }

  .shell{
    position:relative!important;
    display:flex!important;
    align-items:stretch!important;
  }

  .main{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:none!important;
    -webkit-overflow-scrolling:touch!important;
    background:linear-gradient(180deg,#edf4ea 0%,#e2ede0 58%,#d9e7d6 100%)!important;
    background-color:var(--ww-page-bg)!important;
    padding-bottom:0!important;
  }

  /* Disable historical bottom paint layers. The page itself supplies the light
     background; only the dedicated navigation supplies the dark bottom area. */
  .main::before,.main::after,
  body::after,#app::after,.shell::after{
    display:none!important;
    content:none!important;
  }

  .wwnav{
    position:absolute!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    z-index:1000!important;
    width:100%!important;
    height:var(--ww-nav-total)!important;
    min-height:var(--ww-nav-total)!important;
    max-height:var(--ww-nav-total)!important;
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    align-items:center!important;
    gap:0!important;
    margin:0!important;
    padding:5px 3px var(--ww-nav-safe)!important;
    overflow:hidden!important;
    background:linear-gradient(180deg,#203b28 0%,#183120 100%)!important;
    background-color:var(--ww-nav-bg)!important;
    border:0!important;
    border-top:1px solid rgba(255,255,255,.08)!important;
    border-radius:0!important;
    box-shadow:0 -5px 16px rgba(13,35,20,.12)!important;
    transform:none!important;
    -webkit-transform:none!important;
  }

  .wwnav::before,.wwnav::after{
    display:none!important;
    content:none!important;
  }

  .wwnav-item{
    width:100%!important;
    min-width:0!important;
    height:50px!important;
    min-height:50px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    margin:0!important;
    padding:0 1px!important;
    border:0!important;
    border-radius:10px!important;
    background:transparent!important;
    color:rgba(220,232,218,.66)!important;
    font:inherit!important;
    line-height:1!important;
    cursor:pointer!important;
    opacity:1!important;
    transform:none!important;
    -webkit-transform:none!important;
    -webkit-tap-highlight-color:transparent!important;
    touch-action:manipulation!important;
  }

  .wwnav-item:active{
    background:rgba(255,255,255,.05)!important;
    opacity:1!important;
    transform:none!important;
  }

  .wwnav-ic{
    position:relative!important;
    width:25px!important;
    height:25px!important;
    min-width:25px!important;
    min-height:25px!important;
    display:grid!important;
    place-items:center!important;
    flex:0 0 25px!important;
    margin:0!important;
  }

  .wwnav-ic svg{
    width:24px!important;
    height:24px!important;
    display:block!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.8!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
  }

  .wwnav-lbl{
    display:block!important;
    max-width:100%!important;
    margin:0!important;
    overflow:hidden!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
    color:currentColor!important;
    font-size:10.5px!important;
    font-weight:650!important;
    letter-spacing:-.015em!important;
    line-height:11px!important;
  }

  .wwnav-badge{
    position:absolute!important;
    top:-5px!important;
    right:-8px!important;
    min-width:17px!important;
    height:17px!important;
    padding:0 4px!important;
    border-radius:999px!important;
    background:#d9534f!important;
    color:#fff!important;
    font-size:9px!important;
    font-weight:800!important;
    line-height:17px!important;
    text-align:center!important;
    box-shadow:0 0 0 2px #1b3423!important;
  }

  .wwnav-item.is-active{
    color:#9be791!important;
    background:transparent!important;
  }
  .wwnav-item.is-active .wwnav-lbl{font-weight:800!important;}
  .wwnav-item.is-active .wwnav-ic svg{stroke-width:2.15!important;}

  body #app > .shell > .main > .content,
  body #app > .shell > .main > main.content,
  .content,main.content{
    padding-bottom:calc(var(--ww-nav-total) + 10px)!important;
  }

  .toast{bottom:calc(var(--ww-nav-total) + 10px)!important;}

  body.chat-thread-open .wwnav,
  body.modal-open .wwnav{display:none!important;}
}

@media (max-width:360px){
  .wwnav{padding-left:1px!important;padding-right:1px!important;}
  .wwnav-lbl{font-size:9.2px!important;letter-spacing:-.03em!important;}
  .wwnav-ic,.wwnav-ic svg{width:20px!important;height:20px!important;}
}

@media (min-width:1024px){.wwnav{display:none!important;}}


/* ---- inline style 27 ---- */

/* Typography-only refinement. Navigation geometry, spacing, icons, colours,
   safe area and layout are intentionally unchanged. */
@media (max-width:1023px){
  .wwnav-lbl{
    font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif!important;
    font-size:10px!important;
    font-weight:600!important;
    font-style:normal!important;
    font-stretch:normal!important;
    letter-spacing:0!important;
    line-height:11px!important;
    text-rendering:optimizeLegibility!important;
    -webkit-font-smoothing:antialiased!important;
    -moz-osx-font-smoothing:grayscale!important;
  }
  .wwnav-item.is-active .wwnav-lbl{font-weight:620!important;}
}
@media (max-width:360px){
  .wwnav-lbl{font-size:9px!important;letter-spacing:0!important;}
}


/* ---- inline style 28 ---- */

@media (max-width:1023px){
  .important-updates-panel .upd-comment-input{
    font-size:16px!important;
    touch-action:manipulation!important;
    -webkit-user-select:text!important;
    user-select:text!important;
    scroll-margin-bottom:calc(92px + var(--safe-b))!important;
  }
  body.ww-updates-keyboard-open .main,
  body.ww-updates-keyboard-open .page,
  body.ww-updates-keyboard-open .content{
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body.ww-updates-keyboard-open .important-updates-panel,
  body.ww-updates-keyboard-open .important-updates-panel *{
    animation:none!important;
  }
}


/* ---- inline style 29 ---- */

/* Keep global confirmations visible above full-screen sheets. */
.toast{z-index:5000!important;}
body[data-modal-type="booking-address-actions"] .toast{
  bottom:calc(var(--safe-b) + 22px)!important;
  background:#173f27!important;
  color:#fff!important;
  box-shadow:0 12px 30px rgba(13,45,27,.28)!important;
}
/* Immediate confirmation stays on the button the user tapped. */
.rt2-copy.is-copied{
  background:#e6f2e4!important;
  border:1px solid rgba(54,112,59,.35)!important;
  color:#245d34!important;
}
.rt2-copy.is-copied svg{display:none!important;}
.rt2-copy-check{
  width:20px;height:20px;border-radius:50%;display:inline-flex;
  align-items:center;justify-content:center;background:#2f7b46;color:#fff;
  font-size:13px;font-weight:900;line-height:1;
}


/* ---- inline style 30 ---- */

/* Professional message grouping, compact cards and truthful read receipts. */
body .chat-thread .chat-scroll{
  gap:2px!important;
  padding:14px 12px 18px!important;
}
body .chat-thread .msg{
  width:100%!important;
  display:flex!important;
  align-items:flex-end!important;
  gap:8px!important;
  margin:1px 0!important;
}
body .chat-thread .msg.mine{justify-content:flex-end!important;}
body .chat-thread .msg:not(.mine){justify-content:flex-start!important;}
body .chat-thread .msg-av{
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
}
body .chat-thread .msg-av.is-spacer{visibility:hidden!important;}
body .chat-thread .msg-av .avatar{
  width:32px!important;height:32px!important;
  font-size:12px!important;border-radius:50%!important;
  border:1.5px solid rgba(255,255,255,.16)!important;
  box-shadow:0 2px 8px rgba(0,0,0,.24)!important;
}
body .chat-thread .bubble,
body .chat-thread .msg:not(.mine) .bubble,
body .chat-thread .msg.mine .bubble{
  width:auto!important;
  min-width:0!important;
  max-width:min(76%,520px)!important;
  padding:9px 12px 7px!important;
  display:flex!important;
  flex-direction:column!important;
  box-shadow:0 2px 8px rgba(0,0,0,.14)!important;
}
body .chat-thread .msg:not(.mine) .bubble{
  align-items:flex-start!important;
  border-radius:16px 16px 16px 5px!important;
  background:linear-gradient(180deg,#252d34,#20272d)!important;
  border:1px solid rgba(255,255,255,.08)!important;
}
body .chat-thread .msg.mine .bubble{
  align-items:flex-start!important;
  border-radius:16px 16px 5px 16px!important;
  background:linear-gradient(180deg,#346f45,#285a37)!important;
  border:1px solid rgba(181,226,185,.16)!important;
}
body .chat-thread .b-author{
  margin:0 0 3px!important;
  font-size:11.5px!important;
  line-height:1.2!important;
  font-weight:800!important;
  color:#a9d88c!important;
}
body .chat-thread .b-text{
  width:auto!important;
  max-width:100%!important;
  font-size:15.5px!important;
  line-height:1.38!important;
  letter-spacing:0!important;
  color:inherit!important;
}
body .chat-thread .b-meta{
  align-self:flex-end!important;
  width:auto!important;
  min-width:0!important;
  margin-top:4px!important;
  gap:5px!important;
  justify-content:flex-end!important;
}
body .chat-thread .b-meta time{
  font-size:10.5px!important;
  opacity:.62!important;
}
body .chat-thread .msg-status{
  display:inline-flex!important;
  align-items:center!important;
  gap:2px!important;
  font-size:10.5px!important;
  font-weight:750!important;
  line-height:1!important;
  margin:0!important;
  white-space:nowrap!important;
}
body .chat-thread .msg-status.sent{color:rgba(223,235,225,.68)!important;}
body .chat-thread .msg-status.seen{color:#bde7c0!important;}
body .chat-thread .msg-status.seen::first-letter{letter-spacing:-2px;}
body .chat-thread .msg + .msg.mine,
body .chat-thread .msg + .msg:not(.mine){margin-top:1px!important;}
@media(max-width:560px){
  body .chat-thread .bubble,
  body .chat-thread .msg:not(.mine) .bubble,
  body .chat-thread .msg.mine .bubble{max-width:78%!important;}
  body .chat-thread .chat-scroll{padding-left:10px!important;padding-right:10px!important;}
  body .chat-thread .msg-av{width:32px!important;min-width:32px!important;}
  body .chat-thread .msg-av .avatar{width:30px!important;height:30px!important;}
}


/* ---- inline style 31 ---- */

/* No small logo on the sign-in screen. The brand reveal is shown after a
   successful login and whenever a signed-in user genuinely launches/resumes. */
.lg2-mark,.lg2-mobile-mark{display:none!important;}

body.ww-login-reveal-open{overflow:hidden!important;touch-action:none!important;}
.ww-login-reveal{
  position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;
  min-height:100dvh;overflow:hidden;pointer-events:all;opacity:0;contain:strict;
  transform:translate3d(0,0,0);backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:opacity;
  background:
    radial-gradient(70% 52% at 50% 43%,rgba(130,164,103,.28),transparent 64%),
    radial-gradient(55% 42% at 50% 50%,rgba(205,157,84,.15),transparent 72%),
    linear-gradient(155deg,#23452d 0%,#122b1c 48%,#09170f 100%);
  transition:opacity .28s cubic-bezier(.22,.75,.24,1);
  -webkit-font-smoothing:antialiased;
}
.ww-login-reveal.is-active{opacity:1;}
.ww-login-reveal.is-leaving{opacity:0;pointer-events:none;transition-duration:.52s;}
.ww-login-reveal::before,.ww-login-reveal::after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;
}
.ww-login-reveal::before{
  width:min(84vw,620px);aspect-ratio:1;left:-30%;top:-24%;
  border:1px solid rgba(255,255,255,.065);box-shadow:0 0 0 42px rgba(255,255,255,.022),0 0 0 94px rgba(255,255,255,.016);
}
.ww-login-reveal::after{
  width:min(90vw,680px);aspect-ratio:1;right:-45%;bottom:-38%;
  background:radial-gradient(circle,rgba(198,149,77,.13),transparent 67%);
}
.ww-login-reveal-glow{
  position:absolute;width:min(82vw,460px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(196,211,167,.21) 0%,rgba(85,128,78,.08) 42%,transparent 69%);
  transform:translate3d(0,0,0) scale(.72);opacity:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform,opacity;
}
.ww-login-reveal.is-active .ww-login-reveal-glow{animation:ww477Glow 2.85s cubic-bezier(.2,.8,.2,1) both;}
.ww-login-reveal-rings{position:absolute;width:190px;height:190px;display:grid;place-items:center;}
.ww-login-reveal-rings i{position:absolute;border-radius:50%;border:1px solid rgba(232,204,153,.24);opacity:0;}
.ww-login-reveal-rings i:nth-child(1){inset:7px;}
.ww-login-reveal-rings i:nth-child(2){inset:-12px;}
.ww-login-reveal-rings i:nth-child(3){inset:-33px;}
.ww-login-reveal.is-active .ww-login-reveal-rings i{animation:ww477Ring 2.15s cubic-bezier(.16,1,.3,1) both;}
.ww-login-reveal.is-active .ww-login-reveal-rings i:nth-child(2){animation-delay:.12s;}
.ww-login-reveal.is-active .ww-login-reveal-rings i:nth-child(3){animation-delay:.24s;}
.ww-login-reveal-content{
  position:relative;z-index:2;width:min(86vw,360px);display:flex;flex-direction:column;align-items:center;
  text-align:center;transform:translate3d(0,8px,0);backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
.ww-login-reveal-logo{
  width:132px;height:132px;border-radius:31px;overflow:hidden;opacity:0;transform:translate3d(0,14px,0) scale(.7);backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform,opacity;
  box-shadow:0 34px 70px -30px rgba(0,0,0,.86),0 0 0 1px rgba(255,255,255,.14),0 0 48px rgba(195,159,95,.16);
}
.ww-login-reveal-logo img,.ww-login-reveal-logo svg{display:block;width:100%;height:100%;object-fit:cover;}
.ww-login-reveal.is-active .ww-login-reveal-logo{animation:ww477Logo .92s cubic-bezier(.16,1,.3,1) .10s both;}
.ww-login-reveal-copy{margin-top:28px;display:flex;flex-direction:column;align-items:center;opacity:0;transform:translate3d(0,10px,0);backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform,opacity;}
.ww-login-reveal.is-active .ww-login-reveal-copy{animation:ww477Copy .72s ease .58s both;}
.ww-login-reveal-copy span{
  color:#e5bd72;font:800 11px/1.1 "Inter Tight",Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.22em;text-transform:uppercase;
}
.ww-login-reveal-copy strong{
  margin-top:8px;color:#fffdf5;font:600 clamp(34px,10vw,47px)/1 "Fraunces",Georgia,serif;
  letter-spacing:-.035em;text-shadow:0 16px 34px rgba(0,0,0,.35);
}
.ww-login-reveal-copy em{
  margin-top:12px;color:rgba(235,242,229,.72);font:650 13px/1.3 "Inter Tight",Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-style:normal;letter-spacing:.01em;
}
.ww-login-reveal-progress{
  width:154px;height:3px;margin-top:25px;border-radius:99px;overflow:hidden;
  background:rgba(255,255,255,.12);opacity:0;
}
.ww-login-reveal-progress b{
  display:block;width:100%;height:100%;border-radius:inherit;transform:translateX(-102%);
  background:linear-gradient(90deg,#d2a75e,#f0d596,#d8b26b);
}
.ww-login-reveal.is-active .ww-login-reveal-progress{animation:ww477ProgressIn .32s ease .84s both;}
.ww-login-reveal.is-active .ww-login-reveal-progress b{animation:ww477Progress 1.95s cubic-bezier(.22,.78,.2,1) .90s both;}
@keyframes ww477Logo{
  0%{opacity:0;transform:translate3d(0,14px,0) scale(.7) rotate(-2deg)}
  62%{opacity:1;transform:translate3d(0,0,0) scale(1.035) rotate(.35deg)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1) rotate(0)}
}
@keyframes ww477Ring{0%{opacity:0;transform:translate3d(0,0,0) scale(.66)}45%{opacity:.68}100%{opacity:0;transform:translate3d(0,0,0) scale(1.14)}}
@keyframes ww477Glow{0%{opacity:0;transform:translate3d(0,0,0) scale(.72)}45%{opacity:.92}100%{opacity:.32;transform:translate3d(0,0,0) scale(1.04)}}
@keyframes ww477Copy{from{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes ww477ProgressIn{from{opacity:0}to{opacity:1}}
@keyframes ww477Progress{0%{transform:translateX(-102%)}100%{transform:translateX(0)}}
@media(max-width:390px){
  .ww-login-reveal-logo{width:116px;height:116px;border-radius:28px;}
  .ww-login-reveal-rings{width:170px;height:170px;}
  .ww-login-reveal-copy{margin-top:24px;}
}
@media(prefers-reduced-motion:reduce){
  .ww-login-reveal,.ww-login-reveal.is-leaving{transition-duration:.16s!important;}
  .ww-login-reveal-glow,.ww-login-reveal-rings i,.ww-login-reveal-logo,.ww-login-reveal-copy,.ww-login-reveal-progress,.ww-login-reveal-progress b{
    animation:none!important;opacity:1!important;transform:none!important;filter:none!important;
  }
}


/* ---- roster-split-v511.css ---- */

/* EarthRoster v511 — client invoice hours / employee roster split */
.ww511-admin-guide{display:flex;align-items:flex-start;gap:11px;margin:12px 0;padding:12px 13px;border:1px solid rgba(39,92,55,.14);border-radius:15px;background:linear-gradient(135deg,#f4f7ef,#ecefe5);color:#24482f}.ww511-admin-guide>span{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#235c37;color:#fff}.ww511-admin-guide svg{width:17px;height:17px}.ww511-admin-guide strong{display:block;font-size:12px;line-height:1.25}.ww511-admin-guide small{display:block;margin-top:3px;font-size:10.5px;line-height:1.35;color:#68766c}
.ww511-hero-foot{gap:8px!important}.ww511-hero-foot .rst-hs{min-width:72px}.ww511-hero-foot .rst-hs strong{font-size:18px!important}.ww511-hero-foot .rst-hs em{font-size:8.5px!important;white-space:nowrap}.ww511-roster-hero.admin .rst-hero-label .rst-eyebrow{letter-spacing:.08em}
.ww511-client-badge strong{font-size:20px!important;white-space:nowrap}.ww511-client-badge .rc-ap{font-size:7px!important;letter-spacing:.12em}.ww511-client-badge .rc-dur{font-size:7px!important}.ww511-card-split{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:5px 8px;border-radius:999px;background:rgba(28,91,49,.09);color:#245c37;font-size:9.5px;font-weight:850}.ww511-card-split svg{width:12px;height:12px}.ww511-card-split.is-personal{background:rgba(255,255,255,.7)}.ww511-admin-job .rc-time-range,.ww511-employee-job .rc-time-range{font-weight:750!important}.ww511-admin-job .rc-main,.ww511-employee-job .rc-main{row-gap:2px!important}
.ww511-rgc .ww511-rgc-bill{margin-top:5px;font-size:8.5px;font-weight:800;color:#6a756d}.ww511-rwg-wrap .rwg-corner{display:flex;flex-direction:column;justify-content:center;gap:2px}.ww511-rwg-wrap .rwg-corner strong{font-size:11px}.ww511-rwg-wrap .rwg-corner small{font-size:8px;color:#839086}.ww511-rwg-wrap .rwg-dayhrs{font-size:7.5px!important}
.ww511-shift-builder{gap:11px!important}.ww511-job-setup,.ww511-billing-panel,.ww511-split-panel{border-radius:18px!important;border:1px solid rgba(38,78,48,.13)!important;background:#fff!important;box-shadow:0 7px 20px rgba(25,54,32,.055)!important}.ww511-date-start-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ww511-finish-preview{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;margin-top:9px;padding:9px 11px;border-radius:12px;background:#f0f5ee;border:1px solid rgba(37,86,49,.10)}.ww511-finish-preview span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#6d7a70}.ww511-finish-preview strong{justify-self:end;font-size:14px;color:#245c37}.ww511-finish-preview small{grid-column:1/-1;font-size:9px;color:#7c877e}
.ww511-billing-title{align-items:center}.ww511-admin-only{margin-left:auto;padding:4px 7px;border-radius:999px;background:#1f5834;color:#fff;font-size:7.5px;font-weight:900;letter-spacing:.10em}.ww511-billing-grid{display:grid;grid-template-columns:minmax(150px,.75fr) 1.25fr;gap:10px;align-items:stretch}.ww511-client-hours{position:relative;display:flex;flex-direction:column;justify-content:center;padding:10px 58px 10px 11px;border-radius:13px;background:#173f29;color:#fff}.ww511-client-hours>span{font-size:8px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.68)}.ww511-client-hours input{width:100%;margin-top:3px;padding:0;border:0;outline:0;background:transparent;color:#fff;font-size:26px;font-weight:900;line-height:1}.ww511-client-hours em{position:absolute;right:12px;bottom:13px;font-size:10px;font-weight:800;color:#d7e7d9}.ww511-billing-example{display:flex;flex-direction:column;justify-content:center;padding:10px 11px;border-radius:13px;background:#f4f4ee}.ww511-billing-example strong{font-size:12px;color:#273b2d}.ww511-billing-example span{margin-top:4px;font-size:9.5px;line-height:1.35;color:#6d786f}
.ww511-split-title{align-items:center}.ww511-total-pill{margin-left:auto;padding:5px 8px;border-radius:999px;background:#edf3ea;color:#2a5f3b;font-size:9px;font-weight:900}.ww511-split-callout{padding:10px 11px;border-radius:13px;background:linear-gradient(135deg,#eef5ec,#f8f6ed);border:1px solid rgba(42,91,53,.10)}.ww511-split-callout strong,.ww511-split-callout span{display:block}.ww511-split-callout strong{font-size:12px;color:#224f32}.ww511-split-callout span{margin-top:3px;font-size:9.5px;color:#6d7b70}.ww511-split-toggle{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:9px 0;padding:4px;border-radius:12px;background:#ecefe8}.ww511-split-toggle button{height:34px;border:0;border-radius:9px;background:transparent;color:#647068;font-size:10px;font-weight:850}.ww511-split-toggle button.active{background:#fff;color:#205b35;box-shadow:0 2px 8px rgba(28,57,35,.10)}.ww511-allocation-list{display:grid;gap:7px}.ww511-allocation-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 9px;border-radius:12px;background:#fafaf6;border:1px solid rgba(40,73,46,.09)}.ww511-allocation-av{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#dfeadf;color:#2b603b;font-size:10px;font-weight:900}.ww511-allocation-copy{min-width:0}.ww511-allocation-copy strong,.ww511-allocation-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ww511-allocation-copy strong{font-size:11px;color:#26382b}.ww511-allocation-copy small{margin-top:2px;font-size:9px;color:#768078}.ww511-row-hours{font-size:12px;color:#245b37}.ww511-hour-input{display:flex;align-items:center;gap:4px;padding:5px 7px;border-radius:9px;background:#fff;border:1px solid rgba(42,83,50,.14)}.ww511-hour-input input{width:48px;border:0;outline:0;background:transparent;text-align:right;font-size:12px;font-weight:900;color:#245b37}.ww511-hour-input span{font-size:8px;font-weight:800;color:#78827a}.ww511-allocation-total{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;margin-top:9px;padding:9px 10px;border-radius:12px}.ww511-allocation-total span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.ww511-allocation-total strong{font-size:12px}.ww511-allocation-total em{grid-column:1/-1;font-size:8.5px}.ww511-allocation-total.is-ok{background:#eaf4e9;color:#265e38}.ww511-allocation-total.is-bad{background:#fae9e5;color:#9a4034}.ww511-empty-split{padding:13px;border-radius:12px;background:#f3f4ef;text-align:center}.ww511-empty-split strong,.ww511-empty-split span{display:block}.ww511-empty-split strong{font-size:11px}.ww511-empty-split span{margin-top:3px;font-size:9.5px;color:#788078}
@media(max-width:760px){.ww511-hero-foot{display:grid!important;grid-template-columns:repeat(3,1fr)!important}.ww511-hero-foot .rst-hero-add{grid-column:1/-1;width:100%!important;justify-content:center!important}.ww511-roster-hero.staff .ww511-hero-foot{grid-template-columns:1fr 1fr!important}.ww511-roster-hero.staff .rst-hero-add{grid-column:1/-1}.ww511-billing-grid{grid-template-columns:1fr}.ww511-date-start-grid{grid-template-columns:1fr 1fr}.ww511-admin-guide{margin:10px 0}.ww511-admin-job .rc-info,.ww511-employee-job .rc-info{min-width:0}.ww511-card-split{max-width:100%;white-space:normal}.ww511-client-badge{min-width:74px!important}}
@media(max-width:390px){.ww511-date-start-grid{grid-template-columns:1fr}.ww511-hero-foot .rst-hs strong{font-size:16px!important}.ww511-allocation-row{grid-template-columns:30px minmax(0,1fr) auto}.ww511-hour-input input{width:42px}}
/* v511 order lock: older roster-builder rules used custom flex order values. */
.ww511-shift-builder>.client-search-panel{order:1!important}
.ww511-shift-builder>.ww511-job-setup{order:2!important}
.ww511-shift-builder>.ww511-billing-panel{order:3!important}
.ww511-shift-builder>.emp-field{order:4!important}
.ww511-shift-builder>.ww511-split-panel{order:5!important}
.ww511-shift-builder>.recurrence-section{order:6!important}
.ww511-shift-builder>.shift-colour-section{order:7!important}
.ww511-shift-builder>.visibility-section{order:8!important}
.ww511-shift-builder>.shift-notes-section{order:9!important}
.ww511-admin-job .ww511-card-split{background:rgba(255,255,255,.15)!important;color:#fff!important;border:1px solid rgba(255,255,255,.18)!important}
@media(max-width:760px){
  .ww511-employee-job .rc-main{display:grid!important;grid-template-columns:74px minmax(0,1fr)!important;column-gap:9px!important}
  .ww511-employee-job .rc-badge{grid-column:1;grid-row:1/3!important}
  .ww511-employee-job .rc-info{grid-column:2;grid-row:1!important;width:100%!important}
  .ww511-employee-job .rc-actions-row{grid-column:2;grid-row:2!important;justify-content:flex-start!important;margin-top:6px!important}
  .ww511-employee-job .rc-meta{grid-column:1/-1!important;grid-row:3!important;margin-top:6px!important}
  .ww511-employee-job .rc-info h3{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.15!important}
}


/* ---- inline style 33 ---- */

/* v524 — locked roster-card staff layout.
   Keep rostered employee names in one consistent, centred position on both
   admin and employee mobile cards. Names wrap only when genuinely necessary. */
@media (max-width:1023px){
  .roster-mobile .rcard .rc-meta.rc-meta-full,
  .home-roster-list .rcard .rc-meta.rc-meta-full,
  .rcard.is-emp .rc-meta.rc-meta-full{
    order:99!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 100%!important;
    align-self:stretch!important;
    width:100%!important;
    max-width:100%!important;
    margin:4px 0 0!important;
    padding:0 2px!important;
    box-sizing:border-box!important;
    overflow:visible!important;
    white-space:normal!important;
  }

  .roster-mobile .rcard .rc-meta .rc-staff-line,
  .home-roster-list .rcard .rc-meta .rc-staff-line,
  .rcard.is-emp .rc-meta .rc-staff-line{
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr) 38px!important;
    align-items:center!important;
    justify-content:center!important;
    gap:0!important;
    width:min(100%,330px)!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:24px!important;
    height:auto!important;
    margin:0 auto!important;
    padding:2px 4px!important;
    box-sizing:border-box!important;
    border-radius:10px!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }

  .roster-mobile .rcard .rc-meta .rc-staff-line .rc-staff-kicker,
  .home-roster-list .rcard .rc-meta .rc-staff-line .rc-staff-kicker,
  .rcard.is-emp .rc-meta .rc-staff-line .rc-staff-kicker{
    grid-column:1!important;
    justify-self:start!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:34px!important;
    height:18px!important;
    min-height:18px!important;
    padding:0!important;
    margin:0!important;
    border-radius:7px!important;
    font-size:8px!important;
    line-height:18px!important;
    letter-spacing:.07em!important;
    flex:none!important;
  }

  .roster-mobile .rcard .rc-meta .rc-staff-line .rc-staff-names,
  .home-roster-list .rcard .rc-meta .rc-staff-line .rc-staff-names,
  .rcard.is-emp .rc-meta .rc-staff-line .rc-staff-names{
    grid-column:2!important;
    justify-self:center!important;
    align-self:center!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:auto!important;
    min-height:18px!important;
    padding:2px 4px!important;
    margin:0!important;
    box-sizing:border-box!important;
    text-align:center!important;
    font-size:11.5px!important;
    font-weight:900!important;
    line-height:1.12!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }

  /* Preserve a balanced empty column so the names stay truly centred even
     with the TEAM label on the left. */
  .roster-mobile .rcard .rc-meta .rc-staff-line::after,
  .home-roster-list .rcard .rc-meta .rc-staff-line::after,
  .rcard.is-emp .rc-meta .rc-staff-line::after{
    content:""!important;
    grid-column:3!important;
    width:34px!important;
    height:1px!important;
  }

  /* Only multi-name rows gain a little breathing room; standard cards stay slim. */
  .roster-mobile .rcard:has(.rc-staff-names),
  .home-roster-list .rcard:has(.rc-staff-names),
  .rcard.is-emp:has(.rc-staff-names){
    padding-bottom:8px!important;
  }
}


/* ---- inline style 34 ---- */

@media(max-width:1023px){
  body.ww-stable-scroll-page .main,
  body.ww-stable-scroll-page .content{
    scroll-behavior:auto!important;
    overflow-anchor:none!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
    transform:none!important;
    will-change:auto!important;
  }
  body.ww-stable-scroll-page .home-roster-list,
  body.ww-stable-scroll-page .roster-mobile{
    overflow-anchor:none!important;
    contain:layout style!important;
  }
  body.ww-stable-scroll-page .home-roster-list .ww522-roster-card,
  body.ww-stable-scroll-page .roster-mobile .ww522-roster-card{
    content-visibility:visible!important;
    contain:layout style!important;
    contain-intrinsic-size:none!important;
    transition:none!important;
    animation:none!important;
    transform:none!important;
    will-change:auto!important;
  }
}


/* ---- app-polish-v644-bundle-1.css ---- */
/* ---- app-polish-v536.css ---- */
/* EarthRoster v536 — whole-app production polish */
:root{
  --ww536-card-radius:18px;
  --ww536-soft-shadow:0 8px 22px rgba(18,42,25,.07);
  --ww536-line:rgba(29,63,38,.12);
}
html,body,#app{max-width:100%;overflow-x:hidden!important}
html{scroll-behavior:auto!important}
body{touch-action:pan-y;-webkit-overflow-scrolling:touch}
button,[role="button"],[data-action],a,input,select,textarea{touch-action:manipulation}
button,[data-action],a{-webkit-tap-highlight-color:transparent}
input,select,textarea{max-width:100%;min-width:0}
@media(max-width:1023px){input,select,textarea{font-size:16px!important}}

/* Prevent visual movement while fingers are scrolling. */
body.ww536-user-scrolling .card,
body.ww536-user-scrolling .rcard,
body.ww536-user-scrolling .v213-card,
body.ww536-user-scrolling .directory-card,
body.ww536-user-scrolling [data-action],
body.ww536-user-scrolling button{
  animation-play-state:paused!important;
  transition-property:color,background-color,border-color,opacity!important;
  transition-duration:.01ms!important;
  transform:none!important;
}

/* Long operational lists get cheap, isolated paint areas without changing height. */
.roster-mobile .rcard,
.home-roster-list .rcard,
.v213-card,
.directory-card,
.folder-card,
.doc-card,
.notif-item,
.appr-row{
  contain:layout paint;
  backface-visibility:hidden;
}

/* Keep internal pages quieter and more operational. */
.v213-hero,
.directory-hub-hero,
.manager-hero,
.agreement-card,
.doc-intro{
  border-radius:var(--ww536-card-radius)!important;
  box-shadow:var(--ww536-soft-shadow)!important;
}
.v213-hero{padding:16px!important;gap:14px!important}
.v213-hero-copy p{max-width:620px!important;margin-top:5px!important;line-height:1.35!important}
.v213-hero-actions{gap:8px!important}
.v213-stats{margin-top:12px!important;gap:8px!important}
.v213-stat{min-height:74px!important;padding:12px!important}
.v213-toolbar{margin-top:14px!important}

.directory-hub-hero{padding:15px!important;min-height:auto!important}
.directory-hub-hero .dhh-copy p:empty{display:none!important}
.directory-hub-hero .dhh-copy h2{margin-bottom:0!important}
.directory-hub-grid{gap:10px!important;margin-top:12px!important}
.directory-action-row{gap:10px!important;margin-top:12px!important}
.directory-preview-heading{margin-bottom:8px!important}

.manager-hero{padding:14px 15px!important;min-height:auto!important;gap:12px!important}
.manager-hero .mh-copy p:empty{display:none!important}
.manager-hero .mh-copy h2{margin-bottom:0!important}
.manager-hero .mh-add{align-self:center!important}
.directory-stats{margin-top:12px!important;gap:8px!important}
.directory-toolbar{margin-top:12px!important}

.agreement-card{padding:16px!important}
.agreement-card .ag-head p{margin-top:3px!important}
.doc-intro{padding:14px!important;gap:11px!important}
.doc-intro p{margin-top:2px!important}

/* Consistent spacing between page blocks and less accidental empty space. */
.page>.card+.card,
.page>section+section{margin-top:14px}
.card>.empty,
.modal-body>.empty,
.modal-scroll>.empty{min-height:150px!important}

/* Buttons remain stable and professional rather than bouncing or scaling. */
.btn,button,[data-action]{transition:background-color .16s ease,color .16s ease,border-color .16s ease,opacity .16s ease!important}
.btn:active,button:active,[data-action]:active{transform:none!important}

/* Focus is visible for keyboard users but not visually noisy for touch users. */
:focus{outline:none}
:focus-visible{outline:3px solid rgba(74,140,86,.38)!important;outline-offset:2px!important}

/* A single clean modal surface; prevent nested panels from visually fighting. */
.modal-overlay{overscroll-behavior:contain!important}
.modal-card,.modal-panel,.sft-shell{box-shadow:0 22px 60px rgba(10,30,17,.22)!important}
.modal-body,.modal-scroll,.sft-body{overscroll-behavior-y:contain!important;scroll-behavior:auto!important}

/* Keep fixed action rows compact and keyboard-safe. */
.modal-actions,.sft-actions{padding-bottom:max(12px,env(safe-area-inset-bottom))!important}

/* Reduced-motion users should never receive decorative movement. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

@media(max-width:720px){
  .v213-hero{display:grid!important;grid-template-columns:1fr!important}
  .v213-hero-copy p{font-size:12.5px!important}
  .v213-hero-actions{display:grid!important;grid-template-columns:1fr 1fr!important}
  .v213-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .v213-stat:last-child:nth-child(odd){grid-column:1/-1!important}
  .directory-hub-hero .dhh-copy span,
  .manager-hero .mh-copy span{font-size:9.5px!important}
  .directory-hub-hero .dhh-copy h2,
  .manager-hero .mh-copy h2{font-size:20px!important}
  .directory-action-row{grid-template-columns:1fr 1fr!important}
  .manager-hero{grid-template-columns:auto minmax(0,1fr)!important}
  .manager-hero .mh-add{grid-column:1/-1!important;width:100%!important}
  .directory-stats .dir-stat{padding:11px 8px!important}
  .agreement-card .ag-actions{grid-template-columns:1.25fr 1fr 1fr!important}
}


/* v536 — roster calendar regression guard.
   The generic empty-state rule must never resize zero-job day badges. */
@media(max-width:1023px){
  .ww521-roster-controls .rst-days,
  .ww521-roster-controls .rst-days-admin{
    height:auto!important;
    min-height:0!important;
    grid-auto-rows:auto!important;
    align-items:start!important;
  }
  .ww521-roster-controls .rst-day,
  .ww521-roster-controls .rst-days-admin .rst-day{
    height:64px!important;
    min-height:64px!important;
    max-height:64px!important;
    align-self:start!important;
  }
  .ww521-roster-controls .rd-stats.empty{
    min-height:16px!important;
    height:16px!important;
    max-height:16px!important;
  }
}
@media(max-width:370px){
  .ww521-roster-controls .rst-day,
  .ww521-roster-controls .rst-days-admin .rst-day{
    height:61px!important;
    min-height:61px!important;
    max-height:61px!important;
  }
}

/* ---- app-polish-v538.css ---- */
/* EarthRoster v537 — restore map-app symbols in the GPS chooser. */
.gps-app-chooser .aec-option .aec-app-icon{
  position:relative;
  flex:0 0 46px;
  opacity:1!important;
  visibility:visible!important;
  overflow:hidden;
}

/* Google Maps — recognisable multicolour map pin. */
.gps-app-chooser .gps-google .aec-app-icon{
  background:#fff!important;
  border:1px solid rgba(24,49,33,.12);
  color:transparent!important;
  font-size:0!important;
  box-shadow:0 5px 14px rgba(24,49,33,.10),inset 0 1px 0 rgba(255,255,255,.8)!important;
}
.gps-app-chooser .gps-google .aec-app-icon::before{
  content:"";
  width:25px;
  height:25px;
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  background:conic-gradient(from 42deg,#4285f4 0 25%,#34a853 0 49%,#fbbc04 0 72%,#ea4335 0 100%);
  box-shadow:0 2px 5px rgba(20,52,89,.18);
}
.gps-app-chooser .gps-google .aec-app-icon::after{
  content:"";
  position:absolute;
  left:50%;
  top:47%;
  width:8px;
  height:8px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 1px rgba(0,0,0,.04);
}

/* Apple Maps — blue/green map tile with the existing white location pin. */
.gps-app-chooser .gps-apple .aec-app-icon{
  background:linear-gradient(180deg,#5bc8ff 0 56%,#64c66c 56% 100%)!important;
  border:1px solid rgba(0,91,170,.18);
  color:#fff!important;
  box-shadow:0 5px 14px rgba(0,105,190,.16),inset 0 1px 0 rgba(255,255,255,.35)!important;
}
.gps-app-chooser .gps-apple .aec-app-icon::before,
.gps-app-chooser .gps-apple .aec-app-icon::after{
  content:"";
  position:absolute;
  left:-5px;
  right:-5px;
  height:2px;
  background:rgba(255,255,255,.72);
  transform:rotate(-20deg);
}
.gps-app-chooser .gps-apple .aec-app-icon::before{top:14px}
.gps-app-chooser .gps-apple .aec-app-icon::after{bottom:12px;transform:rotate(17deg)}
.gps-app-chooser .gps-apple .aec-app-icon svg{
  position:relative;
  z-index:2;
  width:23px!important;
  height:23px!important;
  filter:drop-shadow(0 1px 1px rgba(0,69,120,.24));
}

/* Waze — bright cyan app tile with a clear W symbol. */
.gps-app-chooser .gps-waze .aec-app-icon{
  background:linear-gradient(145deg,#62e1f8,#20b8d9)!important;
  border:1px solid rgba(0,122,153,.18);
  color:#083f4a!important;
  font-size:20px!important;
  font-weight:950!important;
  box-shadow:0 5px 14px rgba(20,158,185,.18),inset 0 1px 0 rgba(255,255,255,.42)!important;
}

/* Keep the generic chooser icon visible and aligned as well. */
.gps-app-chooser .share .aec-app-icon,
.gps-app-chooser .gps-android .aec-app-icon{
  opacity:1!important;
  visibility:visible!important;
}

@media(max-width:560px){
  .gps-app-chooser .aec-option .aec-app-icon{flex-basis:42px}
  .gps-app-chooser .gps-google .aec-app-icon::before{width:23px;height:23px}
}


/* EarthRoster v538 — shared employee/admin GPS chooser with native platform ordering. */
.gps-app-chooser .aec-options{gap:9px}
.gps-app-chooser .aec-option{min-height:66px}
.gps-app-chooser .gps-primary{border-color:rgba(35,104,63,.30)!important;box-shadow:0 8px 22px rgba(27,77,43,.10),inset 0 0 0 1px rgba(35,104,63,.06)!important}
.gps-app-chooser.is-apple .gps-apple.gps-primary{border-color:rgba(45,139,224,.30)!important;box-shadow:0 8px 22px rgba(40,118,190,.11),inset 0 0 0 1px rgba(45,139,224,.06)!important}
.gps-app-chooser .aec-option strong{font-size:14px;line-height:1.15}
.gps-app-chooser .aec-option small{line-height:1.3}

/* Android's generic app chooser is distinct from the job-location pin. */
.gps-app-chooser .gps-android .aec-app-icon{
  background:linear-gradient(145deg,#68a85d,#2f6f3c)!important;
  color:#fff!important;
  border:1px solid rgba(32,91,43,.18);
  box-shadow:0 5px 14px rgba(34,96,48,.17),inset 0 1px 0 rgba(255,255,255,.34)!important;
}
.gps-app-chooser .gps-android .aec-app-icon svg{width:23px!important;height:23px!important}

/* Apple devices show Apple Maps first; Android devices never show Apple Maps. */
.gps-app-chooser.is-apple .gps-apple{order:1}
.gps-app-chooser.is-apple .gps-google{order:2}
.gps-app-chooser.is-apple .gps-waze{order:3}
.gps-app-chooser.is-apple .share{order:4}
.gps-app-chooser.is-android .gps-google{order:1}
.gps-app-chooser.is-android .gps-waze{order:2}
.gps-app-chooser.is-android .gps-android{order:3}

@media(max-width:560px){
  .gps-app-chooser .aec-option{min-height:62px}
  .gps-app-chooser .aec-option strong{font-size:13.5px}
  .gps-app-chooser .aec-option small{font-size:11px}
}

/* ---- app-polish-v539.css ---- */
/* EarthRoster v539 — cleaner client search and taller client dropdown. */

/* The outer search field is the only visible input surface. Remove the native
   iOS/Safari focus rectangle that was appearing inside it around typed text. */
body[data-modal-type="shift"] .ww515-client-step .client-search-box input,
body[data-modal-type="shift"] #clientSearch{
  -webkit-appearance:none!important;
  appearance:none!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
  background-image:none!important;
  -webkit-box-shadow:none!important;
  -webkit-tap-highlight-color:transparent!important;
}
body[data-modal-type="shift"] .ww515-client-step .client-search-box input:focus,
body[data-modal-type="shift"] .ww515-client-step .client-search-box input:focus-visible,
body[data-modal-type="shift"] #clientSearch:focus,
body[data-modal-type="shift"] #clientSearch:focus-visible{
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
body[data-modal-type="shift"] #clientSearch::-webkit-search-decoration,
body[data-modal-type="shift"] #clientSearch::-webkit-search-cancel-button,
body[data-modal-type="shift"] #clientSearch::-webkit-search-results-button,
body[data-modal-type="shift"] #clientSearch::-webkit-search-results-decoration{
  display:none!important;
  -webkit-appearance:none!important;
}

/* Keep the focus state on the clean outer field rather than drawing another
   rectangle inside the input. */
body[data-modal-type="shift"] .ww515-client-step .client-search-box:focus-within{
  border-color:#4d8259!important;
  box-shadow:0 0 0 3px rgba(62,116,75,.13)!important;
}

/* Open the client list as a useful, full-height dropdown. It now displays a
   generous number of clients and scrolls internally instead of ending after
   two short rows. Dynamic viewport units keep it usable above phone keyboards. */
body[data-modal-type="shift"] .ww515-client-step .client-picker:not(.is-collapsed){
  display:block!important;
  height:auto!important;
  min-height:220px!important;
  max-height:min(44dvh,430px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  margin-top:9px!important;
  margin-bottom:10px!important;
  padding:5px!important;
  border:1px solid rgba(45,79,51,.15)!important;
  border-radius:14px!important;
  background:#fffef9!important;
  box-shadow:0 12px 28px rgba(25,55,32,.11)!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-gutter:stable;
}
body[data-modal-type="shift"] .ww515-client-step .client-search-row{
  min-height:58px!important;
  padding:10px 11px!important;
  border-radius:11px!important;
}
body[data-modal-type="shift"] .ww515-client-step .client-search-row + .client-search-row{
  border-top:1px solid rgba(43,73,48,.07)!important;
}
body[data-modal-type="shift"] .ww515-client-step .client-search-row .pick-main strong{
  font-size:15.5px!important;
  line-height:1.2!important;
}
body[data-modal-type="shift"] .ww515-client-step .client-search-row .pick-main em{
  margin-top:3px!important;
  font-size:12.5px!important;
  line-height:1.25!important;
}

@media(max-width:430px){
  body[data-modal-type="shift"] .ww515-client-step .client-picker:not(.is-collapsed){
    height:auto!important;
    min-height:210px!important;
    max-height:min(41dvh,380px)!important;
  }
}

/* ---- app-polish-v540.css ---- */
/* EarthRoster v540 — cleaner admin home + travel time on every timesheet entry path. */

/* Admin dashboard: after removing the redundant Bookings & reminders and Directory
   shortcuts, keep Availability visually connected to Today's roster. */
.hm > .hm-avail{
  margin-top:14px!important;
}
.hm > .hm-sec-head{
  margin-top:18px!important;
}

/* Timesheet travel-time field: consistent alongside kilometres without crowding. */
.ww-ts-date-field{margin-bottom:10px!important}
.ww-ts-travel-row,
.ww-travel-pair{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:10px!important;
  align-items:end!important;
}
.ww-unit{font-size:.82em!important;font-weight:650!important;color:#7f887f!important}
.tsr-travel{white-space:nowrap!important}

/* Clock-out: kilometres + travel time sit side-by-side; notes use full width. */
.co500-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.co500-form-grid .ww-co-notes-wide{grid-column:1/-1!important}

/* Admin/employee record editor: neat mobile stacking. */
@media(max-width:560px){
  .ww-ts-travel-row,.ww-travel-pair{gap:8px!important}
  .ww-ts-travel-row .field,.ww-travel-pair .mr2-field{min-width:0!important}
  .ww-ts-travel-row .input,.ww-travel-pair .input{width:100%!important;min-width:0!important}
  .ww-status-field{margin-top:2px!important}
  .co500-form-grid{grid-template-columns:1fr 1fr!important;gap:9px!important}
  .co500-form-grid .co500-input-wrap input{min-width:0!important;width:100%!important}
}
@media(max-width:360px){
  .ww-ts-travel-row,.ww-travel-pair{grid-template-columns:1fr!important}
  .co500-form-grid{grid-template-columns:1fr!important}
  .co500-form-grid .ww-co-notes-wide{grid-column:auto!important}
}

/* Admin focus grid gets one extra compact travel-time column. */
.tfe-travel{font-size:11px!important;font-weight:750!important;color:#647266!important;white-space:nowrap!important}
.tfe-travel{flex:0 0 64px!important}
@media(max-width:900px){.tfe-travel{flex-basis:58px!important}}
/* iOS/WebKit: keep selected time/status text visible in admin/employee timesheet forms. */
body[data-modal-type="admin-entry"] .mr2 select.input,
body[data-modal-type="missed-record"] .mr2 select.input,
body[data-modal-type="record"] .record-entry-modal select.input{
  color:#203126!important;
  -webkit-text-fill-color:#203126!important;
  opacity:1!important;
}
body[data-modal-type="admin-entry"] .mr2 select.input option,
body[data-modal-type="missed-record"] .mr2 select.input option,
body[data-modal-type="record"] .record-entry-modal select.input option{
  color:#203126!important;
  background:#fff!important;
}

/* ---- app-polish-v632.css ---- */
/* EarthRoster v632 — desktop roster-job editor scroll unlock.
   Fixes the legacy V399 desktop rule that hid overflow once the editor grew taller.
   No roster/business logic changes. */
@media (min-width:1024px){
  html body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-body{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-x:none!important;
    overscroll-behavior-y:contain!important;
    scroll-behavior:auto!important;
    scroll-snap-type:none!important;
    overflow-anchor:none!important;
    touch-action:pan-y!important;
    -webkit-overflow-scrolling:auto!important;
    scrollbar-gutter:stable!important;
  }
  html body[data-modal-type="shift"].modal-open #modalHost .shift-modal{
    overflow:hidden!important;
  }
  html body[data-modal-type="shift"].modal-open #modalHost .ww515-shift-builder{
    min-height:max-content!important;
  }
}

/* ---- app-polish-v635.css ---- */
/* EarthRoster v635 — desktop New/Edit roster job: balanced one-screen two-column layout.
   Goal: remove empty gaps, keep all main fields visible together, preserve a safe scroll fallback. */
@media (min-width:1024px){
  body[data-modal-type="shift"].modal-open #modalHost .modal-overlay{
    padding:4px!important;
    align-items:center!important;
    justify-content:center!important;
    background:rgba(10,29,17,.72)!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal{
    width:min(94vw,1060px)!important;
    max-width:1060px!important;
    height:auto!important;
    max-height:calc(100dvh - 8px)!important;
    border-radius:22px!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
    background:#f3f6f1!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-head{
    flex:0 0 auto!important;
    min-height:54px!important;
    padding:11px 16px 9px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-head h2{
    font-size:21px!important;
    line-height:1.05!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-x{
    width:36px!important;
    height:36px!important;
    border-radius:11px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-body{
    flex:0 1 auto!important;
    min-height:0!important;
    padding:10px 12px 8px!important;
    overflow-y:hidden!important;
    overflow-x:hidden!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-foot{
    flex:0 0 auto!important;
    min-height:52px!important;
    padding:7px 12px 9px!important;
    gap:8px!important;
    margin:0!important;
  }

  /* Two genuinely independent stacks — no row-height coupling, so no large blank areas. */
  body[data-modal-type="shift"].modal-open #modalHost .ww635-one-screen-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-areas:none!important;
    grid-template-rows:auto!important;
    grid-auto-rows:auto!important;
    gap:12px!important;
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    padding:0!important;
    align-items:start!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww635-column{
    display:flex!important;
    flex-direction:column!important;
    gap:9px!important;
    min-width:0!important;
    min-height:0!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww635-column > *{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    align-self:stretch!important;
    height:auto!important;
    min-height:0!important;
    grid-area:auto!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww515-step,
  body[data-modal-type="shift"].modal-open #modalHost .ww527-setting-card,
  body[data-modal-type="shift"].modal-open #modalHost .ww515-more-settings{
    padding:9px 10px!important;
    border-radius:14px!important;
    background:#fffefb!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-step-head{
    margin:0 0 7px!important;
    padding-bottom:6px!important;
    gap:8px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-step-number{
    width:24px!important;
    height:24px!important;
    flex:0 0 24px!important;
    border-radius:8px!important;
    font-size:10px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-step-head strong{
    font-size:13px!important;
    line-height:1.1!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-step-head small{
    font-size:8.6px!important;
    line-height:1.15!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-admin-badge{
    padding:4px 7px!important;
    font-size:7.2px!important;
  }

  /* Client */
  body[data-modal-type="shift"].modal-open #modalHost .ww515-client-step>.client-search-panel{
    display:flex!important;
    flex-direction:column!important;
    gap:6px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-client-step .client-search-box{
    height:39px!important;
    min-height:39px!important;
    border-radius:10px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-client-step .client-search-box input{
    font-size:13px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-client-step .add-client-block{margin-top:0!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-client-step .add-client-toggle{
    height:32px!important;
    min-height:32px!important;
    padding:0 10px!important;
    border-radius:9px!important;
    font-size:11px!important;
  }

  /* Schedule */
  body[data-modal-type="shift"].modal-open #modalHost .ww515-date-start-grid{gap:7px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-date-start-grid label{
    font-size:8.7px!important;
    margin-bottom:3px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-date-start-grid .input,
  body[data-modal-type="shift"].modal-open #modalHost .ww515-date-start-grid .time-select{
    height:37px!important;
    min-height:37px!important;
    border-radius:9px!important;
    font-size:12.5px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-finish-line{
    margin-top:6px!important;
    padding:6px 8px!important;
    border-radius:9px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-finish-line>span{font-size:8.7px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-finish-line strong{font-size:11.5px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-finish-line small{font-size:7.7px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-schedule-step>.ww517-visibility{
    margin-top:6px!important;
    padding:7px 8px!important;
    border-radius:10px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .visibility-title{margin-bottom:5px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-state-pill{min-height:20px!important;font-size:7.5px!important;padding:0 7px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-toggle{gap:6px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-opt{
    padding:6px 7px!important;
    min-height:40px!important;
    border-radius:9px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-opt-copy strong{font-size:10.5px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-hint{font-size:8px!important;margin-top:4px!important}

  /* Hours/team — stacked, dense, and gap-free inside the left column. */
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step{
    display:flex!important;
    flex-direction:column!important;
    gap:5px!important;
    height:auto!important;
    min-height:0!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step>.ww515-step-head{margin-bottom:0!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-invoice-row,
  body[data-modal-type="shift"].modal-open #modalHost .ww515-invoice-help,
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step>.emp-field,
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step>.ww515-staff-details,
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step>.ww515-empty-team,
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step>.ww517-single-staff{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    grid-area:auto!important;
    align-self:stretch!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-invoice-row{
    min-height:45px!important;
    padding:6px 7px!important;
    border-radius:10px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-invoice-icon{
    width:28px!important;height:28px!important;border-radius:8px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-invoice-copy strong{font-size:11px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-invoice-copy small{font-size:7.7px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-editor{
    min-width:80px!important;
    padding:5px 6px!important;
    border-radius:9px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-editor input{
    width:45px!important;
    font-size:15px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-editor span{font-size:7.5px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-invoice-help{
    margin:0 1px!important;
    gap:0 5px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-invoice-help span{font-size:7px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-invoice-help strong{font-size:9px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-invoice-help small{font-size:7.5px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step>.emp-field{
    padding:0!important;
    border:0!important;
    box-shadow:none!important;
    background:transparent!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step .shift-section-label{
    margin:0 0 3px!important;
    font-size:10px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step .emp-count-badge{font-size:7.5px!important;padding:3px 6px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step .emp-collapsed{
    min-height:41px!important;
    padding:5px 7px!important;
    border-radius:9px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step .emp-collapsed-ic{width:29px!important;height:29px!important;border-radius:8px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step .emp-collapsed-copy strong{font-size:10.5px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step .emp-collapsed-copy small{font-size:7.7px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-staff-details,
  body[data-modal-type="shift"].modal-open #modalHost .ww515-empty-team{
    padding-top:0!important;
    border-top:0!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-staff-details>summary{
    min-height:39px!important;
    padding:0!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-summary-icon{width:27px!important;height:27px!important;border-radius:8px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-summary-copy strong{font-size:10.5px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww515-summary-copy small{font-size:7.7px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww517-single-staff{
    padding:6px 7px!important;
    border-radius:10px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww517-single-head{min-height:27px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww517-single-row{min-height:35px!important;padding:4px 6px!important;border-radius:8px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww517-single-staff p{margin-top:3px!important;font-size:7px!important}

  /* Bottom settings */
  body[data-modal-type="shift"].modal-open #modalHost .ww527-setting-card{
    padding:8px 9px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww527-setting-head{margin-bottom:6px!important;padding-bottom:5px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww527-setting-copy strong{font-size:11.5px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww527-setting-copy small{font-size:7.7px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww527-field>span{font-size:8px!important;margin-bottom:3px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww527-repeat-card .input{
    height:34px!important;min-height:34px!important;border-radius:8px!important;font-size:10.5px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww527-colour-card .shift-colour-head{
    min-height:40px!important;
    padding:6px 8px!important;
    border-radius:9px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww527-colour-current b{font-size:7px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww527-colour-current small{font-size:9px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww527-colour-action{font-size:10px!important}
  body[data-modal-type="shift"].modal-open #modalHost .ww527-notes-card .notes-textarea{
    height:68px!important;
    min-height:68px!important;
    max-height:68px!important;
    resize:none!important;
    font-size:10.5px!important;
    padding:8px!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-foot .sft-btn{
    height:38px!important;
    border-radius:10px!important;
    font-size:11.5px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-foot .sft-cancel{width:112px!important}
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-foot .sft-save{width:206px!important}
}

/* Very short desktop windows keep the exact layout but scroll inside the modal instead of clipping anything. */
@media (min-width:1024px) and (max-height:760px){
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-body{
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
  }
}
@media (min-width:1024px){
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal{
    display:block!important;
    height:auto!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-body{
    display:block!important;
    height:auto!important;
    max-height:calc(100dvh - 114px)!important;
    flex:none!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-foot{
    display:flex!important;
  }
}

/* ---- app-polish-v636.css ---- */
/* EarthRoster v636 — desktop New/Edit roster job: tall, slim, edge-filling split layout.
   Keep the v635 two-column information design, but make the desktop editor feel
   anchored to the viewport instead of floating in the middle. */
@media (min-width:1024px){
  body[data-modal-type="shift"].modal-open #modalHost .modal-overlay{
    padding:5px!important;
    align-items:center!important;
    justify-content:center!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .shift-modal{
    width:min(90vw,900px)!important;
    max-width:900px!important;
    height:min(calc(100dvh - 10px),920px)!important;
    max-height:min(calc(100dvh - 10px),920px)!important;
    min-height:min(calc(100dvh - 10px),720px)!important;
    display:flex!important;
    flex-direction:column!important;
    border-radius:20px!important;
    overflow:hidden!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-head{
    flex:0 0 54px!important;
    min-height:54px!important;
    padding:10px 15px 8px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-head h2{
    font-size:20px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-x{
    width:34px!important;
    height:34px!important;
    border-radius:10px!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-body{
    flex:1 1 auto!important;
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    display:block!important;
    padding:8px 10px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    scrollbar-gutter:stable!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-foot{
    flex:0 0 50px!important;
    min-height:50px!important;
    padding:6px 10px 7px!important;
    margin:0!important;
  }

  /* Preserve the v635 independent split columns, just make them a little narrower and tighter. */
  body[data-modal-type="shift"].modal-open #modalHost .ww635-one-screen-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:10px!important;
    height:auto!important;
    min-height:0!important;
    align-items:start!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww635-column{
    gap:7px!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww515-step,
  body[data-modal-type="shift"].modal-open #modalHost .ww527-setting-card{
    padding:8px 9px!important;
    border-radius:13px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-step-head{
    margin-bottom:6px!important;
    padding-bottom:5px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-step-head strong{
    font-size:12.5px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-step-head small{
    font-size:8.3px!important;
  }

  /* Keep the left/right content compact enough to remain one-screen at laptop height. */
  body[data-modal-type="shift"].modal-open #modalHost .ww515-client-step .client-search-box{
    height:37px!important;
    min-height:37px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-client-step .add-client-toggle{
    height:30px!important;
    min-height:30px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-date-start-grid .input,
  body[data-modal-type="shift"].modal-open #modalHost .ww515-date-start-grid .time-select{
    height:35px!important;
    min-height:35px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-finish-line{
    margin-top:5px!important;
    padding:5px 7px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-schedule-step>.ww517-visibility{
    margin-top:5px!important;
    padding:6px 7px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-opt{
    min-height:37px!important;
    padding:5px 6px!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step{
    gap:4px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-invoice-row{
    min-height:42px!important;
    padding:5px 6px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step .emp-collapsed{
    min-height:38px!important;
    padding:4px 6px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww517-single-staff{
    padding:5px 6px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww517-single-row{
    min-height:33px!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww527-repeat-card .input{
    height:32px!important;
    min-height:32px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww527-colour-card .shift-colour-head{
    min-height:37px!important;
    padding:5px 7px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww527-notes-card .notes-textarea{
    height:62px!important;
    min-height:62px!important;
    max-height:62px!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-foot .sft-btn{
    height:36px!important;
  }
}

/* On shorter laptop displays, use practically the whole screen height while keeping a safe internal scroll fallback. */
@media (min-width:1024px) and (max-height:800px){
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal{
    height:calc(100dvh - 8px)!important;
    max-height:calc(100dvh - 8px)!important;
    min-height:0!important;
    border-radius:16px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .modal-overlay{
    padding:4px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-head{
    flex-basis:50px!important;
    min-height:50px!important;
    padding-top:8px!important;
    padding-bottom:7px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal .modal-foot{
    flex-basis:46px!important;
    min-height:46px!important;
    padding-top:5px!important;
    padding-bottom:5px!important;
  }
}

/* Final v636 fill pass: use the full desktop height without reintroducing a wide modal.
   The two independent columns stretch to use the available vertical canvas instead
   of leaving one large blank area under the form. */
@media (min-width:1024px){
  body[data-modal-type="shift"].modal-open #modalHost .shift-modal{
    height:calc(100dvh - 10px)!important;
    max-height:calc(100dvh - 10px)!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww635-one-screen-grid{
    height:100%!important;
    min-height:100%!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww635-column{
    height:100%!important;
    min-height:0!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww635-column-left .ww515-hours-team-step{
    flex:1 1 auto!important;
    justify-content:flex-start!important;
    row-gap:8px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww635-column-right .ww527-notes-card{
    flex:1 1 auto!important;
    display:flex!important;
    flex-direction:column!important;
    min-height:0!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww635-column-right .ww527-notes-card .ww527-notes-field{
    flex:1 1 auto!important;
    display:flex!important;
    flex-direction:column!important;
    min-height:0!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww635-column-right .ww527-notes-card .notes-textarea{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:72px!important;
    max-height:none!important;
    resize:none!important;
  }
}

/* Readability/balance pass: use the extra vertical room for real controls rather than dead space. */
@media (min-width:1024px){
  body[data-modal-type="shift"].modal-open #modalHost .ww515-step,
  body[data-modal-type="shift"].modal-open #modalHost .ww527-setting-card{
    padding:10px 10px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww635-column{
    gap:9px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-step-head{
    margin-bottom:7px!important;
    padding-bottom:6px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-client-step .client-search-box{
    height:40px!important;
    min-height:40px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-client-step .add-client-toggle{
    height:33px!important;
    min-height:33px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-date-start-grid .input,
  body[data-modal-type="shift"].modal-open #modalHost .ww515-date-start-grid .time-select{
    height:38px!important;
    min-height:38px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-invoice-row{
    min-height:46px!important;
    padding:6px 7px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step{
    row-gap:7px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww515-hours-team-step .emp-collapsed{
    min-height:42px!important;
    padding:5px 7px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww517-single-staff{
    padding:7px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww517-single-row{
    min-height:36px!important;
  }
  body[data-modal-type="shift"].modal-open #modalHost .ww527-repeat-card .input{
    height:35px!important;
    min-height:35px!important;
  }
}

/* ---- app-polish-v638.css ---- */
/* EarthRoster v638 — restore v636 tall split desktop roster editor and refine only publishing controls.
   The v636 two-column one-screen layout stays intact. These rules make Unpublished/Published
   noticeably slimmer and more restrained without shrinking the rest of the form. */
@media (min-width:1024px){
  body[data-modal-type="shift"].modal-open #modalHost .ww515-schedule-step>.ww517-visibility{
    margin-top:5px!important;
    padding:6px 7px 7px!important;
    border-radius:12px!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .panel-title{
    margin-bottom:5px!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-state-pill{
    padding:3px 7px!important;
    font-size:7.5px!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-toggle{
    gap:6px!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-opt{
    min-height:32px!important;
    height:32px!important;
    padding:3px 7px!important;
    border-radius:9px!important;
    gap:5px!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-opt-icon{
    width:16px!important;
    height:16px!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-opt-copy{
    gap:0!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-opt-copy strong{
    font-size:9.8px!important;
    line-height:1.05!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-opt-copy small{
    font-size:7px!important;
    line-height:1.05!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-opt-check{
    right:5px!important;
    width:14px!important;
    height:14px!important;
    font-size:8px!important;
  }

  body[data-modal-type="shift"].modal-open #modalHost .ww517-visibility .vis-hint{
    margin-top:5px!important;
    font-size:8px!important;
  }
}

/* ---- app-polish-v640.css ---- */
/* EarthRoster v640 — Professional Messages cleanup.
   Scope: open mobile chat conversations only. Functionality unchanged. */
@media (max-width:1023px){
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-scroll{
    padding:10px 10px 14px!important;
    gap:0!important;
    background:linear-gradient(180deg,#0c151b 0%,#091217 100%)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-date-separator{
    margin:5px 0 10px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-date-separator span{
    min-height:24px!important;
    padding:3px 10px!important;
    border-radius:12px!important;
    background:#202c33!important;
    border:1px solid rgba(255,255,255,.065)!important;
    color:rgba(242,246,247,.86)!important;
    font-size:10px!important;
    line-height:16px!important;
    font-weight:750!important;
    box-shadow:none!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    gap:6px!important;
    align-items:flex-end!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.group-start{margin-top:6px!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.group-continuation{margin-top:2px!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine{justify-content:flex-end!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine){justify-content:flex-start!important}

  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg-av{
    width:28px!important;
    min-width:28px!important;
    max-width:28px!important;
    height:28px!important;
    flex:0 0 28px!important;
    padding:0 0 1px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg-av .avatar{
    width:26px!important;
    height:26px!important;
    min-width:26px!important;
    border-radius:50%!important;
    font-size:9.5px!important;
    line-height:1!important;
    border:1px solid rgba(255,255,255,.18)!important;
    box-shadow:0 2px 6px rgba(0,0,0,.18)!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine) .bubble{
    width:fit-content!important;
    min-width:0!important;
    max-width:min(78%,340px)!important;
    padding:8px 11px 7px!important;
    border-radius:15px!important;
    box-shadow:0 2px 7px rgba(0,0,0,.12)!important;
    backdrop-filter:none!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine) .bubble{
    align-items:flex-start!important;
    background:linear-gradient(180deg,#1e2930 0%,#1a242b 100%)!important;
    border:1px solid rgba(164,187,199,.10)!important;
    border-bottom-left-radius:5px!important;
    color:#f2f5f6!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble{
    align-items:flex-end!important;
    background:linear-gradient(145deg,#3f774c 0%,#32623f 100%)!important;
    border:1px solid rgba(190,224,194,.12)!important;
    border-bottom-right-radius:5px!important;
    color:#fff!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-author{
    margin:0 0 3px!important;
    color:#76bd7b!important;
    font-size:10.5px!important;
    line-height:1.05!important;
    font-weight:800!important;
    letter-spacing:.005em!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-text{
    width:auto!important;
    max-width:100%!important;
    margin:0!important;
    font-size:13.5px!important;
    line-height:1.34!important;
    font-weight:480!important;
    letter-spacing:0!important;
    white-space:pre-wrap!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-meta{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    align-self:stretch!important;
    min-width:0!important;
    margin-top:4px!important;
    gap:5px!important;
    line-height:1!important;
    flex-wrap:nowrap!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-meta time,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg-status,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .status-word{
    margin:0!important;
    padding:0!important;
    font-size:9.25px!important;
    line-height:1!important;
    font-weight:650!important;
    white-space:nowrap!important;
    opacity:.70!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .b-meta time,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .msg-status,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .status-word{
    color:rgba(241,249,242,.80)!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer{
    grid-template-columns:44px minmax(0,1fr) 44px!important;
    column-gap:8px!important;
    row-gap:7px!important;
    min-height:60px!important;
    padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px))!important;
    background:rgba(13,23,29,.98)!important;
    border-top:1px solid rgba(255,255,255,.065)!important;
    box-shadow:0 -8px 22px rgba(0,0,0,.12)!important;
  }
  html body.ww-chat-active.chat-thread-open.ww370-chat-keyboard-open .chat-shell .chat-thread .chat-composer{
    padding-bottom:8px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer textarea.chat-editbox,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread #chatInput.chat-editbox{
    height:44px!important;
    min-height:44px!important;
    max-height:min(116px,30vh)!important;
    padding:10px 14px!important;
    border:1px solid rgba(170,188,198,.15)!important;
    border-radius:22px!important;
    background:#1a252c!important;
    color:#f5f7f7!important;
    caret-color:#79bc73!important;
    font-size:16px!important;
    font-weight:475!important;
    line-height:1.4!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.018)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer textarea.chat-editbox:focus,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread #chatInput.chat-editbox:focus{
    border-color:rgba(108,166,106,.58)!important;
    box-shadow:0 0 0 3px rgba(91,143,89,.10)!important;
    outline:none!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer textarea.chat-editbox::placeholder,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread #chatInput.chat-editbox::placeholder{
    color:rgba(225,232,235,.45)!important;
    opacity:1!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .cattach,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .csend{
    width:44px!important;
    min-width:44px!important;
    height:44px!important;
    min-height:44px!important;
    border-radius:22px!important;
    margin:0!important;
    box-shadow:none!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .cattach{
    background:#182329!important;
    border:1px solid rgba(170,188,198,.14)!important;
    color:#dce5e6!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .cattach:active{
    background:#202d34!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .csend{
    background:linear-gradient(145deg,#4e8c59 0%,#376f45 100%)!important;
    border:1px solid rgba(220,240,222,.14)!important;
    color:#fff!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .csend:active{
    transform:scale(.97)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .cattach svg,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .csend svg{
    width:20px!important;
    height:20px!important;
  }
}

@media(max-width:390px){
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine) .bubble{
    max-width:min(80%,300px)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-text{font-size:13px!important}
}


/* ---- inline style 36 ---- */

  /* Hide the app until deferred CSS patches have applied, then fade in once —
     see ww236RevealApp in app.js for why. */
  #app{opacity:0}
  body.ww-app-visible #app{opacity:1;transition:opacity .18s ease}
  /* Desktop browsers must never be covered by the mobile/PWA launch reveal.
     Show the rendered workspace immediately and neutralise any stale overlay. */
  @media (min-width:1024px) and (pointer:fine){
    #app{opacity:1!important;transition:none!important}
    .ww-login-reveal,#wwLoginReveal{display:none!important;visibility:hidden!important;pointer-events:none!important}
    body.ww-login-reveal-open{overflow:auto!important;touch-action:auto!important}
  }


/* ---- inline style 37 ---- */

  .ww520-geofence-overlay{
    position:fixed!important;inset:0!important;z-index:2147483000!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    padding:20px!important;background:rgba(12,31,22,.42)!important;
    backdrop-filter:blur(3px)!important;-webkit-backdrop-filter:blur(3px)!important;
  }
  .ww520-geofence-modal{
    position:relative!important;width:min(100%,340px)!important;max-height:min(72dvh,460px)!important;
    overflow:auto!important;margin:0!important;padding:17px!important;
    border:1px solid rgba(31,91,54,.16)!important;border-radius:20px!important;
    background:#fffdf9!important;box-shadow:0 22px 55px rgba(7,28,18,.24)!important;
    text-align:left!important;animation:ww520GeoIn .18s cubic-bezier(.2,.8,.2,1) both!important;
  }
  .ww520-geo-close{
    position:absolute!important;top:11px!important;right:11px!important;width:32px!important;height:32px!important;
    border:1px solid #e3e8e3!important;border-radius:10px!important;background:#f7f8f5!important;color:#617067!important;
    font-size:21px!important;line-height:1!important;display:grid!important;place-items:center!important;
  }
  .ww520-geo-heading{display:flex!important;align-items:center!important;gap:10px!important;padding-right:34px!important;}
  .ww520-geo-icon{
    flex:0 0 auto!important;width:40px!important;height:40px!important;border-radius:13px!important;
    display:grid!important;place-items:center!important;background:#eaf3e9!important;color:#2d7044!important;
    box-shadow:inset 0 0 0 1px #d5e6d4!important;
  }
  .ww520-geo-icon svg{width:20px!important;height:20px!important;stroke-width:2.15!important;}
  .ww520-geo-eyebrow{margin:0 0 3px!important;color:#587064!important;font-size:11px!important;font-weight:850!important;letter-spacing:.07em!important;text-transform:uppercase!important;}
  .ww520-geofence-modal h2{margin:0!important;color:#193426!important;font-family:inherit!important;font-size:18px!important;line-height:1.18!important;letter-spacing:-.02em!important;}
  .ww520-geo-message{margin:13px 0 10px!important;color:#526158!important;font-size:14px!important;line-height:1.5!important;}
  .ww520-geo-message strong{color:#213b2d!important;font-weight:850!important;}
  .ww520-geo-range{
    display:flex!important;align-items:flex-start!important;gap:8px!important;padding:10px 11px!important;
    border:1px solid #d9e7d8!important;border-radius:13px!important;background:#f1f7ef!important;
    color:#345342!important;font-size:13px!important;line-height:1.45!important;
  }
  .ww520-geo-range-icon{
    flex:0 0 auto!important;width:20px!important;height:20px!important;border-radius:999px!important;
    display:grid!important;place-items:center!important;background:#dbeada!important;color:#24613a!important;
  }
  .ww520-geo-range-icon svg{width:13px!important;height:13px!important;stroke-width:2.6!important;}
  .ww520-geo-help{margin:9px 2px 0!important;color:#748078!important;font-size:12px!important;line-height:1.45!important;}
  .ww520-geo-help strong{color:#506158!important;font-weight:800!important;}
  .ww520-geo-actions{display:flex!important;justify-content:flex-end!important;margin-top:12px!important;}
  .ww520-geo-button{
    min-width:96px!important;min-height:42px!important;padding:0 18px!important;border:0!important;border-radius:12px!important;
    background:linear-gradient(135deg,#438c56,#24643b)!important;color:#fff!important;
    box-shadow:0 8px 18px rgba(32,99,58,.18)!important;font-size:13.5px!important;font-weight:850!important;
  }
  @keyframes ww520GeoIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
  @media(max-width:390px){
    .ww520-geofence-overlay{padding:16px!important;align-items:center!important;}
    .ww520-geofence-modal{width:min(100%,328px)!important;padding:16px!important;border-radius:19px!important;}
    .ww520-geofence-modal h2{font-size:17.5px!important;}
    .ww520-geo-message{font-size:13.5px!important;}
  }
  @media(prefers-reduced-motion:reduce){.ww520-geofence-modal{animation:none!important;}}


/* ---- inline style 38 ---- */

/* FINAL STRUCTURAL FIX FOR iPHONE HOME SCREEN BOTTOM STRIP */
@media (max-width:1023px){
  :root{
    /* v448: --safe-b must reflect the REAL iOS inset. Forcing it to 0 made the
       installed (Home Screen) app mis-size the bottom bar on first load. */
    --safe-b:env(safe-area-inset-bottom, 0px)!important;
    --ww-kate-dock-h:64px!important;
    --ww-kate-dock-inner-h:48px!important;
    --ww-kate-dock-bg:#102719!important;
    --ww-kate-page-bg:#e6f0e3!important;
  }
  html,body{
    margin:0!important;padding:0!important;width:100%!important;min-width:100%!important;min-height:100%!important;
    background:var(--ww-kate-page-bg)!important;background-color:var(--ww-kate-page-bg)!important;overflow-x:hidden!important;
  }
  #app,.shell,.main{
    background:var(--ww-kate-page-bg)!important;background-color:var(--ww-kate-page-bg)!important;min-height:100dvh!important;overflow-x:hidden!important;
  }
  .content,main.content{
    background:var(--ww-kate-page-bg)!important;background-color:var(--ww-kate-page-bg)!important;
    padding-bottom:calc(var(--ww-kate-dock-h) + 10px + env(safe-area-inset-bottom, 0px))!important;margin-bottom:0!important;overflow-x:hidden!important;
  }
  .content > .page,main.content > .page{padding-bottom:0!important;margin-bottom:0!important;}
  .dock-inner{all:unset!important;box-sizing:border-box!important;width:100%!important;max-width:560px!important;height:var(--ww-kate-dock-inner-h)!important;min-height:var(--ww-kate-dock-inner-h)!important;max-height:var(--ww-kate-dock-inner-h)!important;margin:0 auto!important;padding:0!important;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;align-items:center!important;justify-items:center!important;gap:0!important;background:transparent!important;overflow:hidden!important;}
  .dock-tab:active,.dock-tab.is-active{transform:none!important;opacity:1!important;background:transparent!important;}
  .dock-ico{all:unset!important;box-sizing:border-box!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;max-width:40px!important;max-height:40px!important;flex:0 0 40px!important;display:grid!important;place-items:center!important;border-radius:50%!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.15)!important;color:rgba(226,238,220,.82)!important;margin:0!important;padding:0!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important;}
  .dock-ico svg,.dock-tab svg{width:19px!important;height:19px!important;min-width:19px!important;min-height:19px!important;max-width:19px!important;max-height:19px!important;display:block!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;fill:none!important;stroke:currentColor!important;stroke-width:2.1!important;}
  .dock-lbl{all:unset!important;box-sizing:border-box!important;display:block!important;max-width:100%!important;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,system-ui,sans-serif!important;font-size:9.4px!important;line-height:1.08!important;font-weight:800!important;letter-spacing:.003em!important;text-align:center!important;color:rgba(226,238,220,.78)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:clip!important;}
  .dock-tab.is-active .dock-ico{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;max-width:44px!important;max-height:44px!important;flex-basis:44px!important;background:linear-gradient(180deg,#fffdf4 0%,#eef5e8 100%)!important;color:#1f3f28!important;border-color:rgba(255,255,255,.72)!important;box-shadow:0 7px 16px rgba(6,20,10,.36),inset 0 1px 0 rgba(255,255,255,.95)!important;}
  .dock-tab.is-active .dock-lbl{color:#ffffff!important;font-weight:900!important;}
  .dock-tab.is-active::after{display:none!important;content:none!important;}
  .toast{bottom:calc(var(--ww-kate-dock-h) + 10px)!important;}
  body.chat-thread-open .dock{display:flex!important;}
  body.modal-open .dock{display:none!important;}
  body.chat-thread-open::after{display:block!important;}
}
@media (max-width:380px){
  :root{--ww-kate-dock-h:54px!important;--ww-kate-dock-inner-h:48px!important;}
  .dock-ico{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;max-width:38px!important;max-height:38px!important;flex-basis:38px!important;}
  .dock-tab.is-active .dock-ico{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;max-width:42px!important;max-height:42px!important;flex-basis:42px!important;}
  .dock-lbl{font-size:8.8px!important;}
}

/* NORMAL BOTTOM MENU: compact bar flush to the very bottom edge.
   No dark void below the icons. Modals/dialogs cover it normally. */
@media (max-width:768px){
  :root{
    --safe-b: env(safe-area-inset-bottom, 0px) !important;
    --ww-kate-dock-h: 64px !important;        /* visible bar (icons+labels) */
    --ww-kate-dock-inner-h: 56px !important;
  }
  .dock-inner{
    height:50px!important;min-height:50px!important;max-height:50px!important;
    align-items:center!important;
  }

  /* In a chat conversation, hide the bottom menu so the composer sits at the
     very bottom (standard messaging pattern). Back arrow returns to the list. */
  body.chat-thread-open .dock{display:none!important;}
  body.chat-thread-open::after{display:none!important;}
}

/* =========================================================================
   FRESH MOBILE MENU  —  rebuilt from scratch (replaces the old .dock system)
   ========================================================================= */
@media (max-width:1023px){

  /* Very narrow phones (iPhone SE 1st gen, small Androids ~320px): six labels
     don't fit at the standard size, so step the type down slightly rather than
     letting "Dashboard" and "Messages" truncate. */
  @media (max-width:360px){
  }

  /* page clears the bar */
  .content,main.content{
    padding-bottom:calc(74px + env(safe-area-inset-bottom, 0px))!important;
  }
  body.chat-thread-open::after,
  body.modal-open::after{display:none!important}
}
/* hide on desktop (sidebar is used there) */
@media (min-width:1024px){ }

/* ===== Native-app feel: tap highlight + momentum + universal press feedback ===== */
*{-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{overscroll-behavior-y:none}  /* stop rubber-band on the whole page */
/* momentum scroll everywhere that scrolls */
.content,.chat-scroll,.cv-threads,.modal-scroll,.modal-body{-webkit-overflow-scrolling:touch}
/* gentle press feedback on anything tappable that doesn't already define one */
button:not(:disabled):active,
[data-action]:active,
.card:active,
a[role="button"]:active{
  transform:scale(.97);
  transition:transform .06s ease;
}
@media (prefers-reduced-motion:reduce){
  button:active,[data-action]:active,.card:active{transform:none}
}

/* =========================================================================
   Freeze the Messages search bar + heading at the top while the chat list
   scrolls beneath it (same idea as the frozen page header).
   ========================================================================= */
@media (max-width:1023px){
  .cv-list{position:relative}
  .cv-head,
  .cv-search{
    position:sticky!important;
    z-index:20!important;
    /* frosted backing so list rows don't show through while scrolling */
    background:rgba(233,240,228,.96)!important;
    -webkit-backdrop-filter:blur(10px)!important;
    backdrop-filter:blur(10px)!important;
  }
  .cv-head{ top:0!important; padding-top:8px!important; }
  /* search sits directly below the head; offset by the head's height */
  .cv-search{ top:42px!important; margin-bottom:10px!important; }
  /* a little breathing room so the first row isn't tight under the search */
  .cv-threads{ padding-top:4px!important; }
}


/* ---- inline style 39 ---- */

/* V106 desktop performance patch: desktop only. Removes page fades/transitions
   and disables heavy animated paint effects so page changes feel instant. */
@media (min-width:1024px){
  html,body,#app,.shell,.main,.content{scroll-behavior:auto!important;}
  *,*::before,*::after{
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
  .page,.page *,
  .modal-overlay,.modal,.modal *{
    animation:none!important;
    transition:none!important;
  }
  .page{opacity:1!important;transform:none!important;will-change:auto!important;}
  .modal-overlay{opacity:1!important;}
  .modal{transform:none!important;}
  .icon-btn,.topbar,.modal,.card,.panel,.wk-col,.wk-shift,.emp-shift,
  .directory-card,
  .mobile-nav,.dock,.toast,.btn,.nav-item{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    filter:none!important;
    will-change:auto!important;
  }
  .ring-fg{transition:none!important;}
  .live-dot,.presence-dot,.dot,.pulse{animation:none!important;}
}


/* ---- inline style 40 ---- */

/* V107: requested fixes only — show roster staff names, hide inline chat row action buttons, keep chat options on press-and-hold / swipe. */
.rgc-staff{display:flex;align-items:center;gap:4px;margin-top:3px;font-size:10px;font-weight:800;color:rgba(255,255,255,.94);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rgc-staff svg{width:12px;height:12px;stroke-width:2.3;flex:0 0 12px}
.rc-meta{display:block!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}.rc-meta .rc-staff-line{display:block;margin-top:2px;font-weight:850;color:rgba(255,255,255,.94);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width:1024px){.rc-meta .rc-staff-line{color:#405643}.home-roster-list .rc-meta .rc-staff-line{color:#405643}}
.cv-row .cv-readtoggle,.cv-row .cv-mini-action{display:none!important;visibility:hidden!important;width:0!important;height:0!important;margin:0!important;padding:0!important;pointer-events:none!important}
.cv-row{touch-action:pan-y;user-select:none;-webkit-user-select:none}
.cv-row.ww-swipe-peek{transition:transform .12s ease!important}

/* ---- v113 chat action sheet: simplified, professional press-and-hold menu ---- */
.ca-sheet{display:block}
.ca-head{
  display:flex;align-items:center;gap:12px;
  padding:2px 2px 16px;margin-bottom:14px;
  border-bottom:1px solid rgba(42,70,42,.10);
}
.ca-head-av .avatar{width:42px;height:42px;border-radius:14px;flex:0 0 42px}
.ca-head-text{display:flex;flex-direction:column;min-width:0;gap:2px}
.ca-head-name{font-family:'Fraunces',Georgia,serif;font-size:18px;font-weight:700;color:#1b2e1f;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ca-head-sub{font-size:12.5px;color:#76817a;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.ca-actions{display:flex;flex-direction:column;gap:8px}
.ca-row{
  display:flex;align-items:center;gap:13px;width:100%;text-align:left;
  padding:11px 12px;border-radius:14px;
  background:#fbfaf4;border:1px solid rgba(42,70,42,.09);
  color:#1f3324;cursor:pointer;
  transition:background .12s ease,border-color .12s ease,transform .06s ease;
}
.ca-row:active{transform:scale(.985);background:#f3f1e7}
.ca-ic{
  flex:0 0 38px;width:38px;height:38px;border-radius:11px;
  display:grid;place-items:center;
  background:#eef2e8;color:#39613f;
}
.ca-ic svg{width:19px;height:19px;stroke-width:2}
.ca-ic-read{background:#e9f1ea;color:#33683f}
.ca-ic-archive{background:#eef0f3;color:#4a5566}
.ca-ic-danger{background:#fcecea;color:#b23b30}
.ca-txt{display:flex;flex-direction:column;min-width:0;gap:1px}
.ca-label{font-size:15px;font-weight:750;line-height:1.25;color:#1f3324}
.ca-desc{font-size:12px;font-weight:500;color:#7c867d;line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ca-row-danger{background:#fdf4f3;border-color:rgba(178,59,48,.16)}
.ca-row-danger:active{background:#fbe9e7}
.ca-row-danger .ca-label{color:#a8392f}
.ca-row-danger .ca-desc{color:#b07d77}
.ca-cancel{width:100%;font-weight:750}

/* For the chat action sheet only: hide the empty default title bar and tighten
   the body/footer so the sheet reads as a clean, compact action menu. */
body[data-modal-type="chat-actions"] .modal-head{display:none}
body[data-modal-type="chat-actions"] .modal-body{padding-top:20px}
body[data-modal-type="chat-actions"] .modal-foot{padding-top:14px}
body[data-modal-type="chat-actions"] .modal{max-width:420px}


/* ---- inline style 41 ---- */

/* V109 — stability/performance pass.
   Keeps existing design/data. Staff names stay visible on MOBILE roster cards only. */
html,body,#app,.shell,.main,.content{scroll-behavior:auto!important;overscroll-behavior-y:contain!important;}
.page{animation:none!important;opacity:1!important;transform:none!important;will-change:auto!important;}
.page,.modal,.modal-overlay,.sheet,.drawer,.toast,.rcard,.rgc,.cv-row,.nav-item,.mobile-nav,.fresh-mobile-menu,.btn,.icon-btn{transition:none!important;animation:none!important;}
.live-dot,.presence-dot,.dot,.pulse,.ring-fg{animation:none!important;transition:none!important;}
@media (min-width:1024px){
  /* Employee names on roster cards are for mobile only. Keep desktop grid clean. */
  .rc-meta .rc-staff-line,
  .home-roster-list .rc-meta .rc-staff-line,
  .rgc-staff{display:none!important;visibility:hidden!important;height:0!important;max-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;}
  .rc-meta{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .content,.page,.roster-page,.week-grid,.wk-grid,.dashboard-grid{contain:layout paint!important;}
  .modal,.panel,.card,.shift-card,.wk-shift,.rgc,.rcard,.cv-row{will-change:auto!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}
}
@media (max-width:1023px){
  /* Mobile keeps assigned staff names on shift cards. */
  .rgc-staff{display:flex!important;align-items:center!important;}
  .rc-meta .rc-staff-line{display:block!important;}
  .content{-webkit-overflow-scrolling:touch!important;}
}


/* ---- inline style 42 ---- */

@media (min-width:1024px){
  .rc-meta .rc-staff-line,.home-roster-list .rc-meta .rc-staff-line,.rgc-staff{display:none!important;visibility:hidden!important;height:0!important;max-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important}
}
@media (max-width:1023px){
  .rgc-staff{display:inline-flex!important;align-items:center!important;gap:8px!important;margin-top:7px!important;padding:4px 11px 4px 4px!important;border-radius:999px!important;background:#173b23!important;background:color-mix(in srgb, var(--accent-deep,#163f24) 88%, #000 12%)!important;color:#fff!important;border:1px solid rgba(255,255,255,.20)!important;box-shadow:0 4px 12px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.16)!important;font-size:12.6px!important;font-weight:900!important;line-height:1.1!important;letter-spacing:-.005em!important;width:auto!important;max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .rgc-staff-kicker{display:inline-flex!important;align-items:center!important;justify-content:center!important;height:21px!important;padding:0 9px!important;border-radius:999px!important;background:#7fb56a!important;color:#10240f!important;font-size:9.6px!important;font-weight:900!important;letter-spacing:.09em!important;flex:0 0 auto!important;text-shadow:none!important;box-shadow:0 1px 2px rgba(0,0,0,.18)!important}
  .rgc-staff-names{display:inline-flex!important;align-items:center!important;line-height:1!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:#ffffff!important;font-weight:900!important}
  .rc-meta .rc-staff-line{display:inline-flex!important;align-items:center!important;gap:7px!important;margin-top:5px!important;padding:3px 11px 3px 4px!important;border-radius:999px!important;background:#173b23!important;background:color-mix(in srgb, var(--deep,#163f24) 88%, #000 12%)!important;color:#fff!important;border:1px solid rgba(255,255,255,.20)!important;box-shadow:0 4px 12px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.16)!important;font-size:12.6px!important;font-weight:900!important;line-height:1.15!important;width:fit-content!important;max-width:100%!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
  .rc-meta .rc-staff-line .rc-staff-kicker{display:inline-flex!important;align-items:center!important;justify-content:center!important;height:20px!important;padding:0 9px!important;border-radius:999px!important;background:#7fb56a!important;color:#10240f!important;font-size:9.4px!important;font-weight:900!important;letter-spacing:.09em!important;flex:0 0 auto!important;text-shadow:none!important;box-shadow:0 1px 2px rgba(0,0,0,.2)!important}
  .rc-meta .rc-staff-line .rc-staff-names{display:inline-flex!important;align-items:center!important;line-height:1!important;overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;flex:0 0 auto!important;color:#ffffff!important;font-weight:900!important}
  .cv-row .cv-readtoggle,.cv-row .cv-mini-action{display:none!important;visibility:hidden!important;width:0!important;height:0!important;margin:0!important;padding:0!important;pointer-events:none!important}
  .chat-scroll{contain:none!important;will-change:auto!important}
}


/* ---- inline style 43 ---- */

/* V110 — chat composer placeholder (contenteditable div needs :empty:before,
   not ::placeholder), plus roster name bars that hug the name length. */

/* Chat input is a contenteditable DIV, so show the placeholder this way. */
.chat-composer .chat-editbox:empty:before,
#chatInput.chat-editbox:empty:before{
  content:attr(data-placeholder);
  color:rgba(70,90,70,.5);
  pointer-events:none;
}
body.chat-thread-open .chat-composer .chat-editbox:empty:before,
body.chat-thread-open #chatInput.chat-editbox:empty:before{
  color:rgba(255,255,255,.6);
}
.chat-composer .chat-editbox{
  display:block;flex:1;min-height:46px;max-height:132px;overflow-y:auto;
  padding:12px 15px;line-height:1.35;font-size:15px;
  white-space:pre-wrap;word-break:break-word;outline:none;cursor:text;
  -webkit-user-modify:read-write-plaintext-only;
}
.chat-composer .chat-editbox:focus{border-color:rgba(58,93,59,.45)!important}

/* ---- Roster name bars: pill length matches the name(s), not the whole card ---- */
@media (max-width:1023px){
  /* Make the bar shrink-wrap the name. inline-flex / inline-block size to content. */
  .rgc-staff{display:inline-flex!important;width:auto!important;max-width:100%!important;font-size:12.8px!important}
  .rc-meta .rc-staff-line{display:inline-flex!important;width:auto!important;max-width:100%!important;font-size:12.8px!important;border-radius:999px!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  /* keep STAFF tag fixed; let the names shrink + ellipsis inside the pill so they never overlap */
  .rc-meta .rc-staff-line .rc-staff-kicker{flex:0 0 auto!important}
  .rc-meta .rc-staff-line .rc-staff-names{flex:0 1 auto!important;min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
  /* STAFF on its own full-width row at the bottom: all names fit on one line */
  .rc-main .rc-meta-full{flex:0 0 100%!important;width:100%!important;max-width:100%!important;order:99!important;margin-top:6px!important;display:block!important}
  .rc-main .rc-meta-full .rc-staff-line{display:grid!important;grid-template-columns:auto 1fr!important;align-items:center!important;width:100%!important;max-width:100%!important;background:none!important;gap:0!important}
  .rc-main .rc-meta-full .rc-staff-line .rc-staff-kicker{grid-column:1!important;flex:0 0 auto!important;justify-self:start!important}
  .rc-main .rc-meta-full .rc-staff-line .rc-staff-names{grid-column:2!important;text-align:center!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;padding:0 8px!important}
  /* rc-meta wraps so the inline pill drops onto its own line and keeps hugging text */
  .rc-meta{display:block!important;white-space:normal!important}
  .rc-meta .rc-addr-line{display:block!important}
}


/* ---- inline style 44 ---- */

/* V111 — performance pass.
   The two biggest costs on this app are (1) backdrop-filter blur, which the GPU
   must recompute on every paint and scroll, and (2) hundreds of soft box-shadows
   on list items that get rebuilt on each render. We strip the expensive bits on
   desktop (where the user reported the worst lag) and trim them on mobile too,
   while keeping the design essentially identical. */

/* ---- ALL SCREENS: blur is the single most expensive effect — drop it everywhere ---- */
*{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}

@media (min-width:1024px){
  /* No animations/transitions on structural elements during interaction = snappy taps. */
  .page,.content,.card,.panel,.modal,.modal-overlay,.rcard,.rgc,.cv-row,.wk-cell,
  .shift-card,.wk-shift,.stat-card,.doc-card,.nav-item,.dock,.btn,.icon-btn,
  .emp-row,.client-row,.ts-row,.av-cell,.list-row{
    transition:none!important;animation:none!important;will-change:auto!important;
  }
  /* Flatten the heaviest repeated shadows into a cheap 1px border-ish shadow.
     Cards still read as cards, but paint cost drops dramatically on big lists. */
  .rcard,.rgc,.cv-row,.stat-card,.doc-card,.emp-row,.client-row,.ts-row,.wk-cell,
  .shift-card,.wk-shift,.list-row,.card{
    box-shadow:0 1px 2px rgba(35,47,31,.06)!important;
  }
  /* Containment tells the browser a subtree's layout can't affect the rest,
     so re-rendering one area doesn't force the whole page to recompute. We use
     layout+style (not paint) on scroll containers so dropdowns/autocomplete that
     overflow their box are never clipped. */
  .content,.page,.roster-page,.week-grid,.wk-grid,.dashboard-grid,
  .roster-mobile,.chat-shell,.cv-threads,.team-list,.client-list,.ts-list{
    contain:layout style!important;
  }
  .rcard,.rgc,.cv-row,.stat-card,.doc-card,.wk-cell{contain:layout paint!important;}
  /* Long scrolling lists: let the browser skip rendering off-screen rows. */
  .cv-threads .cv-row,.team-list>*,.client-list>*,.roster-mobile .rcard,
  .ts-list>*,.dashboard-grid>*{content-visibility:auto;contain-intrinsic-size:auto 72px;}
  /* Smooth, GPU-light scrolling. */
  .content,.chat-scroll,.cv-threads{scroll-behavior:auto!important;}
}

/* ---- MOBILE: lighten shadows a touch too, but keep more of the look ---- */
@media (max-width:1023px){
  .rcard,.rgc,.cv-row,.stat-card,.doc-card{box-shadow:0 2px 6px rgba(35,47,31,.08)!important;}
  .roster-mobile .rcard,.cv-threads .cv-row{content-visibility:auto;contain-intrinsic-size:auto 84px;}
}


/* ---- inline style 45 ---- */

/* V126 — make the roster week card skinny only. No data/menu/chat changes. */
.rst-hero.admin,
.rst-hero.staff{
  padding:12px 14px 13px!important;
  border-radius:18px!important;
  margin-bottom:10px!important;
  box-shadow:0 9px 22px rgba(14,34,20,.20)!important;
}
.rst-hero-top{gap:8px!important;align-items:center!important}
.rst-nav{
  width:34px!important;height:34px!important;
  border-radius:12px!important;
}
.rst-nav svg{width:16px!important;height:16px!important}
.rst-eyebrow{
  font-size:9px!important;
  letter-spacing:.13em!important;
  margin-bottom:0!important;
  line-height:1!important;
}
.rst-hero-label strong{
  font-size:18px!important;
  line-height:1.04!important;
  letter-spacing:-.02em!important;
}
.rst-hero.admin .rst-hero-foot,
.rst-hero.staff .rst-hero-foot{
  display:grid!important;
  grid-template-columns:1fr 1fr 1.35fr!important;
  align-items:stretch!important;
  gap:7px!important;
  margin-top:10px!important;
}
.rst-hero.admin .rst-hs,
.rst-hero.staff .rst-hs{
  min-height:42px!important;
  padding:6px 5px!important;
  border-radius:12px!important;
  border:1px solid rgba(255,255,255,.11)!important;
}
.rst-hero.admin .rst-hs:first-of-type,
.rst-hero.staff .rst-hs:first-of-type,
.rst-hero.admin .rst-hs:nth-of-type(2),
.rst-hero.staff .rst-hs:nth-of-type(2){
  border-radius:12px!important;
  border:1px solid rgba(255,255,255,.11)!important;
}
.rst-hero.admin .rst-hs:nth-of-type(2)::before,
.rst-hero.staff .rst-hs:nth-of-type(2)::before{content:none!important}
.rst-hero.admin .rst-hs strong,
.rst-hero.staff .rst-hs strong{
  font-size:18px!important;
  line-height:.95!important;
}
.rst-hero.admin .rst-hs em,
.rst-hero.staff .rst-hs em{
  font-size:8px!important;
  letter-spacing:.055em!important;
  margin-top:1px!important;
}
.rst-hero.admin .rst-hero-add,
.rst-hero.staff .rst-hero-add{
  order:0!important;
  flex:initial!important;
  width:auto!important;
  min-height:42px!important;
  height:42px!important;
  padding:0 10px!important;
  border-radius:13px!important;
  font-size:13px!important;
  gap:7px!important;
  box-shadow:0 5px 13px rgba(8,24,12,.20),inset 0 1px 0 rgba(255,255,255,.9)!important;
}
.rst-hero.admin .rst-hero-add .rha-ic,
.rst-hero.staff .rst-hero-add .rha-ic{
  width:24px!important;height:24px!important;
}
.rst-hero.admin .rst-hero-add svg,
.rst-hero.staff .rst-hero-add svg{
  width:13px!important;height:13px!important;
}
@media (max-width:380px){
  .rst-hero.admin,.rst-hero.staff{padding:11px 12px 12px!important;border-radius:17px!important}
  .rst-hero-label strong{font-size:16.5px!important}
  .rst-hero.admin .rst-hero-foot,.rst-hero.staff .rst-hero-foot{gap:5px!important;grid-template-columns:.82fr .82fr 1.25fr!important}
  .rst-hero.admin .rst-hero-add,.rst-hero.staff .rst-hero-add{font-size:12px!important;padding:0 8px!important}
  .rst-hero.admin .rst-hs strong,.rst-hero.staff .rst-hs strong{font-size:16px!important}
  .rst-hero.admin .rst-hs em,.rst-hero.staff .rst-hs em{font-size:7.3px!important}
}


/* ---- inline style 46 ---- */

.modal-foot:has(.person-actionbar){display:block!important;padding:12px 14px calc(14px + var(--safe-b))!important;background:linear-gradient(180deg,#fffdf7,#f3efe6)!important;border-top:1px solid rgba(59,88,55,.13)!important}
.person-actionbar{width:100%!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;align-items:stretch!important}
.modal-foot .person-actionbar .btn.person-action{height:43px!important;min-width:0!important;width:100%!important;flex:none!important;border-radius:15px!important;padding:0 10px!important;font-size:12.8px!important;font-weight:900!important;line-height:1.1!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;white-space:normal!important;text-align:center!important;box-shadow:0 5px 14px rgba(28,42,30,.08)!important}
.person-action svg{width:15px!important;height:15px!important;flex:0 0 15px!important;stroke-width:2.4!important}.person-action.soft{background:linear-gradient(180deg,#e8f0df,#dbe8d2)!important;color:#214c2b!important;border:1px solid rgba(47,88,50,.16)!important}.person-action.ghost{background:#fffdf8!important;color:#274b2c!important;border:1px solid rgba(54,78,51,.18)!important}.person-action.danger,.person-action.admin-off{background:linear-gradient(180deg,#fff8f5,#f7ebe6)!important;color:#a33b32!important;border:1px solid rgba(163,59,50,.22)!important}.person-action.admin-on{background:linear-gradient(180deg,#f4ead7,#e6d2ac)!important;color:#5a3d18!important;border:1px solid rgba(139,94,38,.22)!important}.person-action.primary{background:linear-gradient(180deg,#315d38,#173d25)!important;color:#fffaf0!important;border:1px solid rgba(255,255,255,.12)!important;box-shadow:0 10px 22px rgba(23,61,37,.26)!important}
@media(min-width:720px){.person-actionbar{grid-template-columns:repeat(3,minmax(0,1fr))!important}.modal-foot .person-actionbar .btn.person-action{height:42px!important}}
@media(max-width:390px){.modal-foot .person-actionbar .btn.person-action{font-size:11.5px!important;padding:0 7px!important}.person-actionbar{gap:7px!important}}


/* ---- inline style 47 ---- */

.dir-main strong{display:flex!important;align-items:center!important;gap:7px!important;flex-wrap:wrap!important}.dir-admin-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;height:20px!important;margin-left:8px!important;padding:0 8px!important;border-radius:999px!important;background:linear-gradient(180deg,#244f2f,#17371f)!important;color:#fff8e8!important;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,system-ui,sans-serif!important;font-size:10px!important;font-weight:900!important;letter-spacing:.04em!important;text-transform:uppercase!important;line-height:1!important;vertical-align:middle!important;box-shadow:0 2px 6px rgba(16,38,22,.18),inset 0 1px 0 rgba(255,255,255,.16)!important}.dir-admin-badge.mini{height:17px!important;padding:0 6px!important;font-size:8.5px!important;margin-left:5px!important;font-style:normal!important;vertical-align:middle!important}


/* ---- inline style 48 ---- */

.topbar h1,#pageTitle{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;max-width:calc(100vw - 150px)!important;line-height:1.02!important}.topbar .sub,#pageSub{max-width:calc(100vw - 150px)!important}@media(max-width:430px){.topbar h1,#pageTitle{font-size:clamp(27px,8.4vw,36px)!important;letter-spacing:-.035em!important}.topbar .sub,#pageSub{font-size:12.5px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}}
.cv-people-label{display:flex!important;align-items:center!important;margin:9px 4px 6px!important;font-size:10.5px!important;font-weight:950!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:#617060!important}.cv-row.cv-person{background:linear-gradient(180deg,#fffdfa,#f2f5ed)!important;border:1px solid rgba(43,77,48,.14)!important;box-shadow:0 6px 14px rgba(18,35,20,.08)!important}.cv-row.cv-person .cv-name{color:#173b23!important;font-weight:950!important}.cv-row.cv-person .cv-sub{color:#62705f!important;font-weight:750!important}.cv-row.cv-person .cv-chev{color:#1f6336!important;opacity:1!important}.chat-shell.show-thread .cv-list{display:none!important}@media(max-width:720px){.cv-row.cv-person{min-height:66px!important}.chat-thread{min-width:0!important}.cth-name{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.08!important}.chat-composer{position:sticky!important;bottom:0!important}}


/* ---- inline style 49 ---- */

/* Requested only: keep the chat message field clean on iPhone and remove the
   unwanted keyboard suggestion/form navigation bar as much as web apps allow. */
.chat-composer .chat-editbox{
  -webkit-user-modify:read-write-plaintext-only!important;
  -webkit-autocorrect:on!important;
}
.chat-composer .chat-editbox[contenteditable="plaintext-only"]{
  caret-color:var(--forest-700,#214126)!important;
}


/* ---- inline style 50 ---- */

/* V142 — requested overall speed/responsiveness pass. No layout redesign. */
html,body,#app{touch-action:manipulation;}
button,[data-action],.btn,.icon-btn,.mobile-nav button,.nav-item{touch-action:manipulation;-webkit-tap-highlight-color:rgba(31,72,42,.12);}
input,textarea,select,.chat-editbox{font-size:16px;}
@media(max-width:1023px){
  .content,.chat-scroll,.cv-threads,.modal-body{scroll-behavior:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;}
  .page,.card,.panel,.rcard,.rgc,.cv-row,.stat-card,.doc-card,.wk-cell,.btn,.icon-btn{animation:none!important;transition:none!important;will-change:auto!important;}
  .roster-mobile .rcard,.cv-threads .cv-row,.ts-list>*{content-visibility:auto;contain-intrinsic-size:auto 88px;}
}
@media(min-width:1024px){
  .content,.page,.roster-page,.dashboard-grid,.week-grid,.wk-grid{contain:layout style!important;}
  .rcard,.rgc,.cv-row,.stat-card,.doc-card,.wk-cell,.ts-row{contain:layout paint!important;}
}


/* ---- inline style 51 ---- */

/* V146 — requested only: keep previous desktop roster card size, but make text stand out more. */
@media (min-width:1024px){
  .rwg-cell .rgc{
    min-height:0!important;
    border-radius:14px!important;
    box-shadow:0 1px 4px color-mix(in srgb,var(--accent) 25%,transparent)!important;
  }
  .rwg-cell .rgc-main{
    padding:5px 13px!important;
    min-height:0!important;
  }
  .rwg-cell .rgc-row1{
    gap:6px!important;
    align-items:center!important;
    min-height:0!important;
  }
  .rwg-cell .rgc-time{
    display:inline-flex!important;
    align-items:center!important;
    height:21px!important;
    padding:0 9px!important;
    border-radius:999px!important;
    background:#ffffff!important;
    border:1px solid color-mix(in srgb,var(--accent) 30%,rgba(30,48,30,.12))!important;
    font-size:11px!important;
    font-weight:900!important;
    line-height:1!important;
    letter-spacing:-.02em!important;
    color:color-mix(in srgb,var(--accent-deep) 96%,#000)!important;
    box-shadow:0 1px 2px rgba(20,36,22,.06)!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    max-width:none!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
  .rwg-cell .rgc-row1{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:6px!important;
    min-height:0!important;
    flex-wrap:nowrap!important;
    max-width:none!important;
    overflow:visible!important;
  }
  .rwg-cell .rgc-dur{
    display:inline-flex!important;
    align-items:center!important;
    height:21px!important;
    padding:0 7px!important;
    border-radius:999px!important;
    font-size:9.5px!important;
    font-weight:900!important;
    line-height:1!important;
    color:color-mix(in srgb,var(--accent-deep) 96%,#000)!important;
    background:#ffffff!important;
    border:1px solid color-mix(in srgb,var(--accent) 30%,rgba(30,48,30,.12))!important;
    box-shadow:0 1px 2px rgba(20,36,22,.06)!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
  .rwg-cell .rgc-row2{
    gap:6px!important;
    margin-top:3px!important;
    align-items:center!important;
    padding:0!important;
    background:none!important;
    min-height:0!important;
  }
  .rwg-cell .rgc-dot{
    width:7px!important;
    height:7px!important;
  }
  .rwg-cell .rgc-dot.pub{box-shadow:0 0 0 2px rgba(47,138,71,.18)!important}
  .rwg-cell .rgc-dot.draft{box-shadow:0 0 0 2px rgba(201,130,26,.18)!important}
  .rwg-cell .rgc-client{
    flex:1!important;min-width:0!important;
    display:inline-flex!important;align-items:center!important;
    padding:0!important;border-radius:0!important;
    background:none!important;
    border:0!important;
    box-shadow:none!important;
    font-size:13.5px!important;
    font-weight:900!important;
    line-height:1.15!important;
    letter-spacing:-.015em!important;
    color:color-mix(in srgb,var(--accent-deep) 98%,#000)!important;
    text-shadow:none!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .rwg-cell .rgc:hover .rgc-tools{
    max-height:34px!important;
    opacity:1!important;
    padding:0 8px 7px!important;
  }
}


/* ---- inline style 52 ---- */

/* V145 — requested only: clean Add shift modal, remove giant star area, improve colour picker, stop bouncing. */
body[data-modal-type="shift"] #modalHost{overflow:hidden!important;overscroll-behavior:none!important}
body[data-modal-type="shift"] .modal-overlay{
  align-items:center!important;
  padding:clamp(10px,2vh,22px)!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
  touch-action:none!important;
  background:rgba(16,28,17,.76)!important;
}
body[data-modal-type="shift"] .shift-modal{
  animation:none!important;
  transform:none!important;
  width:min(96vw,1040px)!important;
  height:auto!important;
  max-height:calc(100dvh - 32px)!important;
  border-radius:28px!important;
  overflow:hidden!important;
  background:linear-gradient(180deg,#fffdf8 0%,#f5f0e7 100%)!important;
  box-shadow:0 28px 80px rgba(12,30,18,.30), inset 0 1px 0 rgba(255,255,255,.75)!important;
}
body[data-modal-type="shift"] .shift-modal .modal-head{
  padding:22px 26px 14px!important;
  border-bottom:1px solid rgba(36,62,39,.10)!important;
}
body[data-modal-type="shift"] .shift-modal .modal-head h2{
  font-size:25px!important;
  font-weight:650!important;
  color:#172319!important;
}
body[data-modal-type="shift"] .shift-modal .modal-body{
  padding:18px 26px 14px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:auto!important;
  scrollbar-gutter:stable!important;
  min-height:0!important;
}
body[data-modal-type="shift"] .shift-modal .modal-foot{
  padding:13px 26px calc(14px + var(--safe-b))!important;
  border-top:1px solid rgba(36,62,39,.10)!important;
  background:rgba(255,253,248,.94)!important;
  box-shadow:0 -10px 26px rgba(24,38,24,.08)!important;
  margin-top:0!important;
}
body[data-modal-type="shift"] .shift-builder{
  display:grid!important;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important;
  grid-template-areas:
    "client client"
    "time employees"
    "recurrence colour"
    "visibility notes"!important;
  gap:14px!important;
  align-items:start!important;
  padding-bottom:0!important;
}
body[data-modal-type="shift"] .client-search-panel{grid-area:client!important}
body[data-modal-type="shift"] .shift-date-time-panel{grid-area:time!important}
body[data-modal-type="shift"] .emp-field{grid-area:employees!important}
body[data-modal-type="shift"] .recurrence-section{grid-area:recurrence!important}
body[data-modal-type="shift"] .shift-colour-section{grid-area:colour!important}
body[data-modal-type="shift"] .visibility-section{grid-area:visibility!important}
body[data-modal-type="shift"] .shift-notes-section{grid-area:notes!important}
body[data-modal-type="shift"] .shift-panel,
body[data-modal-type="shift"] .shift-date-time-panel,
body[data-modal-type="shift"] .emp-field,
body[data-modal-type="shift"] .shift-colour-section{
  border-radius:18px!important;
  border:1px solid rgba(44,78,48,.13)!important;
  background:linear-gradient(180deg,#fffdf8 0%,#f4efe5 100%)!important;
  box-shadow:0 5px 18px rgba(24,38,24,.055)!important;
  padding:14px!important;
  overflow:visible!important;
}
body[data-modal-type="shift"] .shift-date-time-panel summary,
body[data-modal-type="shift"] .shift-section>summary{
  padding:0 0 12px!important;
  min-height:0!important;
  cursor:default!important;
  border-bottom:1px solid rgba(44,78,48,.09)!important;
  margin-bottom:12px!important;
}
body[data-modal-type="shift"] .shift-section>summary span,
body[data-modal-type="shift"] .panel-title span,
body[data-modal-type="shift"] .shift-section-label,
body[data-modal-type="shift"] .shift-colour-head span{
  font-size:14px!important;
  font-weight:900!important;
  color:#172319!important;
  letter-spacing:-.01em!important;
}
body[data-modal-type="shift"] .shift-colour-head svg,
body[data-modal-type="shift"] .shift-colour-section svg{display:none!important}
body[data-modal-type="shift"] .shift-colour-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  margin-bottom:12px!important;
}
body[data-modal-type="shift"] .shift-colour-current{
  font-size:11px!important;
  font-weight:900!important;
  padding:5px 10px!important;
  background:rgba(47,107,62,.12)!important;
  color:#255630!important;
  border:1px solid rgba(47,107,62,.16)!important;
}
body[data-modal-type="shift"] .colour-picker{gap:12px!important}
body[data-modal-type="shift"] .colour-preview-card{
  display:grid!important;
  grid-template-columns:120px minmax(0,1fr)!important;
  min-height:68px!important;
  overflow:hidden!important;
  border-radius:17px!important;
  border:1px solid color-mix(in srgb,var(--cc-solid,#2e7b43) 28%,rgba(20,31,23,.12))!important;
  background:linear-gradient(135deg,var(--cc-a,#f0fbf0),var(--cc-b,#cbe9ce) 70%,var(--cc-c,#f4ecd9))!important;
  box-shadow:0 10px 22px color-mix(in srgb,var(--cc-solid,#2e7b43) 18%,transparent)!important;
}
body[data-modal-type="shift"] .colour-preview-time{
  display:grid!important;
  place-items:center!important;
  padding:10px!important;
  background:linear-gradient(160deg,var(--cc-solid,#2e7b43),var(--cc-deep,#1d542d))!important;
  color:#fffaf0!important;
  font-size:13px!important;
  font-weight:950!important;
  text-align:center!important;
  line-height:1.12!important;
}
body[data-modal-type="shift"] .colour-preview-main{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  padding:12px!important;
  min-width:0!important;
}
body[data-modal-type="shift"] .colour-preview-main strong{
  min-width:0!important;
  color:color-mix(in srgb,var(--cc-deep,#1d542d) 85%,#000)!important;
  font-size:16px!important;
  font-weight:950!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body[data-modal-type="shift"] .colour-preview-main span{
  flex:0 0 auto!important;
  background:rgba(255,255,255,.9)!important;
  border:1px solid color-mix(in srgb,var(--cc-solid,#2e7b43) 22%,transparent)!important;
  border-radius:999px!important;
  color:color-mix(in srgb,var(--cc-deep,#1d542d) 90%,#000)!important;
  font-size:12px!important;
  font-weight:950!important;
  padding:5px 9px!important;
}
body[data-modal-type="shift"] .colour-swatches{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:6px!important;
}
body[data-modal-type="shift"] .colour-option{
  min-height:32px!important;
  border-radius:10px!important;
  border:1px solid rgba(31,50,32,.12)!important;
  background:#fffdf8!important;
  color:#172319!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  padding:5px 8px!important;
  cursor:pointer!important;
  box-shadow:0 1px 5px rgba(24,38,24,.04)!important;
  text-align:left!important;
}
body[data-modal-type="shift"] .colour-option i{
  width:15px!important;height:15px!important;border-radius:5px!important;flex:0 0 auto!important;
  background:var(--opt)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),0 0 0 1px rgba(20,31,23,.10)!important;
}
body[data-modal-type="shift"] .colour-option b{
  font-size:11px!important;font-weight:800!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
body[data-modal-type="shift"] .colour-option em{
  font-style:normal!important;font-size:9px!important;color:#687268!important;font-weight:800!important;margin-left:auto!important;
}
body[data-modal-type="shift"] .colour-auto::before{
  content:"";width:15px;height:15px;border-radius:5px;flex:0 0 auto;
  background:linear-gradient(135deg,#ef6c57 0 25%,#5b6ef0 25% 50%,#1aa89c 50% 75%,#3aa05a 75% 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),0 0 0 1px rgba(20,31,23,.10);
}
body[data-modal-type="shift"] .colour-option.is-sel{
  border-color:rgba(47,107,62,.52)!important;
  background:linear-gradient(180deg,#eef7eb,#fffdf8)!important;
  box-shadow:0 0 0 2px rgba(47,107,62,.13),0 3px 9px rgba(24,38,24,.06)!important;
}
body[data-modal-type="shift"] .colour-option.is-sel::after{
  content:"✓";margin-left:auto;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;
  background:#2f6b3e;color:#fff;font-size:10px;font-weight:900;
}
body[data-modal-type="shift"] .colour-auto.is-sel em{display:none!important}
body[data-modal-type="shift"] .notes-textarea{min-height:118px!important;resize:none!important}
@media (max-width:1023px){
  body[data-modal-type="shift"] .modal-overlay{align-items:flex-end!important;padding:0!important;touch-action:none!important}
  body[data-modal-type="shift"] .shift-modal{
    width:100%!important;max-width:100%!important;max-height:calc(100dvh - 10px)!important;
    border-radius:24px 24px 0 0!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-head{padding:15px 16px 10px!important}
  body[data-modal-type="shift"] .shift-modal .modal-body{padding:12px 13px 10px!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important}
  body[data-modal-type="shift"] .shift-modal .modal-foot{padding:9px 12px calc(10px + var(--safe-b))!important}
  body[data-modal-type="shift"] .shift-builder{display:grid!important;grid-template-columns:1fr!important;grid-template-areas:"client" "time" "employees" "recurrence" "colour" "visibility" "notes"!important;gap:10px!important}
  body[data-modal-type="shift"] .row2{grid-template-columns:1fr 1fr!important;gap:9px!important}
  body[data-modal-type="shift"] .colour-preview-card{grid-template-columns:96px minmax(0,1fr)!important;min-height:60px!important}
  body[data-modal-type="shift"] .colour-preview-time{font-size:11px!important;padding:8px!important}
  body[data-modal-type="shift"] .colour-preview-main strong{font-size:14px!important}
  body[data-modal-type="shift"] .colour-swatches{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:430px){
  body[data-modal-type="shift"] .colour-swatches{grid-template-columns:1fr!important}
  body[data-modal-type="shift"] .colour-preview-card{grid-template-columns:1fr!important}
  body[data-modal-type="shift"] .colour-preview-time{min-height:38px!important}
}


/* ---- inline style 53 ---- */

/* V177 — requested only: Add shift colour picker collapses after selection and opens on tap. */
body[data-modal-type="shift"] .shift-colour-head{
  width:100%!important;
  border:0!important;
  background:transparent!important;
  padding:0!important;
  cursor:pointer!important;
}
body[data-modal-type="shift"] .shift-colour-head .colour-toggle-chev{
  width:28px!important;height:28px!important;border-radius:50%!important;
  display:grid!important;place-items:center!important;
  background:rgba(47,107,62,.10)!important;color:#255630!important;
  transform:rotate(180deg)!important;transition:transform .16s ease!important;flex:0 0 auto!important;
}
body[data-modal-type="shift"] .shift-colour-head .colour-toggle-chev svg{width:15px!important;height:15px!important;display:block!important;stroke:currentColor!important;fill:none!important;}
body[data-modal-type="shift"] .shift-colour-section.is-open .colour-toggle-chev{transform:rotate(270deg)!important;}
body[data-modal-type="shift"] .shift-colour-section.is-collapsed .colour-swatches{display:none!important;}
body[data-modal-type="shift"] .shift-colour-section.is-collapsed .colour-picker{gap:0!important;}
body[data-modal-type="shift"] .shift-colour-section.is-collapsed{padding-bottom:14px!important;}
body[data-modal-type="shift"] .shift-colour-section.is-collapsed .shift-colour-head{margin-bottom:10px!important;}
body[data-modal-type="shift"] .shift-colour-section.is-open .shift-colour-head{margin-bottom:12px!important;}
body[data-modal-type="shift"] .shift-colour-section.is-collapsed .colour-preview-card{margin:0!important;}
body[data-modal-type="shift"] .shift-colour-current{white-space:nowrap!important;}
body[data-modal-type="shift"] .colour-option{position:relative!important;}
@media(max-width:430px){
  body[data-modal-type="shift"] .shift-colour-section.is-collapsed .colour-preview-card{grid-template-columns:92px minmax(0,1fr)!important;}
  body[data-modal-type="shift"] .shift-colour-section.is-collapsed .colour-preview-time{min-height:0!important;}
}


/* ---- inline style 54 ---- */

/* V178 — requested only: selected roster colour applies to actual roster cards; faster live messages + typing. */
.typing-row.ww-live-typing{
  display:flex!important;align-items:center!important;gap:8px!important;
  color:#245233!important;font-weight:900!important;
}
.typing-row.ww-live-typing .typing-text::after{content:none!important;display:none!important;}


/* ---- inline style 55 ---- */

/* V184 — requested only: fix desktop Messages empty-space layout. Mobile untouched. */
@media (min-width:1024px){
  /* Previous mobile/thread rule hid the chat list on desktop when a thread was open,
     leaving the conversation looking like a small strip with a large blank panel. */
  .chat-shell.show-thread .chat-list,
  .chat-shell.show-thread .cv-list,
  .chat-shell.show-thread .chat-list.cv-list{
    display:flex!important;
    flex-direction:column!important;
    visibility:visible!important;
    opacity:1!important;
  }
  .chat-shell.show-thread .chat-thread{
    display:flex!important;
    grid-column:auto!important;
    width:auto!important;
    max-width:none!important;
  }
  .chat-shell.show-thread{
    grid-template-columns:minmax(315px,355px) minmax(0,1fr)!important;
  }
  .chat-shell{
    max-width:1160px!important;
    min-height:560px!important;
    height:calc(100dvh - 142px)!important;
  }
  .chat-list.cv-list{
    width:auto!important;
    flex:0 0 auto!important;
  }
  .chat-thread-head .cth-back{
    display:none!important;
  }
  .chat-scroll{
    padding:24px clamp(22px,2.4vw,34px)!important;
  }
  .msg,.msg.mine{
    max-width:82%!important;
  }
  .bubble{
    max-width:min(620px,100%)!important;
  }
  .chat-thread.empty-thread{
    min-width:0!important;
  }
}


/* ---- inline style 56 ---- */

/* v646 — remove the unnecessary empty conversation preview on desktop.
   When no chat is selected, the conversation list becomes the complete page. */
@media (min-width:1024px){
  .chat-shell.chat-list-only{
    display:block!important;
    grid-template-columns:none!important;
    width:min(100%,412px)!important;
    max-width:412px!important;
    min-height:560px!important;
    height:calc(100dvh - 132px)!important;
    overflow:hidden!important;
    background:linear-gradient(180deg,#fffaf0 0%,#edf4e7 100%)!important;
    margin-left:0!important;
    margin-right:auto!important;
  }
  .chat-shell.chat-list-only .chat-list.cv-list{
    display:flex!important;
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    border-right:0!important;
    border-radius:30px!important;
    padding:18px clamp(18px,2.2vw,30px) 18px!important;
    background:linear-gradient(180deg,#fffaf0 0%,#edf4e7 100%)!important;
    box-shadow:none!important;
  }
  .chat-shell.chat-list-only .cv-head,
  .chat-shell.chat-list-only .cv-search,
  .chat-shell.chat-list-only .cv-threads{
    width:100%!important;
    max-width:none!important;
  }
  .chat-shell.chat-list-only .cv-row{
    padding-left:12px!important;
    padding-right:12px!important;
  }
}


/* ---- inline style 57 ---- */

/* V185 — requested only: message typing autocorrect ON, remove typing “live” label. */
.chat-composer .chat-editbox,
body.chat-thread-open .chat-composer .chat-editbox,
.chat-composer #chatInput{
  -webkit-user-modify:read-write-plaintext-only!important;
  -webkit-autocorrect:on!important;
  text-autospace:normal!important;
}
.typing-row.ww-live-typing .typing-text::after,
.typing-row .typing-text::after{
  content:none!important;
  display:none!important;
}


/* ---- inline style 58 ---- */

/* V190 — requested only: completely redesign desktop login screen from scratch. Mobile and app functionality untouched. */
@media (min-width:880px){
  .login-root{
    position:fixed!important;
    inset:0!important;
    display:grid!important;
    grid-template-columns:minmax(420px,44vw) minmax(480px,1fr)!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    min-height:100dvh!important;
    padding:0!important;
    overflow:hidden!important;
    background:#eef1e8!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
  }
  .login-root::before{
    content:""!important;
    position:absolute!important;
    inset:0 auto 0 0!important;
    width:min(44vw,650px)!important;
    background:
      radial-gradient(520px 420px at 82% 12%,rgba(255,255,255,.13),transparent 62%),
      radial-gradient(460px 380px at 7% 88%,rgba(180,126,74,.18),transparent 62%),
      linear-gradient(152deg,#315f3f 0%,#173c27 52%,#0b2417 100%)!important;
    z-index:0!important;
    pointer-events:none!important;
  }
  .login-root::after{
    content:"Westwondersandco\AWorkforce\A\ARoster, clocking, messages and team updates — all in one secure workspace."!important;
    white-space:pre-line!important;
    position:absolute!important;
    left:clamp(46px,5.2vw,86px)!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:min(420px,31vw)!important;
    color:#fffaf0!important;
    z-index:1!important;
    pointer-events:none!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
    font-size:clamp(17px,1.55vw,23px)!important;
    line-height:1.45!important;
    font-weight:500!important;
    letter-spacing:-.01em!important;
    text-shadow:0 14px 34px rgba(0,0,0,.34)!important;
  }
  .login-stage{
    grid-column:2!important;
    width:100%!important;
    max-width:none!important;
    min-height:100dvh!important;
    margin:0!important;
    padding:clamp(44px,7vh,84px) clamp(48px,7vw,128px)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:
      radial-gradient(560px 420px at 96% 14%,rgba(49,95,63,.08),transparent 60%),
      linear-gradient(180deg,#f7f6ef 0%,#edf0e6 100%)!important;
    z-index:2!important;
    animation:none!important;
  }
  .login-stage::before{
    content:""!important;
    position:fixed!important;
    left:clamp(46px,5.2vw,86px)!important;
    bottom:clamp(38px,6.4vh,76px)!important;
    width:min(360px,30vw)!important;
    height:96px!important;
    border-radius:26px!important;
    background:rgba(255,255,255,.075)!important;
    border:1px solid rgba(255,255,255,.14)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important;
    pointer-events:none!important;
    z-index:1!important;
  }
  .login-card{
    width:min(430px,100%)!important;
    border-radius:28px!important;
    padding:34px 34px 28px!important;
    background:#fffdf8!important;
    border:1px solid rgba(47,70,45,.12)!important;
    box-shadow:0 34px 86px -46px rgba(13,32,18,.56),0 12px 30px -22px rgba(31,51,31,.32)!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .lc-logo{
    width:58px!important;
    height:58px!important;
    border-radius:0!important;
    margin:0 0 18px!important;
    background:transparent!important;
    border:0!important;outline:0!important;box-shadow:none!important;overflow:visible!important;
  }
  .lc-logo img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;display:block!important;background:transparent!important;border:0!important;outline:0!important;border-radius:0!important;box-shadow:none!important;filter:none!important;transform:none!important;}
  .lc-head{
    text-align:left!important;
    margin:0 0 24px!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
  }
  .lc-eyebrow{
    display:block!important;
    margin:0 0 8px!important;
    color:#5a755f!important;
    font-size:11px!important;
    font-weight:850!important;
    letter-spacing:.115em!important;
    text-transform:uppercase!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
  }
  .lc-head h2{
    font-size:0!important;
    line-height:1!important;
    margin:0!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
  }
  .lc-head h2::after{
    content:"Sign in"!important;
    display:block!important;
    color:#17251a!important;
    font-size:32px!important;
    line-height:1.05!important;
    font-weight:850!important;
    letter-spacing:-.035em!important;
  }
  .lc-head p{
    font-size:0!important;
    line-height:1!important;
    margin:10px 0 0!important;
    max-width:330px!important;
  }
  .lc-head p::after{
    content:"Access your roster, messages, clocking and team updates."!important;
    display:block!important;
    color:#667365!important;
    font-size:14px!important;
    line-height:1.48!important;
    font-weight:500!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
  }
  .login-card .field{margin-bottom:15px!important;}
  .login-card .field label{
    display:block!important;
    margin-bottom:7px!important;
    color:#304133!important;
    font-size:11px!important;
    font-weight:850!important;
    letter-spacing:.055em!important;
    text-transform:uppercase!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
  }
  .login-card .input{
    width:100%!important;
    height:50px!important;
    padding:0 15px!important;
    border-radius:14px!important;
    background:#f8faf4!important;
    border:1.5px solid rgba(55,82,54,.18)!important;
    color:#17251a!important;
    font-size:16px!important;
    font-weight:500!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.75)!important;
  }
  .login-card .input::placeholder{color:#8f9b8f!important;font-weight:500!important;}
  .login-card .input:focus{
    outline:none!important;
    background:#fffef9!important;
    border-color:#426844!important;
    box-shadow:0 0 0 4px rgba(66,104,68,.13),inset 0 1px 0 rgba(255,255,255,.86)!important;
  }
  .login-card .pw-wrap{position:relative!important;}
  .login-card .pw-eye{
    width:38px!important;height:38px!important;right:7px!important;border-radius:12px!important;
    color:#536352!important;background:transparent!important;
  }
  .lc-cta{
    width:100%!important;
    height:52px!important;
    margin-top:12px!important;
    border-radius:15px!important;
    background:linear-gradient(180deg,#4b724d 0%,#2a4e30 100%)!important;
    color:#fffdf5!important;
    border:0!important;
    box-shadow:0 14px 26px -15px rgba(28,55,33,.52)!important;
    font-size:15.5px!important;
    font-weight:850!important;
    letter-spacing:0!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
  }
  .lc-cta:hover{filter:brightness(1.03)!important;transform:none!important;}
  .lc-cta:active{transform:scale(.99)!important;}
  .login-err{font-size:12.5px!important;font-weight:750!important;color:#a8392f!important;margin-bottom:10px!important;}
  .lc-divider,.demo-row,.demo-chip{display:none!important;}
  .employee-login-help,.employee-first-login-btn,.login-share-note,.login-details-card{display:none!important;}
  .install-prompt-card{display:none!important;}
  .lc-help{
    margin-top:17px!important;
    color:#6c786b!important;
    font-size:12.2px!important;
    line-height:1.45!important;
    font-weight:500!important;
    text-align:left!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
  }
  .lc-help span{color:#879184!important;font-weight:500!important;}
  .login-foot{
    position:fixed!important;
    left:clamp(46px,5.2vw,86px)!important;
    bottom:clamp(50px,8vh,94px)!important;
    display:flex!important;
    align-items:center!important;
    gap:12px!important;
    z-index:2!important;
    color:rgba(255,250,240,.78)!important;
    font-size:12px!important;
    font-weight:750!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
  }
  .login-foot .lf-dot,.lf-dot{width:4px!important;height:4px!important;border-radius:999px!important;background:rgba(255,250,240,.42)!important;}
}


/* ---- inline style 59 ---- */

/* V191 — requested only: desktop login screen cleanup. Remove search-looking password icon, blend split colours, clean left-side text/bar. */
@media (min-width:880px){
  .login-root{
    grid-template-columns:minmax(430px,43vw) minmax(520px,1fr)!important;
    background:
      radial-gradient(760px 540px at 2% 8%,rgba(104,137,93,.22),transparent 58%),
      linear-gradient(90deg,#173b27 0%,#1f4b31 35%,#edf2e8 35.2%,#f7f5ed 100%)!important;
  }
  .login-root::before{
    width:46vw!important;
    background:
      radial-gradient(560px 480px at 85% 20%,rgba(255,255,255,.12),transparent 62%),
      radial-gradient(520px 420px at 12% 85%,rgba(176,126,80,.14),transparent 64%),
      linear-gradient(150deg,#376f48 0%,#1e4b31 46%,#0e281a 100%)!important;
    box-shadow:70px 0 120px rgba(26,64,39,.16)!important;
  }
  .login-root::after{
    content:"Westwondersandco\AWorkforce"!important;
    width:min(360px,29vw)!important;
    top:42%!important;
    transform:translateY(-50%)!important;
    color:#fffdf5!important;
    font-size:clamp(25px,2.25vw,38px)!important;
    line-height:1.06!important;
    font-weight:850!important;
    letter-spacing:-.045em!important;
    text-shadow:0 18px 45px rgba(0,0,0,.30)!important;
  }
  .login-stage{
    padding:clamp(44px,7vh,84px) clamp(66px,8vw,140px)!important;
    background:
      radial-gradient(720px 520px at 18% 50%,rgba(47,96,61,.10),transparent 62%),
      radial-gradient(680px 460px at 100% 0%,rgba(255,255,255,.72),transparent 64%),
      linear-gradient(120deg,#eef2e8 0%,#f7f5ee 58%,#fbfaf5 100%)!important;
    box-shadow:inset 44px 0 80px -72px rgba(20,56,34,.45)!important;
  }
  .login-stage::before{
    display:none!important;
    content:none!important;
  }
  .login-stage::after{
    content:"Roster, clocking, messages and team updates in one secure workspace."!important;
    position:fixed!important;
    left:clamp(46px,5.2vw,86px)!important;
    top:calc(42% + 92px)!important;
    width:min(360px,29vw)!important;
    color:rgba(255,253,245,.86)!important;
    font-size:clamp(14px,1.06vw,17px)!important;
    line-height:1.45!important;
    font-weight:560!important;
    letter-spacing:-.01em!important;
    text-shadow:0 12px 30px rgba(0,0,0,.26)!important;
    z-index:2!important;
    pointer-events:none!important;
  }
  .login-foot{
    left:clamp(46px,5.2vw,86px)!important;
    bottom:clamp(34px,5.4vh,58px)!important;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    color:rgba(255,253,245,.72)!important;
    font-size:11.5px!important;
    font-weight:620!important;
    letter-spacing:.01em!important;
  }
  .login-foot .lf-dot,.lf-dot{background:rgba(255,253,245,.36)!important;}
  .login-card{
    width:min(450px,100%)!important;
    border-radius:30px!important;
    padding:34px 36px 30px!important;
    background:rgba(255,253,247,.96)!important;
    border:1px solid rgba(45,73,47,.12)!important;
    box-shadow:0 32px 84px -48px rgba(15,38,22,.56),0 18px 42px -32px rgba(30,60,37,.35)!important;
  }
  .lc-logo{margin-bottom:18px!important;}
  .lc-head h2::after{font-size:31px!important;letter-spacing:-.04em!important;}
  .lc-head p::after{color:#677567!important;line-height:1.42!important;}
  .login-card .pw-wrap{position:relative!important;}
  .login-card .pw-eye,
  .pw-eye{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }
  .login-card .pw-wrap .input,
  .login-card input[type="password"].input{
    padding-right:15px!important;
  }
}


/* ---- inline style 60 ---- */

/* V192 — requested only: desktop login redesign polish. Remove harsh seam, remove empty bar, cleaner professional layout. */
@media (min-width:880px){
  .login-root{
    position:fixed!important;
    inset:0!important;
    display:grid!important;
    grid-template-columns:minmax(420px,42vw) minmax(520px,1fr)!important;
    align-items:stretch!important;
    min-height:100dvh!important;
    padding:0!important;
    overflow:hidden!important;
    background:
      radial-gradient(900px 620px at 105% 5%,rgba(74,115,81,.12),transparent 58%),
      radial-gradient(780px 560px at 72% 95%,rgba(201,178,136,.16),transparent 62%),
      linear-gradient(120deg,#e7eddf 0%,#f4f2e8 58%,#fbfaf4 100%)!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
  }
  .login-root::before{
    content:""!important;
    position:absolute!important;
    left:0!important;
    top:0!important;
    bottom:0!important;
    width:min(46vw,680px)!important;
    background:
      radial-gradient(520px 420px at 18% 12%,rgba(255,255,255,.13),transparent 63%),
      radial-gradient(560px 480px at 10% 92%,rgba(188,133,80,.16),transparent 64%),
      linear-gradient(145deg,#386e48 0%,#214d33 48%,#0d2b1c 100%)!important;
    clip-path:ellipse(100% 92% at 0% 50%)!important;
    z-index:0!important;
    pointer-events:none!important;
    box-shadow:52px 0 95px rgba(24,63,39,.14)!important;
  }
  .login-root::after{
    content:"Westwondersandco\AWorkforce\A\AEverything your team needs for roster, clocking, messages and updates."!important;
    white-space:pre-line!important;
    position:absolute!important;
    left:clamp(44px,5.2vw,82px)!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:min(360px,29vw)!important;
    z-index:2!important;
    color:#fffdf4!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
    font-size:clamp(15px,1.05vw,17px)!important;
    line-height:1.55!important;
    font-weight:560!important;
    letter-spacing:-.01em!important;
    text-shadow:0 14px 34px rgba(0,0,0,.28)!important;
    pointer-events:none!important;
  }
  .login-root::after::first-line{font-weight:900!important;}
  .login-stage{
    grid-column:2!important;
    width:100%!important;
    max-width:none!important;
    min-height:100dvh!important;
    margin:0!important;
    padding:clamp(42px,7vh,78px) clamp(56px,8vw,132px)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:transparent!important;
    box-shadow:none!important;
    z-index:3!important;
    animation:none!important;
  }
  .login-stage::before,
  .login-stage::after{
    display:none!important;
    content:none!important;
  }
  .login-card{
    width:min(420px,100%)!important;
    margin:0 auto!important;
    padding:34px 34px 28px!important;
    border-radius:26px!important;
    background:#fffdf7!important;
    border:1px solid rgba(44,70,45,.11)!important;
    box-shadow:
      0 34px 90px -52px rgba(18,45,26,.55),
      0 16px 38px -28px rgba(35,58,37,.38)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
  }
  .lc-logo{
    width:52px!important;
    height:52px!important;
    margin:0 0 18px!important;
    border-radius:0!important;
    background:transparent!important;
    border:0!important;outline:0!important;box-shadow:none!important;overflow:visible!important;
  }
  .lc-logo img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;display:block!important;background:transparent!important;border:0!important;outline:0!important;border-radius:0!important;box-shadow:none!important;filter:none!important;transform:none!important;}
  .lc-head{
    text-align:left!important;
    margin:0 0 24px!important;
  }
  .lc-eyebrow{
    display:block!important;
    margin:0 0 8px!important;
    color:#5f745e!important;
    font-size:10.5px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:.12em!important;
    text-transform:uppercase!important;
  }
  .lc-head h2{
    font-size:0!important;
    margin:0!important;
    line-height:1!important;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important;
  }
  .lc-head h2::after{
    content:"Sign in"!important;
    display:block!important;
    color:#132118!important;
    font-size:32px!important;
    line-height:1.05!important;
    font-weight:820!important;
    letter-spacing:-.04em!important;
  }
  .lc-head p{
    font-size:0!important;
    line-height:1!important;
    margin:10px 0 0!important;
  }
  .lc-head p::after{
    content:"Access your roster, messages, clocking and team updates."!important;
    display:block!important;
    max-width:310px!important;
    color:#647065!important;
    font-size:14px!important;
    line-height:1.48!important;
    font-weight:500!important;
  }
  .login-card .field{margin-bottom:15px!important;}
  .login-card .field label{
    display:block!important;
    margin:0 0 7px!important;
    color:#2f3e32!important;
    font-size:10.8px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:.055em!important;
    text-transform:uppercase!important;
  }
  .login-card .input{
    width:100%!important;
    height:50px!important;
    padding:0 15px!important;
    border-radius:14px!important;
    background:#f8faf3!important;
    border:1.4px solid rgba(48,78,50,.18)!important;
    color:#142118!important;
    font-size:16px!important;
    font-weight:500!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.7)!important;
  }
  .login-card .input::placeholder{color:#93a093!important;font-weight:500!important;}
  .login-card .input:focus{
    outline:none!important;
    background:#fffef8!important;
    border-color:#416b45!important;
    box-shadow:0 0 0 4px rgba(65,107,69,.13),inset 0 1px 0 rgba(255,255,255,.8)!important;
  }
  .login-card .pw-eye,.pw-eye{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }
  .login-card input[type="password"].input,
  .login-card .pw-wrap .input{padding-right:15px!important;}
  .lc-cta{
    width:100%!important;
    height:52px!important;
    margin-top:12px!important;
    border-radius:14px!important;
    border:0!important;
    background:linear-gradient(180deg,#457149 0%,#2b5432 100%)!important;
    color:#fffdf4!important;
    font-size:15px!important;
    font-weight:820!important;
    letter-spacing:0!important;
    box-shadow:0 16px 28px -18px rgba(29,62,35,.64)!important;
    transform:none!important;
  }
  .lc-cta:hover{filter:brightness(1.02)!important;transform:none!important;}
  .lc-cta:active{transform:scale(.99)!important;}
  .lc-help{
    margin-top:17px!important;
    color:#6b766b!important;
    font-size:12.2px!important;
    line-height:1.42!important;
    font-weight:500!important;
    text-align:left!important;
  }
  .lc-help span{display:block!important;color:#8a9388!important;font-weight:500!important;}
  .lc-divider,.demo-row,.demo-chip,
  .employee-login-help,.employee-first-login-btn,.login-share-note,.login-details-card,
  .install-prompt-card{display:none!important;}
  .login-foot{
    position:absolute!important;
    left:clamp(44px,5.2vw,82px)!important;
    bottom:clamp(34px,5.5vh,62px)!important;
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
    z-index:2!important;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    color:rgba(255,253,244,.72)!important;
    font-size:11.2px!important;
    line-height:1!important;
    font-weight:720!important;
    letter-spacing:.01em!important;
  }
  .login-foot .lf-dot,.lf-dot{
    width:4px!important;
    height:4px!important;
    border-radius:999px!important;
    background:rgba(255,253,244,.38)!important;
  }
}


/* ---- inline style 61 ---- */

@media (min-width:880px){
  .login-root::after{
    content:"Westwondersandco\AWorkforce"!important;
    white-space:pre-line!important;
    font-size:clamp(29px,2.6vw,44px)!important;
    line-height:1.05!important;
    font-weight:880!important;
    letter-spacing:-.05em!important;
    top:46%!important;
    width:min(380px,30vw)!important;
  }
  .login-stage::after{
    content:"Everything your team needs for roster, clocking, messages and updates."!important;
    display:block!important;
    position:fixed!important;
    left:clamp(44px,5.2vw,82px)!important;
    top:calc(46% + 112px)!important;
    width:min(360px,29vw)!important;
    z-index:4!important;
    color:rgba(255,253,244,.88)!important;
    font-size:clamp(14px,1.05vw,17px)!important;
    line-height:1.55!important;
    font-weight:560!important;
    letter-spacing:-.01em!important;
    text-shadow:0 14px 34px rgba(0,0,0,.28)!important;
    pointer-events:none!important;
  }
}


/* ---- inline style 62 ---- */

.lc-logo {
  background: transparent !important; border: 0 !important; outline: 0 !important;
  border-radius: 0 !important; box-shadow: none !important; filter: none !important;
  padding: 0 !important; overflow: visible !important;
}
.lc-logo img {
  width: 100% !important; height: 100% !important; object-fit: contain !important; object-position: center !important; display: block !important;
  background: transparent !important; border: 0 !important; outline: 0 !important; border-radius: 0 !important; box-shadow: none !important; filter: none !important; transform: none !important;
}
.sidebar-brand img {
  width: 42px !important; height: 42px !important; object-fit: contain !important; object-position: center !important; display: block !important;
  background: transparent !important; padding: 0 !important; border: 0 !important; outline: 0 !important; border-radius: 0 !important; box-shadow: none !important; filter: none !important; transform: none !important;
}


/* ---- inline style 63 ---- */

.sidebar-brand.sidebar-brand-text-only{gap:0!important;padding-left:8px!important;}
.sidebar-brand.sidebar-brand-text-only .bname{font-size:17px!important;}


/* ---- inline style 64 ---- */

.v213-line.v382-address-row{
  width:100%;margin:0;padding:8px 10px;border:1px solid rgba(48,91,60,.13);border-radius:13px;
  background:linear-gradient(135deg,rgba(238,246,235,.92),rgba(248,246,237,.94));
  color:#244d31;text-align:left;display:flex;align-items:center;gap:10px;cursor:pointer;
  appearance:none;-webkit-appearance:none;font:inherit;min-width:0;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease;
  -webkit-tap-highlight-color:transparent;
}
.v213-line.v382-address-row:hover{border-color:rgba(47,105,61,.28);box-shadow:0 6px 16px rgba(32,66,41,.08)}
.v213-line.v382-address-row:active{transform:scale(.992)}
.v213-line.v382-address-row>svg{width:22px;height:22px;flex:0 0 22px;color:#39784b}
.v382-address-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.v382-address-copy strong{font-size:14px;line-height:1.25;color:#233e2a;white-space:normal;overflow-wrap:anywhere}
.v382-address-copy small{font-size:10.5px;line-height:1.2;color:#718076;font-weight:700;letter-spacing:.01em}
.v382-address-chevron{font-size:25px;line-height:1;color:#56745e;flex:0 0 auto;margin-left:2px}
.v382-address-view{margin:4px 0!important}
/* ============================================================
   DIRECTIONS — "route ticket" (redesigned from scratch v384)
   The address is the hero, shown as a from→to journey ticket.
   ============================================================ */
.rt2{display:flex;flex-direction:column;gap:16px;padding:4px 2px 6px}
.rt2-ticket{position:relative;display:flex;gap:16px;padding:20px 18px;border-radius:20px;
  background:linear-gradient(158deg,#faf8f1,#f1efe4);border:1px solid rgba(30,45,25,.09);
  box-shadow:0 10px 26px -16px rgba(20,40,20,.4)}
/* journey rail: dot -> dotted line -> pin */
.rt2-journey{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;padding-top:5px}
.rt2-dot{width:13px;height:13px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}
.rt2-dot-a{background:#fff;border:3px solid #9bab8f}
.rt2-line{flex:1;width:2px;min-height:30px;margin:3px 0;
  background:repeating-linear-gradient(#b9c2ac 0 4px,transparent 4px 9px)}
.rt2-dot-b{width:30px;height:30px;border-radius:50%;background:linear-gradient(150deg,#3f6b45,#22331f);
  box-shadow:0 5px 12px -4px rgba(20,50,25,.6)}
.rt2-dot-b svg{width:16px;height:16px;stroke:#e9c46a;color:#e9c46a}
.rt2-stops{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:space-between;gap:22px}
.rt2-stop span{display:block;font-family:var(--font-body);font-size:10.5px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:#9aa48c;margin-bottom:3px}
.rt2-stop strong{display:block;font-family:var(--font-display,"Fraunces",Georgia,serif);font-weight:600;color:#18251a;line-height:1.2;overflow-wrap:anywhere}
.rt2-stop:first-child strong{font-size:15px;color:#7c8a72;font-weight:500}
.rt2-stop:last-child strong{font-size:20px;letter-spacing:-.01em}
/* primary action */
.rt2-go{border:0;width:100%;height:58px;border-radius:16px;cursor:pointer;font:inherit;
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:linear-gradient(180deg,#5c7a4e,#33481f);color:#fff;
  font-size:16.5px;font-weight:800;letter-spacing:.005em;
  box-shadow:0 14px 28px -10px rgba(40,60,30,.55),inset 0 1px 0 rgba(255,255,255,.2);
  transition:transform .12s ease}
.rt2-go svg{width:18px;height:18px;stroke:#fff;transform:rotate(180deg)}
@media(hover:hover){.rt2-go:hover{transform:translateY(-1px)}}
.rt2-go:active{transform:translateY(0) scale(.99)}
/* app row — brand marks, minimal words */
.rt2-apps{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.rt2-app{display:flex;flex-direction:column;align-items:center;gap:8px;padding:13px 6px;border-radius:14px;cursor:pointer;font:inherit;
  background:#fff;border:1px solid rgba(30,45,25,.1);color:#2a3a2c;font-size:12px;font-weight:700;
  -webkit-tap-highlight-color:transparent;transition:border-color .12s ease,transform .12s ease}
@media(hover:hover){.rt2-app:hover{border-color:rgba(58,93,59,.4)}}
.rt2-app:active{transform:scale(.97)}
.rt2-mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;position:relative;box-shadow:0 3px 8px rgba(0,0,0,.14)}
.rt2-mark::after{content:"";width:19px;height:19px;background:#fff;
  -webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
.rt2-mark.apple{background:#1c1c1e;--m:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C8 2 5 5 5 9c0 5 5 11 7 13 2-2 7-8 7-13 0-4-3-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z"/></svg>')}
.rt2-mark.google{background:#4285f4;--m:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C8 2 5 5 5 9c0 5 5 11 7 13 2-2 7-8 7-13 0-4-3-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z"/></svg>')}
.rt2-mark.waze{background:#33ccff;--m:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="12" cy="11" r="9"/></svg>')}
/* copy — quiet text button */
.rt2-copy{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:46px;border-radius:13px;cursor:pointer;font:inherit;
  background:transparent;border:1px dashed rgba(58,93,59,.35);color:#4a6b3e;font-size:14px;font-weight:700}
.rt2-copy svg{width:16px;height:16px;stroke:#4a6b3e}
.rt2-copy:active{background:rgba(58,93,59,.06)}
/* bottom-sheet framing on phones; title bar hidden since ticket is the hero */
@media(max-width:720px){
  body[data-modal-type="booking-address-actions"] .modal-overlay{align-items:flex-end!important;padding:0!important}
  body[data-modal-type="booking-address-actions"] .modal{width:100%!important;max-width:none!important;border-radius:26px 26px 0 0!important;margin:0!important;padding-bottom:var(--safe-b)!important;max-height:min(88dvh,760px)!important}
  body[data-modal-type="booking-address-actions"] .modal-head{padding:14px 18px 0!important;border:0!important}
  body[data-modal-type="booking-address-actions"] .modal-body{padding:8px 18px 16px!important}
  body[data-modal-type="booking-address-actions"] .modal-foot{display:none!important}
}


/* ---- inline style 65 ---- */

/* Desktop-only New/Edit Shift refinement. Mobile layout is intentionally unchanged. */
@media (min-width:1024px){
  body[data-modal-type="shift"] .shift-modal{
    width:min(96vw,1120px)!important;
    max-width:1120px!important;
    max-height:calc(100dvh - 24px)!important;
    height:auto!important;
    display:flex!important;
    flex-direction:column!important;
    border-radius:24px!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-head{
    flex:0 0 auto!important;
    min-height:58px!important;
    padding:14px 20px 10px!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-head h2{
    font-size:21px!important;
    line-height:1.1!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-x{
    width:38px!important;
    height:38px!important;
    border-radius:12px!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-body{
    flex:1 1 auto!important;
    min-height:0!important;
    padding:10px 20px 9px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-foot{
    flex:0 0 auto!important;
    min-height:58px!important;
    padding:9px 20px 11px!important;
    gap:10px!important;
  }
  body[data-modal-type="shift"] .shift-builder{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-areas:
      "client employees"
      "time colour"
      "recurrence visibility"
      "notes notes"!important;
    gap:10px!important;
    align-items:stretch!important;
    padding:0!important;
  }
  body[data-modal-type="shift"] .client-search-panel{grid-area:client!important}
  body[data-modal-type="shift"] .emp-field{grid-area:employees!important}
  body[data-modal-type="shift"] .shift-date-time-panel{grid-area:time!important}
  body[data-modal-type="shift"] .shift-colour-section{grid-area:colour!important}
  body[data-modal-type="shift"] .recurrence-section{grid-area:recurrence!important}
  body[data-modal-type="shift"] .visibility-section{grid-area:visibility!important}
  body[data-modal-type="shift"] .shift-notes-section{grid-area:notes!important}

  body[data-modal-type="shift"] .shift-panel,
  body[data-modal-type="shift"] .shift-date-time-panel,
  body[data-modal-type="shift"] .emp-field,
  body[data-modal-type="shift"] .shift-colour-section{
    min-width:0!important;
    padding:11px 12px!important;
    border-radius:15px!important;
    box-shadow:0 3px 10px rgba(24,38,24,.045)!important;
  }
  body[data-modal-type="shift"] .panel-title{margin-bottom:7px!important}
  body[data-modal-type="shift"] .shift-section-label,
  body[data-modal-type="shift"] .panel-title>span:first-child,
  body[data-modal-type="shift"] .shift-colour-head>span:first-child,
  body[data-modal-type="shift"] .shift-section>summary span{
    font-size:13px!important;
    line-height:1.15!important;
  }
  body[data-modal-type="shift"] .client-search-box{
    height:42px!important;
    min-height:42px!important;
    padding:0 11px!important;
    border-radius:11px!important;
  }
  body[data-modal-type="shift"] .client-search-box input{
    font-size:14px!important;
    font-weight:620!important;
  }
  body[data-modal-type="shift"] .add-client-block{margin-top:7px!important}
  body[data-modal-type="shift"] .add-client-toggle{
    min-height:32px!important;
    padding:6px 10px!important;
    border-radius:10px!important;
    font-size:11.5px!important;
  }
  body[data-modal-type="shift"] .emp-selected-summary{
    margin-top:5px!important;
    padding:5px 9px!important;
    font-size:11.5px!important;
    line-height:1.25!important;
  }
  body[data-modal-type="shift"] .shift-date-time-panel summary,
  body[data-modal-type="shift"] .shift-section>summary{
    padding:0 0 8px!important;
    margin-bottom:8px!important;
  }
  body[data-modal-type="shift"] .shift-date-time-panel summary small{
    font-size:10px!important;
    max-width:55%!important;
  }
  body[data-modal-type="shift"] .field{gap:4px!important;margin:0!important}
  body[data-modal-type="shift"] .field label{
    font-size:11.5px!important;
    line-height:1.15!important;
  }
  body[data-modal-type="shift"] .input,
  body[data-modal-type="shift"] select.input,
  body[data-modal-type="shift"] input.input{
    height:40px!important;
    min-height:40px!important;
    border-radius:10px!important;
    font-size:13.5px!important;
    padding-top:0!important;
    padding-bottom:0!important;
  }
  body[data-modal-type="shift"] .row2{gap:8px!important}
  body[data-modal-type="shift"] .shift-date-time-panel .row2{margin-top:8px!important}
  body[data-modal-type="shift"] .recurrence-section .row2{gap:8px!important}

  body[data-modal-type="shift"] .shift-colour-head{
    min-height:28px!important;
    margin-bottom:7px!important;
  }
  body[data-modal-type="shift"] .shift-colour-current{
    padding:4px 8px!important;
    font-size:10px!important;
  }
  body[data-modal-type="shift"] .shift-colour-section.is-collapsed{
    padding-bottom:11px!important;
  }
  body[data-modal-type="shift"] .shift-colour-section.is-collapsed .shift-colour-head{
    margin-bottom:7px!important;
  }
  body[data-modal-type="shift"] .colour-preview-card{
    grid-template-columns:112px minmax(0,1fr)!important;
    min-height:54px!important;
    border-radius:13px!important;
    box-shadow:0 5px 12px color-mix(in srgb,var(--cc-solid,#2e7b43) 12%,transparent)!important;
  }
  body[data-modal-type="shift"] .colour-preview-time{
    padding:7px!important;
    font-size:11.5px!important;
  }
  body[data-modal-type="shift"] .colour-preview-main{padding:8px 10px!important}
  body[data-modal-type="shift"] .colour-preview-main strong{font-size:13.5px!important}
  body[data-modal-type="shift"] .colour-preview-main span{font-size:10.5px!important;padding:4px 7px!important}
  body[data-modal-type="shift"] .colour-swatches{grid-template-columns:repeat(4,minmax(0,1fr))!important}

  /* Redesigned visibility selector — published is the default and visually strongest. */
  body[data-modal-type="shift"] .visibility-section{
    position:relative!important;
    overflow:hidden!important;
    background:linear-gradient(145deg,#fffdf8,#f4f1e8)!important;
  }
  body[data-modal-type="shift"] .visibility-title{
    align-items:center!important;
    margin-bottom:8px!important;
  }
  body[data-modal-type="shift"] .visibility-title>span:first-child{
    display:inline-flex!important;
    align-items:center!important;
    gap:7px!important;
  }
  body[data-modal-type="shift"] .vis-state-pill{
    margin-left:auto!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:23px!important;
    padding:0 9px!important;
    border-radius:999px!important;
    font-size:10px!important;
    font-weight:900!important;
    letter-spacing:.055em!important;
    text-transform:uppercase!important;
  }
  body[data-modal-type="shift"] .vis-state-pill.published{
    color:#fff!important;
    background:linear-gradient(135deg,#3d8d52,#28673b)!important;
    box-shadow:0 4px 10px rgba(47,107,62,.22)!important;
  }
  body[data-modal-type="shift"] .vis-state-pill.draft{
    color:#775716!important;
    background:#fff0bf!important;
    border:1px solid #e2bd58!important;
  }
  body[data-modal-type="shift"] .vis-toggle{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
    margin:4px 0 0!important;
  }
  body[data-modal-type="shift"] .vis-opt{
    min-height:0!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    gap:8px!important;
    padding:10px 12px!important;
    border-radius:11px!important;
    text-align:left!important;
  }
  body[data-modal-type="shift"] .vis-opt-icon{width:20px!important;height:20px!important;border-radius:0!important;background:transparent!important}
  body[data-modal-type="shift"] .vis-opt-icon svg{width:16px!important;height:16px!important}
  body[data-modal-type="shift"] .vis-opt-copy{display:flex!important;flex-direction:column!important;gap:0!important}
  body[data-modal-type="shift"] .vis-opt-copy strong{font-size:14px!important;line-height:1.15!important;font-weight:800!important}
  body[data-modal-type="shift"] .vis-opt-copy small{display:none!important}
  body[data-modal-type="shift"] .vis-opt-check{
    position:absolute!important;top:50%!important;right:11px!important;transform:translateY(-50%) scale(.7)!important;
    width:20px!important;height:20px!important;border-radius:50%!important;display:grid!important;place-items:center!important;
    background:rgba(255,255,255,.22)!important;color:#fff!important;font-size:12px!important;font-weight:900!important;opacity:0!important;transition:opacity .15s,transform .15s!important}
  body[data-modal-type="shift"] .vis-opt.active .vis-opt-check{opacity:1!important;transform:translateY(-50%) scale(1)!important}
  body[data-modal-type="shift"] .vis-opt.vis-published.active{
    border-color:#3b8650!important;
    background:linear-gradient(145deg,#eef8ec,#dcefd9)!important;
    box-shadow:0 0 0 2px rgba(59,134,80,.10),0 6px 14px rgba(47,107,62,.10)!important;
    color:#21492c!important;
  }
  body[data-modal-type="shift"] .vis-opt.vis-published.active .vis-opt-icon,
  body[data-modal-type="shift"] .vis-opt.vis-published.active .vis-opt-check{
    background:linear-gradient(135deg,#4a9b5f,#2f7143)!important;
    color:#fff!important;
  }
  body[data-modal-type="shift"] .vis-opt.vis-draft.active{
    border-color:#d3a93e!important;
    background:linear-gradient(145deg,#fff9e8,#fff0be)!important;
    box-shadow:0 0 0 2px rgba(211,169,62,.10),0 6px 14px rgba(130,96,24,.08)!important;
    color:#6c5015!important;
  }
  body[data-modal-type="shift"] .vis-opt.vis-draft.active .vis-opt-icon,
  body[data-modal-type="shift"] .vis-opt.vis-draft.active .vis-opt-check{
    background:linear-gradient(135deg,#d7ad45,#b18424)!important;
    color:#fff!important;
  }
  body[data-modal-type="shift"] .vis-hint{
    margin:6px 2px 0!important;
    font-size:10px!important;
    line-height:1.25!important;
    font-weight:750!important;
    color:#667168!important;
  }

  body[data-modal-type="shift"] .shift-notes-section{
    display:grid!important;
    grid-template-columns:150px minmax(0,1fr)!important;
    align-items:center!important;
    gap:12px!important;
    min-height:76px!important;
  }
  body[data-modal-type="shift"] .shift-notes-section .panel-title{
    margin:0!important;
  }
  body[data-modal-type="shift"] .shift-notes-section .field{
    margin:0!important;
  }
  body[data-modal-type="shift"] .shift-notes-section .field label{display:none!important}
  body[data-modal-type="shift"] .notes-textarea{
    height:54px!important;
    min-height:54px!important;
    max-height:54px!important;
    padding:9px 11px!important;
    line-height:1.3!important;
    resize:none!important;
  }
  body[data-modal-type="shift"] .sft-btn{
    height:40px!important;
    border-radius:12px!important;
    font-size:13px!important;
  }
  body[data-modal-type="shift"] .sft-save{flex:1 1 auto!important}
  body[data-modal-type="shift"] .sft-cancel{flex:0 0 130px!important}
}

/* At normal laptop/desktop heights, the complete default form fits without scrolling. */
@media (min-width:1024px) and (min-height:740px){
  body[data-modal-type="shift"] .shift-modal{
    height:min(94dvh,820px)!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-body{
    overflow-y:hidden!important;
  }
  body[data-modal-type="shift"] .shift-modal:has(.client-picker:not(.is-collapsed)) .modal-body,
  body[data-modal-type="shift"] .shift-modal:has(.employee-picker:not(.is-collapsed)) .modal-body,
  body[data-modal-type="shift"] .shift-modal:has(.add-client-form) .modal-body,
  body[data-modal-type="shift"] .shift-modal:has(.shift-colour-section.is-open) .modal-body{
    overflow-y:auto!important;
  }
}


/* ---- inline style 66 ---- */

/* Keep the app at a fixed browser scale and remove elastic page movement. */
html,body,#app,.shell{
  max-width:100vw!important;
  overflow-x:hidden!important;
  overscroll-behavior:none!important;
  scroll-behavior:auto!important;
  -webkit-text-size-adjust:100%!important;
  text-size-adjust:100%!important;
}
html,body{touch-action:pan-x pan-y!important;}

/* Mobile/tablet: the app shell owns the viewport and .main owns vertical scroll.
   This prevents the Safari body itself from rubber-banding behind the app. */
@media(max-width:1023px){
  html,body,#app,.shell{
    width:100%!important;
    /* Keep the no-bounce lock, but inherit the physical Home Screen canvas
       resolved by the mobile-navigation geometry controller. Never restore
       100dvh here: installed iOS PWAs may report it shorter than the screen. */
    height:var(--ww-shell-h,100lvh)!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .main{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:none!important;
    -webkit-overflow-scrolling:touch!important;
  }
  input,textarea,select{
    font-size:16px!important; /* prevents iPhone focus zoom */
  }
}

/* Real scroll areas stay scrollable, but cannot hand overscroll to the page. */
.main,.content,.page,#page,.modal-body,.modal-scroll,.chat-scroll,.cv-threads,
.cl-threads,.avail-grid-wrap,.employee-picker,.simple-list,.rwg-wrap,
.roster-grid-wrap,.updates-list,.docs-list,.bookings-list{
  overscroll-behavior:contain!important;
  scroll-behavior:auto!important;
}

/* Avoid layout-shifting press animations while preserving colour feedback. */
button,[data-action],[role="button"],.btn,.icon-btn,.card,.rcard,.cv-row{
  will-change:auto!important;
}


/* ---- inline style 67 ---- */

@media (max-width:1023px){
  html,body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    overscroll-behavior:none!important;
    -webkit-text-size-adjust:100%!important;
    text-size-adjust:100%!important;
  }
  body.ww-native-form-active{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:var(--ww-native-form-height,100svh)!important;
    max-height:var(--ww-native-form-height,100svh)!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    touch-action:none!important;
  }
  body.ww-native-form-active #app,
  body.ww-native-form-active .shell,
  body.ww-native-form-active .main{
    width:100%!important;
    max-width:100%!important;
    height:var(--ww-native-form-height,100svh)!important;
    max-height:var(--ww-native-form-height,100svh)!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    transform:none!important;
  }
  body.ww-native-form-active #modalHost,
  body.ww-native-form-active .modal-overlay,
  body.ww-native-form-active .modal-backdrop,
  body.ww-native-form-active [role="dialog"]{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    max-width:100%!important;
    height:var(--ww-native-form-height,100svh)!important;
    max-height:var(--ww-native-form-height,100svh)!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    touch-action:none!important;
    transform:none!important;
  }
  body.ww-native-form-active .modal,
  body.ww-native-form-active .modal-card,
  body.ww-native-form-active .shift-modal,
  body.ww-native-form-active .timesheet-modal,
  body.ww-native-form-active .sheet,
  body.ww-native-form-active .drawer,
  body.ww-native-form-active [role="dialog"] > *{
    max-width:100%!important;
    overflow-x:hidden!important;
    overscroll-behavior:none!important;
    transform:none!important;
  }
  body.ww-native-form-active .modal-body,
  body.ww-native-form-active .modal-scroll,
  body.ww-native-form-active .sheet-body,
  body.ww-native-form-active .drawer-body,
  body.ww-native-form-active .shift-modal .modal-body,
  body.ww-native-form-active .timesheet-modal .modal-body,
  body.ww-native-form-active [role="dialog"] .modal-body,
  body.ww-native-form-active [role="dialog"] .modal-scroll{
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
    overscroll-behavior-x:none!important;
    -webkit-overflow-scrolling:touch!important;
    scroll-behavior:auto!important;
    touch-action:pan-y!important;
    transform:none!important;
  }
  body.ww-native-form-active input,
  body.ww-native-form-active textarea,
  body.ww-native-form-active select,
  body.ww-native-form-active [contenteditable="true"]{
    min-width:0!important;
    max-width:100%!important;
    font-size:16px!important;
    -webkit-text-size-adjust:100%!important;
    touch-action:manipulation!important;
    transform:none!important;
    animation:none!important;
    transition-property:border-color,box-shadow,background-color,color!important;
  }
  body.ww-native-form-active button,
  body.ww-native-form-active a,
  body.ww-native-form-active [role="button"],
  body.ww-native-form-active label{
    touch-action:manipulation!important;
  }
  body.ww-native-form-keyboard .modal,
  body.ww-native-form-keyboard .modal-card,
  body.ww-native-form-keyboard .shift-modal,
  body.ww-native-form-keyboard .timesheet-modal,
  body.ww-native-form-keyboard .sheet,
  body.ww-native-form-keyboard .drawer{
    transform:none!important;
    animation:none!important;
  }
}


/* ---- inline style 68 ---- */

body[data-modal-type="shift"] .ww515-schedule-step>.ww517-visibility{
  margin:10px 0 0!important;padding:10px!important;border-radius:13px!important;
  background:#f8faf5!important;border:1px solid rgba(48,89,56,.13)!important;box-shadow:none!important;
}
body[data-modal-type="shift"] .ww517-visibility .panel-title{
  display:flex!important;align-items:center!important;justify-content:space-between!important;margin:0 0 8px!important;min-height:0!important;
}
body[data-modal-type="shift"] .ww517-visibility .panel-title>span:first-child{
  display:flex!important;align-items:center!important;gap:6px!important;font-size:11.5px!important;font-weight:900!important;color:#263a2c!important;
}
body[data-modal-type="shift"] .ww517-visibility .panel-title svg{width:15px!important;height:15px!important;color:#356f48!important}
body[data-modal-type="shift"] .ww517-visibility .vis-state-pill{
  padding:4px 8px!important;border-radius:999px!important;font-size:8.5px!important;font-weight:950!important;letter-spacing:.03em!important;
}
body[data-modal-type="shift"] .ww517-visibility .vis-toggle{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;margin:0!important}
body[data-modal-type="shift"] .ww517-visibility .vis-opt{
  min-height:42px!important;padding:7px 9px!important;border-radius:11px!important;gap:7px!important;
  border:1px solid rgba(48,80,53,.13)!important;background:#fff!important;box-shadow:none!important;
}
body[data-modal-type="shift"] .ww517-visibility .vis-opt-copy strong{font-size:11px!important;font-weight:900!important}
body[data-modal-type="shift"] .ww517-visibility .vis-opt-copy small{display:block!important;font-size:8px!important;line-height:1.15!important;color:#7c877f!important}
body[data-modal-type="shift"] .ww517-visibility .vis-opt.active .vis-opt-copy small{color:rgba(255,255,255,.78)!important}
body[data-modal-type="shift"] .ww517-visibility .vis-opt-icon{width:20px!important;height:20px!important}
body[data-modal-type="shift"] .ww517-visibility .vis-opt-check{right:7px!important;width:17px!important;height:17px!important;font-size:10px!important}
body[data-modal-type="shift"] .ww517-visibility .vis-hint{margin:7px 1px 0!important;font-size:8.8px!important;line-height:1.3!important;color:#738078!important}

body[data-modal-type="shift"] .ww517-single-staff{
  margin-top:9px!important;padding:10px!important;border-radius:13px!important;background:#f7faf5!important;border:1px solid rgba(43,91,54,.13)!important;
}
body[data-modal-type="shift"] .ww517-single-head{
  display:grid!important;grid-template-columns:32px minmax(0,1fr) auto!important;align-items:center!important;gap:9px!important;margin-bottom:8px!important;
}
body[data-modal-type="shift"] .ww517-single-head>span:nth-child(2){display:flex!important;flex-direction:column!important;gap:1px!important}
body[data-modal-type="shift"] .ww517-single-head strong{font-size:12.5px!important;color:#24382b!important;font-weight:900!important}
body[data-modal-type="shift"] .ww517-single-head small{font-size:9px!important;color:#7b867e!important}
body[data-modal-type="shift"] .ww517-single-pill{padding:5px 8px!important;border-radius:999px!important;background:#e3efe1!important;color:#23613a!important;font-size:10px!important;font-weight:950!important}
body[data-modal-type="shift"] .ww517-single-row{
  display:grid!important;grid-template-columns:34px minmax(0,1fr) auto!important;align-items:center!important;gap:9px!important;min-height:50px!important;padding:7px 9px!important;
  border-radius:11px!important;background:#fff!important;border:1px solid rgba(45,82,51,.10)!important;
}
body[data-modal-type="shift"] .ww517-single-row .ww511-allocation-av{width:32px!important;height:32px!important;border-radius:9px!important;font-size:9px!important}
body[data-modal-type="shift"] .ww517-single-row .ww511-allocation-copy strong{font-size:11.5px!important}
body[data-modal-type="shift"] .ww517-single-row .ww511-allocation-copy small{font-size:9px!important}
body[data-modal-type="shift"] .ww517-single-row .ww515-row-hours{font-size:12px!important;color:#23653a!important}
body[data-modal-type="shift"] .ww517-single-staff>p{margin:7px 2px 0!important;font-size:8.8px!important;color:#748078!important}

@media (min-width:1024px){
  body[data-modal-type="shift"] .ww515-schedule-step>.ww517-visibility{margin-top:10px!important;padding:10px 11px!important}
  body[data-modal-type="shift"] .ww517-visibility .vis-opt{min-height:44px!important}
  body[data-modal-type="shift"] .ww517-single-staff{margin-top:13px!important;padding:11px 12px!important;border-top:1px solid rgba(39,76,47,.08)!important}
  body[data-modal-type="shift"] .ww517-single-row{min-height:52px!important}
}
@media (max-width:390px){
  body[data-modal-type="shift"] .ww517-visibility .vis-opt-copy small{display:none!important}
  body[data-modal-type="shift"] .ww517-visibility .vis-opt{min-height:39px!important;padding:6px 7px!important}
}


/* ---- inline style 69 ---- */

body[data-modal-type="shift"] .ww517-visibility .vis-opt.vis-published.active{
  background:linear-gradient(135deg,#2f7b45,#24643a)!important;
  border-color:#24643a!important;color:#fff!important;
  box-shadow:0 4px 10px rgba(35,99,55,.16)!important;
}
body[data-modal-type="shift"] .ww517-visibility .vis-opt.vis-draft.active{
  background:linear-gradient(135deg,#fff1be,#f5d984)!important;
  border-color:#d2a832!important;color:#513b08!important;
  box-shadow:0 4px 10px rgba(162,122,21,.14)!important;
}
body[data-modal-type="shift"] .ww517-visibility .vis-opt.vis-draft.active .vis-opt-copy strong,
body[data-modal-type="shift"] .ww517-visibility .vis-opt.vis-draft.active .vis-opt-icon,
body[data-modal-type="shift"] .ww517-visibility .vis-opt.vis-draft.active .vis-opt-check{color:#513b08!important}
body[data-modal-type="shift"] .ww517-visibility .vis-opt.vis-draft.active .vis-opt-copy small{color:#795f1c!important}
body[data-modal-type="shift"] .ww517-single-row .ww511-allocation-copy{
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:2px!important;min-width:0!important;
}
body[data-modal-type="shift"] .ww517-single-row .ww511-allocation-copy strong{
  display:block!important;width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;line-height:1.2!important;
}
body[data-modal-type="shift"] .ww517-single-row .ww511-allocation-copy small{
  display:block!important;width:100%!important;line-height:1.2!important;color:#748078!important;
}


/* ---- inline style 70 ---- */

/* Compact shared day navigation and readable full team names on roster cards. */
@media(max-width:1023px){
  .ww522-roster-controls{
    margin:0 0 10px!important;
    padding:9px 10px 8px!important;
    border-radius:18px!important;
    box-shadow:0 7px 20px rgba(25,55,34,.065),inset 0 1px 0 rgba(255,255,255,.92)!important;
  }
  .ww522-roster-controls .ww521-picker-head{display:none!important;}
  .ww522-roster-controls .ww521-control-search{
    margin:0 0 8px!important;
    padding:0 0 8px!important;
  }
  .ww522-roster-controls .ww521-control-search-label{display:none!important;}
  .ww522-roster-controls .rwg-search-top{
    height:40px!important;
    min-height:40px!important;
    padding:0 11px!important;
    border-radius:12px!important;
    background:#f6f8f4!important;
  }
  .ww522-roster-controls .rwg-search-top input{
    height:38px!important;
    font-size:12.5px!important;
    font-weight:620!important;
  }
  .ww522-roster-controls .rwg-search-ic{width:17px!important;height:17px!important;}
  .ww522-roster-controls .rst-days,
  .ww522-roster-controls .rst-days-admin{
    gap:5px!important;
  }
  .ww522-roster-controls .rst-day,
  .ww522-roster-controls .rst-days-admin .rst-day{
    min-height:52px!important;
    padding:5px 1px 4px!important;
    border-radius:13px!important;
    gap:1px!important;
    box-shadow:0 2px 5px rgba(24,49,31,.04),inset 0 1px 0 rgba(255,255,255,.95)!important;
  }
  .ww522-roster-controls .rd-dow{font-size:7.4px!important;}
  .ww522-roster-controls .rd-num{font-size:16px!important;line-height:1!important;}
  .ww522-roster-controls .rd-cnt{
    min-width:15px!important;height:15px!important;padding:0 4px!important;font-size:7.5px!important;
  }
  .ww522-roster-controls .rd-stats,
  .ww522-roster-controls .rst-days-admin .rd-stats{
    min-width:30px!important;height:14px!important;padding:0 3px!important;gap:2px!important;
  }
  .ww522-roster-controls .rd-stats b,
  .ww522-roster-controls .rst-days-admin .rd-stats b{font-size:7px!important;}
  .ww522-roster-controls .rd-stats em,
  .ww522-roster-controls .rst-days-admin .rd-stats em{font-size:6.7px!important;}
  .ww522-roster-controls .ww521-selected-day{
    min-height:34px!important;
    margin:7px 0 0!important;
    padding:7px 1px 0!important;
    align-items:center!important;
  }
  .ww522-roster-controls .ww521-selected-copy>span{display:none!important;}
  .ww522-roster-controls .ww521-selected-day h2{
    font-size:18px!important;
    line-height:1.05!important;
  }
  .ww522-roster-controls .ww521-selected-meta{
    max-width:52%!important;
    padding:5px 8px!important;
    font-size:8.6px!important;
  }

  /* Slightly taller only where needed, so every assigned first name can wrap cleanly. */
  .roster-mobile .ww522-roster-card,
  .home-roster-list .ww522-roster-card{
    grid-template-columns:50px minmax(0,1fr) auto!important;
    min-height:76px!important;
    height:auto!important;
    padding:7px 9px!important;
    gap:8px!important;
    align-items:center!important;
  }
  .roster-mobile .ww522-roster-card.is-emp,
  .home-roster-list .ww522-roster-card.is-emp{min-height:80px!important;}
  .ww522-roster-card .ww512-hours-badge{
    width:50px!important;min-width:50px!important;height:48px!important;
  }
  .ww522-card-copy{
    gap:2px!important;
    align-self:center!important;
    overflow:visible!important;
  }
  .ww522-card-copy .ww512-title-row{margin-bottom:1px!important;}
  .ww522-card-copy .ww512-title-row h3{
    font-size:13.8px!important;
    line-height:1.08!important;
  }
  .ww522-shift-time{
    display:flex!important;
    align-items:center!important;
    min-width:0!important;
    color:rgba(255,255,255,.91)!important;
    font-size:9.5px!important;
    font-weight:800!important;
    line-height:1.15!important;
  }
  .ww522-team-line{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    align-items:start!important;
    gap:4px!important;
    min-width:0!important;
    color:rgba(255,255,255,.94)!important;
    font-size:9.3px!important;
    font-weight:760!important;
    line-height:1.18!important;
    overflow:visible!important;
  }
  .ww522-team-label{
    display:inline-flex!important;
    align-items:center!important;
    height:15px!important;
    padding:0 5px!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.15)!important;
    color:rgba(255,255,255,.88)!important;
    font-size:5.8px!important;
    font-weight:950!important;
    letter-spacing:.06em!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
  }
  .ww522-team-names{
    min-width:0!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  .ww522-roster-card.is-admin.is-draft .ww522-shift-time,
  .ww522-roster-card.is-admin.is-draft .ww522-team-line{color:#55675a!important;}
  .ww522-roster-card.is-admin.is-draft .ww522-team-label{
    background:#e8efe6!important;color:#42614b!important;
  }
  .ww522-roster-card.is-rejected .ww522-shift-time,
  .ww522-roster-card.is-rejected .ww522-team-line{color:#9d2d2d!important;}
  .ww522-roster-card.is-rejected .ww522-team-label{
    background:#f6dada!important;color:#a72a2a!important;
  }
  .ww522-roster-card .ww512-actions{
    align-self:center!important;
  }
}
@media(max-width:370px){
  .ww522-roster-controls{padding:8px!important;border-radius:16px!important;}
  .ww522-roster-controls .rst-days,.ww522-roster-controls .rst-days-admin{gap:3px!important;}
  .ww522-roster-controls .rst-day,.ww522-roster-controls .rst-days-admin .rst-day{min-height:49px!important;border-radius:11px!important;}
  .ww522-roster-controls .rd-num{font-size:15px!important;}
  .roster-mobile .ww522-roster-card,.home-roster-list .ww522-roster-card{grid-template-columns:47px minmax(0,1fr) auto!important;gap:6px!important;padding:7px!important;}
  .ww522-roster-card .ww512-hours-badge{width:47px!important;min-width:47px!important;height:46px!important;}
  .ww522-card-copy .ww512-title-row h3{font-size:13px!important;}
  .ww522-shift-time{font-size:9px!important;}
  .ww522-team-line{font-size:8.8px!important;}
}


/* ---- inline style 71 ---- */

/* ============================================================
   ADMIN HOME — cleaner, more professional (v120)
   Refines the dark "Today" hero, the four stat tiles, the
   Add-shift button and the Pending approvals panel. Calmer,
   crisper, less ornate. Mobile-first (matches the screenshot)
   with desktop kept tidy too.
   ============================================================ */

/* ---- Hero card: a touch more padding + cleaner depth ---- */
.hm-hero.admin{
  background:linear-gradient(150deg,#2f6140 0%,#173a26 100%)!important;
  border-radius:20px!important;
  padding:16px 16px 15px!important;
  box-shadow:0 12px 30px rgba(16,38,22,.22)!important;
}
.hm-hero .hm-eyebrow{font-size:11px!important;letter-spacing:.10em!important;text-transform:uppercase!important;color:rgba(255,255,255,.62)!important;font-weight:700!important}
.hm-hero-copy h1{font-size:24px!important;margin:2px 0 3px!important;letter-spacing:-.01em!important}
.hm-hero-copy p{font-size:12.5px!important;color:rgba(255,255,255,.78)!important;font-weight:500!important}

/* ---- Stat tiles: bigger, clearer, evenly weighted ---- */
.hm-hero-stats{gap:8px!important;margin-top:14px!important}
.hm-hs{
  background:rgba(255,255,255,.10)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  border-radius:14px!important;
  padding:11px 6px 9px!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;gap:3px!important;
}
.hm-hs strong{font-size:21px!important;font-weight:800!important;line-height:1!important;color:#fff!important}
.hm-hs em{
  font-size:9px!important;font-weight:620!important;letter-spacing:.05em!important;
  text-transform:uppercase!important;color:rgba(255,255,255,.66)!important;margin-top:0!important;
  line-height:1.25!important;
}
/* "To approve" — subtle warm highlight, not a muddy brown block */
.hm-hs.alert{
  background:rgba(233,170,84,.16)!important;
  border-color:rgba(233,170,84,.42)!important;
  box-shadow:none!important;
}
.hm-hs.alert strong{color:#f4c87a!important}
.hm-hs.alert em{color:rgba(244,200,122,.85)!important}

/* ---- Add shift: one clean, confident button (drop the ornate gold pill) ---- */
@media(max-width:720px){
  .hm-hero.admin .hm-hero-add{
    position:relative!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;
    gap:7px!important;width:auto!important;height:38px!important;padding:0 15px 0 13px!important;
    border-radius:12px!important;
    background:#fbfaf6!important;color:#173f25!important;
    border:1px solid rgba(255,255,255,.3)!important;
    box-shadow:0 4px 12px rgba(0,0,0,.18)!important;
    backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
    font-size:13px!important;font-weight:750!important;letter-spacing:0!important;text-shadow:none!important;
  }
  .hm-hero.admin .hm-hero-add::before{content:none!important}
  .hm-hero.admin .hm-hero-add::after{content:none!important}
  .hm-hero.admin .hm-hero-add svg{
    width:18px!important;height:18px!important;padding:0!important;border-radius:0!important;
    background:none!important;color:#2f6b3e!important;stroke:#2f6b3e!important;stroke-width:2.4!important;
    flex:0 0 18px!important;box-shadow:none!important;margin:0!important;
  }
  .hm-hero.admin .hm-hero-add span{padding:0!important;line-height:1!important;white-space:nowrap!important}
  .hm-hero.admin .hm-hero-add:active{transform:scale(.97)!important}
}
/* desktop add-shift stays clean too */
@media(min-width:721px){
  .hm-hero.admin .hm-hero-add{
    flex-direction:row!important;gap:8px!important;height:40px!important;padding:0 16px!important;
    border-radius:12px!important;background:#fbfaf6!important;color:#173f25!important;
    border:1px solid rgba(255,255,255,.25)!important;font-size:13.5px!important;font-weight:750!important;
    box-shadow:0 4px 12px rgba(0,0,0,.16)!important;backdrop-filter:none!important;
  }
  .hm-hero.admin .hm-hero-add svg{width:18px!important;height:18px!important;color:#2f6b3e!important;stroke:#2f6b3e!important;stroke-width:2.4!important;background:none!important}
}

/* ---- Pending approvals panel: cleaner, less saturated gold ---- */
.approvals-panel{
  background:#fffdf8!important;
  border:1px solid rgba(201,150,60,.30)!important;
  border-radius:18px!important;
  box-shadow:0 4px 14px rgba(140,100,30,.08)!important;
}
.approvals-summary{padding:15px 16px!important;gap:13px!important}
.appr-bell{
  width:42px!important;height:42px!important;border-radius:13px!important;
  background:linear-gradient(150deg,#dfa441,#b9791d)!important;
  box-shadow:0 3px 8px rgba(150,100,20,.22)!important;
}
.appr-bell svg{width:19px!important;height:19px!important}
.appr-sum-txt strong{font-size:16px!important;font-weight:800!important;color:#7a5210!important;letter-spacing:-.01em!important}
.appr-sum-txt span{font-size:12.5px!important;color:#a06f1c!important;font-weight:600!important}
.appr-count{
  min-width:26px!important;height:26px!important;border-radius:999px!important;
  background:#b9791d!important;font-size:13px!important;font-weight:800!important;
}
.appr-chev{color:#b9791d!important}


/* ---- inline style 72 ---- */

/* ============================================================
   ROSTER HEADER — professional redesign (v123)
   A refined dark hero with a clean week switcher, an elegant
   inline stat strip with a divider, a confident solid "Add shift"
   button (no more empty cream bar), and crisp day pills.
   ============================================================ */

/* ---- Hero card (skinny redesign v131) ---- */
.rst-hero.admin{
  background:linear-gradient(155deg,#326545 0%,#15392479 55%,#10301d 100%)!important;
  background-color:#173a26!important;
  border-radius:20px!important;
  padding:12px 13px 13px!important;
  box-shadow:0 12px 28px rgba(14,34,20,.24)!important;
  border:1px solid rgba(255,255,255,.06)!important;
}
.rst-hero.admin .rst-hero-bg{background:radial-gradient(130% 90% at 88% -20%,rgba(255,255,255,.12),transparent 55%)!important}

/* week switcher — fixed 3-column grid so the date can NEVER collide with the arrows */
.rst-hero-top{
  display:grid!important;grid-template-columns:38px minmax(0,1fr) 38px!important;
  gap:10px!important;align-items:center!important;
}
.rst-nav{
  width:38px!important;height:38px!important;min-width:38px!important;border-radius:13px!important;
  border:1px solid rgba(255,255,255,.16)!important;
  background:rgba(255,255,255,.07)!important;color:#fff!important;
  display:grid!important;place-items:center!important;
  transition:background .12s ease,transform .1s ease!important;
}
.rst-nav:active{transform:scale(.92)!important;background:rgba(255,255,255,.14)!important}
.rst-nav svg{width:17px!important;height:17px!important;stroke-width:2.3!important}
.rst-hero-label{min-width:0!important;text-align:center!important;overflow:hidden!important}
.rst-eyebrow{display:block!important;font-size:9.5px!important;line-height:1!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:rgba(255,255,255,.55)!important;font-weight:620!important;margin-bottom:3px!important}
.rst-hero-label strong{
  display:block!important;font-size:clamp(16px,5.1vw,21px)!important;letter-spacing:-.015em!important;line-height:1.05!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important;
}

/* ---- Inline stat strip with a divider ---- */
.rst-hero.admin .rst-hero-foot{
  display:flex!important;flex-wrap:wrap!important;align-items:stretch!important;gap:9px 0!important;margin-top:10px!important;
  background:transparent!important;border:0!important;border-radius:0!important;overflow:visible!important;
}
/* the two stat tiles share one rounded strip with a centre divider */
.rst-hero.admin .rst-hs{
  flex:1 1 0!important;background:rgba(255,255,255,.07)!important;border:1px solid rgba(255,255,255,.10)!important;
  border-radius:0!important;
  padding:8px 6px 7px!important;display:flex!important;flex-direction:column!important;align-items:center!important;gap:2px!important;
  position:relative!important;
}
.rst-hero.admin .rst-hs:first-of-type{border-radius:14px 0 0 14px!important;border-right:0!important}
.rst-hero.admin .rst-hs:nth-of-type(2){border-radius:0 14px 14px 0!important;border-left:0!important}
.rst-hero.admin .rst-hs:nth-of-type(2)::before{
  content:""!important;position:absolute!important;left:0!important;top:20%!important;bottom:20%!important;width:1px!important;
  background:rgba(255,255,255,.14)!important;
}
.rst-hero.admin .rst-hs strong{font-size:20px!important;font-weight:800!important;line-height:1!important;color:#fff!important;letter-spacing:-.01em!important}
.rst-hero.admin .rst-hs em{font-size:9px!important;font-weight:620!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:rgba(255,255,255,.6)!important;margin-top:0!important}

/* ---- Add shift: confident solid button on its own full-width row ---- */
.rst-hero.admin .rst-hero-add{
  flex:0 0 100%!important;width:100%!important;order:2!important;
  display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;
  min-height:42px!important;border-radius:14px!important;padding:0 16px!important;
  background:linear-gradient(180deg,#ffffff,#f4f1e8)!important;color:#163a24!important;
  border:0!important;
  box-shadow:0 7px 16px rgba(8,24,12,.26),inset 0 1px 0 rgba(255,255,255,.9)!important;
  font-size:14.5px!important;font-weight:800!important;letter-spacing:-.01em!important;overflow:visible!important;
  transition:transform .1s ease,box-shadow .14s ease!important;
}
.rst-hero.admin .rst-hero-add::before{content:none!important}
.rst-hero.admin .rst-hero-add .rha-ic{
  width:28px!important;height:28px!important;border-radius:50%!important;flex-shrink:0!important;
  background:linear-gradient(145deg,#43935a,#1f6531)!important;
  box-shadow:0 3px 8px rgba(31,101,49,.36)!important;display:grid!important;place-items:center!important;
}
.rst-hero.admin .rst-hero-add svg{width:15px!important;height:15px!important;stroke:#fff!important;stroke-width:3!important}
.rst-hero.admin .rst-hero-add span{position:relative;z-index:1}
.rst-hero.admin .rst-hero-add:active{transform:scale(.985)!important;box-shadow:0 4px 12px rgba(8,24,12,.26),inset 0 1px 0 rgba(255,255,255,.9)!important}

/* ---- Employee search ---- */
.rwg-search{
  border-radius:14px!important;height:50px!important;padding:0 15px!important;
  border:1px solid rgba(20,31,23,.09)!important;
  box-shadow:0 2px 6px rgba(20,31,23,.05)!important;
}
.rwg-search-ic svg{width:18px!important;height:18px!important}
.rwg-search input{font-size:15px!important;font-weight:500!important}
.rwg-search input::placeholder{color:#a7b0a6!important;font-weight:500!important}

/* ---- Day selector ---- */
.rst-days{gap:6px!important;margin-bottom:16px!important}
.rst-day{
  position:relative!important;gap:3px!important;padding:7px 2px 6px!important;
  border-radius:13px!important;background:#fff!important;
  border:1px solid rgba(20,31,23,.07)!important;
  box-shadow:0 1px 4px rgba(20,31,23,.05)!important;
  transition:transform .1s ease,box-shadow .12s ease!important;
}
.rst-day:active{transform:scale(.95)!important}
.rd-dow{font-size:9px!important;font-weight:800!important;letter-spacing:.05em!important;color:#9aa090!important}
.rd-num{font-size:16px!important;font-weight:800!important;color:var(--ink-900,#1a241c)!important;line-height:1!important}
.rd-cnt{
  min-width:16px!important;height:16px!important;padding:0 4px!important;border-radius:999px!important;
  background:#b07a4a!important;color:#fff!important;font-size:9px!important;font-weight:800!important;
  display:grid!important;place-items:center!important;box-shadow:0 1px 2px rgba(120,70,30,.22)!important;
}
.rd-empty{width:4px!important;height:4px!important;border-radius:50%!important;background:rgba(20,31,23,.13)!important}
.rst-day.today{box-shadow:inset 0 0 0 1.5px rgba(47,107,62,.45),0 1px 4px rgba(20,31,23,.05)!important}
.rst-day.today .rd-dow{color:#2f6b3e!important}
.rst-day.sel{
  background:linear-gradient(170deg,#3f8a52,#2f6b3e)!important;border-color:transparent!important;
  box-shadow:0 5px 12px rgba(47,107,62,.30)!important;
}
.rst-day.sel .rd-dow{color:rgba(255,255,255,.82)!important}
.rst-day.sel .rd-num{color:#fff!important}
.rst-day.sel .rd-cnt{background:rgba(255,255,255,.28)!important;color:#fff!important;box-shadow:none!important}
.rst-day.sel .rd-empty{background:rgba(255,255,255,.5)!important}

/* ---- Day heading ---- */
.rst-day-head h2{font-size:21px!important;letter-spacing:-.015em!important}
.rst-day-head span{font-size:13px!important;font-weight:650!important;color:var(--ink-500,#5d6b60)!important}


/* ---- inline style 73 ---- */

/* V143 — requested only: desktop Messages section redesign. Mobile chat remains untouched. */
@media (min-width:1024px){
  body:has(.chat-shell) .topbar{
    background:linear-gradient(135deg,#183521 0%,#264b2f 58%,#375e3a 100%)!important;
    color:#fff8e8!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 18px 38px rgba(12,30,18,.16)!important;
  }
  body:has(.chat-shell) .topbar h1,
  body:has(.chat-shell) #pageTitle{color:#fff8e8!important;}
  body:has(.chat-shell) .topbar .sub,
  body:has(.chat-shell) #pageSub{color:rgba(255,248,232,.72)!important;}

  .content:has(.chat-shell){
    padding:22px clamp(22px,2.8vw,46px) 34px!important;
    background:
      radial-gradient(circle at 12% 0%,rgba(180,124,76,.13),transparent 36%),
      radial-gradient(circle at 92% 12%,rgba(74,115,81,.16),transparent 38%),
      linear-gradient(180deg,#eef5ea 0%,#f8f2e6 100%)!important;
  }
  .content:has(.chat-shell) .section-head{display:none!important;}

  .chat-shell{
    height:calc(100dvh - 132px)!important;
    min-height:620px!important;
    width:100%!important;
    max-width:1480px!important;
    margin:0 auto!important;
    display:grid!important;
    grid-template-columns:minmax(340px,392px) minmax(0,1fr)!important;
    gap:0!important;
    overflow:hidden!important;
    border-radius:30px!important;
    border:1px solid rgba(39,70,43,.16)!important;
    background:linear-gradient(135deg,#fffdf7 0%,#eef4e8 48%,#f3e9d8 100%)!important;
    box-shadow:0 26px 70px rgba(13,36,20,.18),0 2px 0 rgba(255,255,255,.78) inset!important;
  }

  .chat-list.cv-list{
    width:auto!important;
    flex:initial!important;
    min-width:0!important;
    height:100%!important;
    padding:18px 14px 16px!important;
    border:0!important;
    border-right:1px solid rgba(37,67,41,.13)!important;
    border-radius:30px 0 0 30px!important;
    background:linear-gradient(180deg,#fffaf0 0%,#edf4e7 100%)!important;
    box-shadow:inset -1px 0 0 rgba(255,255,255,.48)!important;
  }
  .cv-head{
    min-height:72px!important;
    padding:14px 12px 12px!important;
    margin:0 0 12px!important;
    border-radius:22px!important;
    background:linear-gradient(145deg,#244a2d 0%,#17341f 100%)!important;
    border:1px solid rgba(255,255,255,.12)!important;
    box-shadow:0 14px 28px rgba(21,52,29,.18)!important;
    position:relative!important;
  }
  .cv-head-label{
    color:#fff8e8!important;
    font-family:var(--font-display,Georgia,serif)!important;
    font-size:27px!important;
    font-weight:650!important;
    line-height:1!important;
    letter-spacing:-.035em!important;
    text-transform:none!important;
  }
  .cv-head::after{
    content:"Team conversations";
    position:absolute;
    left:13px;
    bottom:12px;
    font-size:11.5px;
    font-weight:800;
    letter-spacing:.02em;
    color:rgba(255,248,232,.62);
  }
  .cv-new{
    width:44px!important;height:44px!important;border-radius:16px!important;
    background:linear-gradient(180deg,#fffaf0,#e8ead7)!important;
    color:#173a24!important;border:1px solid rgba(255,255,255,.55)!important;
    box-shadow:0 8px 18px rgba(5,19,9,.24),inset 0 1px 0 rgba(255,255,255,.92)!important;
  }
  .cv-archive-filter{
    height:34px!important;
    border-radius:999px!important;
    padding:0 12px!important;
    background:rgba(255,255,255,.12)!important;
    color:#fff8e8!important;
    border:1px solid rgba(255,255,255,.14)!important;
    font-weight:900!important;
  }
  .cv-search{
    height:50px!important;
    margin:0 0 12px!important;
    padding:0 15px!important;
    border-radius:18px!important;
    background:#fffdf8!important;
    border:1px solid rgba(41,74,45,.14)!important;
    box-shadow:0 8px 18px rgba(18,40,22,.06),inset 0 1px 0 rgba(255,255,255,.9)!important;
  }
  .cv-search:focus-within{border-color:rgba(49,92,55,.42)!important;box-shadow:0 0 0 4px rgba(49,92,55,.12),0 8px 18px rgba(18,40,22,.06)!important;}
  .cv-search input{font-size:14.5px!important;font-weight:750!important;color:#17291b!important;}
  .cv-search-ic svg{width:18px!important;height:18px!important;stroke:#52715a!important;}
  .cv-threads{
    padding:0 2px 10px!important;
    gap:8px!important;
    scrollbar-width:thin;
    scrollbar-color:rgba(52,91,56,.28) transparent;
  }
  .cv-threads::-webkit-scrollbar{width:8px;}
  .cv-threads::-webkit-scrollbar-thumb{background:rgba(52,91,56,.25);border-radius:999px;}
  .cv-people-label{
    padding:10px 10px 4px!important;
    font-size:10.5px!important;
    color:#72806f!important;
    letter-spacing:.14em!important;
  }
  .cv-row{
    padding:13px 12px!important;
    border-radius:18px!important;
    gap:12px!important;
    border:1px solid transparent!important;
    background:rgba(255,253,248,.58)!important;
    box-shadow:0 7px 18px rgba(19,41,22,.045)!important;
    transition:background .12s ease,border-color .12s ease,transform .10s ease!important;
  }
  .cv-row:hover{background:#fffdf8!important;border-color:rgba(50,82,52,.14)!important;transform:translateY(-1px)!important;}
  .cv-row.active{
    background:linear-gradient(135deg,#e4efd9 0%,#fff5e5 100%)!important;
    border-color:rgba(50,95,56,.30)!important;
    box-shadow:0 12px 28px rgba(31,70,36,.12),inset 4px 0 0 #2f6b3e!important;
  }
  .cv-row.cv-unread{background:#fffef9!important;border-color:rgba(47,107,62,.18)!important;}
  .cv-av .avatar{
    width:46px!important;height:46px!important;border-radius:16px!important;
    font-size:14px!important;box-shadow:0 8px 18px rgba(21,43,24,.12)!important;
  }
  .cv-name{font-size:15.5px!important;font-weight:850!important;color:#17251a!important;}
  .cv-last{font-size:13px!important;line-height:1.28!important;color:#647063!important;max-width:100%!important;}
  .cv-time{font-size:11px!important;color:#8c9788!important;}
  .cv-pintag{border-radius:999px!important;padding:2px 8px!important;font-size:8.7px!important;}
  .cv-readtoggle{width:32px!important;min-width:32px!important;height:32px!important;box-shadow:none!important;}
  .cv-mini-action{width:30px!important;height:30px!important;border-radius:12px!important;}

  .chat-thread{
    height:100%!important;
    min-width:0!important;
    border:0!important;
    border-radius:0 30px 30px 0!important;
    background:linear-gradient(180deg,#f8fbf3 0%,#f2eadc 100%)!important;
    box-shadow:none!important;
    display:flex!important;
    flex-direction:column!important;
  }
  .chat-thread.empty-thread{
    display:grid!important;
    place-items:center!important;
    color:#546354!important;
    background:linear-gradient(145deg,#f8fbf3,#f2eadc)!important;
  }
  .chat-thread-head.ct-head,
  .chat-thread-head{
    display:flex!important;align-items:center!important;gap:13px!important;
    min-height:84px!important;
    padding:16px 22px!important;
    border-bottom:1px solid rgba(35,67,39,.11)!important;
    background:rgba(255,253,247,.82)!important;
    -webkit-backdrop-filter:blur(14px)!important;
    backdrop-filter:blur(14px)!important;
    color:#17251a!important;
  }
  .chat-thread-head .cth-back{display:grid!important;place-items:center!important;width:40px!important;height:40px!important;border-radius:13px!important;background:#fffaf0!important;border:1px solid rgba(41,74,45,.14)!important;color:#244d2d!important;flex-shrink:0!important;cursor:pointer!important}
  .chat-thread-head .avatar,
  .cth-card .avatar{
    width:52px!important;height:52px!important;border-radius:18px!important;
    box-shadow:0 10px 22px rgba(22,45,25,.13)!important;
  }
  .cth-card{
    display:flex!important;align-items:center!important;gap:13px!important;min-width:0!important;
    flex:1!important;text-align:left!important;border:0!important;background:transparent!important;color:inherit!important;padding:0!important;
  }
  .cth-info{display:flex!important;flex-direction:column!important;gap:3px!important;}
  .cth-name{font-size:20px!important;font-weight:900!important;color:#17251a!important;letter-spacing:-.02em!important;}
  .cth-sub{font-size:12.5px!important;font-weight:750!important;color:#667460!important;}
  .cth-act{
    width:42px!important;height:42px!important;border-radius:15px!important;
    background:#fffaf0!important;border:1px solid rgba(41,74,45,.14)!important;color:#244d2d!important;
  }
  .chat-scroll{
    flex:1 1 auto!important;min-height:0!important;
    padding:26px clamp(24px,3vw,42px)!important;
    gap:11px!important;
    background:
      linear-gradient(rgba(255,255,255,.34) 1px,transparent 1px),
      linear-gradient(90deg,rgba(255,255,255,.28) 1px,transparent 1px),
      radial-gradient(circle at 12% 10%,rgba(196,138,74,.10),transparent 30%),
      linear-gradient(180deg,#edf5e8 0%,#fbf4e8 100%)!important;
    background-size:28px 28px,28px 28px,auto,auto!important;
    overflow-y:auto!important;
  }
  .msg{max-width:76%!important;gap:10px!important;}
  .msg.mine{max-width:76%!important;}
  .msg-av{width:36px!important;}
  .msg-av .avatar{width:34px!important;height:34px!important;border-radius:13px!important;font-size:11px!important;}
  .bubble{
    max-width:min(680px,100%)!important;
    padding:12px 15px!important;
    border-radius:20px 20px 20px 7px!important;
    background:#fffdf8!important;
    border:1px solid rgba(40,67,43,.10)!important;
    box-shadow:0 12px 26px rgba(23,44,25,.08)!important;
  }
  .msg.mine .bubble{
    border-radius:20px 20px 7px 20px!important;
    background:linear-gradient(140deg,#315f3a 0%,#173d25 100%)!important;
    box-shadow:0 14px 30px rgba(20,58,29,.20)!important;
  }
  .b-author{font-size:11px!important;color:#a8643d!important;font-weight:950!important;margin-bottom:4px!important;}
  .b-text{font-size:14.8px!important;line-height:1.45!important;letter-spacing:-.01em!important;}
  .bubble time{font-size:10.5px!important;margin-top:6px!important;}
  .msg-status{font-size:11px!important;margin-top:5px!important;font-weight:850!important;}
  .typing-row{padding:4px 12px 12px!important;color:#526257!important;font-weight:750!important;}

  .chat-composer{
    flex:0 0 auto!important;
    align-items:flex-end!important;
    gap:10px!important;
    padding:16px 20px!important;
    border-top:1px solid rgba(35,67,39,.12)!important;
    background:linear-gradient(180deg,rgba(255,253,247,.92),#e7efe0)!important;
    box-shadow:0 -14px 32px rgba(17,38,21,.07)!important;
  }
  .chat-composer .cattach{
    width:46px!important;height:46px!important;border-radius:17px!important;
    background:#fffdf8!important;color:#21492b!important;border:1px solid rgba(37,70,43,.14)!important;
  }
  .chat-composer .chat-editbox,
  .chat-composer .input{
    min-height:46px!important;
    height:auto!important;
    max-height:120px!important;
    flex:1!important;
    display:flex!important;align-items:center!important;
    border-radius:18px!important;
    padding:12px 16px!important;
    background:#fffdf8!important;
    border:1px solid rgba(37,70,43,.17)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.85)!important;
    font-size:15px!important;
    line-height:1.35!important;
    color:#17251a!important;
    overflow-y:auto!important;
  }
  .chat-composer .chat-editbox:focus,
  .chat-composer .input:focus{outline:none!important;border-color:rgba(48,95,56,.44)!important;box-shadow:0 0 0 4px rgba(48,95,56,.11),inset 0 1px 0 rgba(255,255,255,.9)!important;}
  .chat-composer .csend{
    width:46px!important;height:46px!important;border-radius:17px!important;
    background:linear-gradient(140deg,#315f3a,#173d25)!important;
    box-shadow:0 12px 24px rgba(23,61,37,.25),inset 0 1px 0 rgba(255,255,255,.16)!important;
  }
}


/* ---- inline style 74 ---- */

/* Requested only: keep the existing STAFF bar design/colour, use first names, shrink the bar to the name length, and centre names vertically. */
@media (max-width:1023px){
  .roster-mobile .rcard .rc-meta,.home-roster-list .rcard .rc-meta,.rcard.is-emp .rc-meta{
    overflow:visible!important;text-overflow:clip!important;white-space:normal!important;line-height:1.22!important;
  }
  .roster-mobile .rcard .rc-meta.rc-meta-full,.home-roster-list .rcard .rc-meta.rc-meta-full,.rcard.is-emp .rc-meta.rc-meta-full{
    width:100%!important;max-width:100%!important;flex:0 0 100%!important;align-self:stretch!important;display:block!important;
  }
  .roster-mobile .rcard .rc-meta .rc-staff-line,.home-roster-list .rcard .rc-meta .rc-staff-line,.rcard.is-emp .rc-meta .rc-staff-line{
    display:inline-flex!important;grid-template-columns:unset!important;align-items:center!important;justify-content:flex-start!important;
    gap:7px!important;margin-top:5px!important;padding:3px 11px 3px 4px!important;border-radius:999px!important;
    background:#173b23!important;background:color-mix(in srgb,var(--deep,#163f24) 88%,#000 12%)!important;
    color:#fff!important;border:1px solid rgba(255,255,255,.20)!important;
    box-shadow:0 4px 12px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.16)!important;
    width:fit-content!important;min-width:0!important;max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  }
  .roster-mobile .rcard .rc-meta .rc-staff-line .rc-staff-kicker,.home-roster-list .rcard .rc-meta .rc-staff-line .rc-staff-kicker,.rcard.is-emp .rc-meta .rc-staff-line .rc-staff-kicker{
    display:inline-flex!important;align-items:center!important;justify-content:center!important;height:20px!important;padding:0 9px!important;border-radius:999px!important;
    background:#7fb56a!important;color:#10240f!important;font-size:9.4px!important;font-weight:900!important;letter-spacing:.09em!important;line-height:1!important;
    flex:0 0 auto!important;text-shadow:none!important;box-shadow:0 1px 2px rgba(0,0,0,.2)!important;
  }
  .roster-mobile .rcard .rc-meta .rc-staff-line .rc-staff-names,.home-roster-list .rcard .rc-meta .rc-staff-line .rc-staff-names,.rcard.is-emp .rc-meta .rc-staff-line .rc-staff-names{
    display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;
    width:auto!important;min-width:0!important;max-width:calc(100vw - 160px)!important;height:20px!important;padding:0!important;
    background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;color:#ffffff!important;font-weight:900!important;line-height:20px!important;
    white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;word-break:normal!important;flex:0 1 auto!important;
  }
}


/* ---- inline style 75 ---- */

/* WW_V198_STAFFBAR_SKINNY_FIRSTNAMES_START
   Requested only: make the existing employee-name STAFF bar skinny, keep the same colours/design, keep first names only, and keep the names centered vertically. */
@media (max-width:1023px){
  .roster-mobile .rcard .rc-meta,
  .home-roster-list .rcard .rc-meta,
  .rcard.is-emp .rc-meta{
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:normal!important;
    line-height:1.15!important;
  }
  .roster-mobile .rcard .rc-meta.rc-meta-full,
  .home-roster-list .rcard .rc-meta.rc-meta-full,
  .rcard.is-emp .rc-meta.rc-meta-full{
    width:auto!important;
    max-width:100%!important;
    flex:0 0 100%!important;
    align-self:stretch!important;
    display:block!important;
  }
  .roster-mobile .rcard .rc-meta .rc-staff-line,
  .home-roster-list .rcard .rc-meta .rc-staff-line,
  .rcard.is-emp .rc-meta .rc-staff-line{
    display:inline-flex!important;
    grid-template-columns:unset!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:6px!important;
    margin-top:4px!important;
    padding:2px 8px 2px 3px!important;
    min-height:22px!important;
    height:22px!important;
    border-radius:999px!important;
    background:#173b23!important;
    background:color-mix(in srgb,var(--deep,#163f24) 88%,#000 12%)!important;
    color:#fff!important;
    border:1px solid rgba(255,255,255,.20)!important;
    box-shadow:0 4px 12px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.16)!important;
    width:fit-content!important;
    min-width:0!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    box-sizing:border-box!important;
  }
  .roster-mobile .rcard .rc-meta .rc-staff-line .rc-staff-kicker,
  .home-roster-list .rcard .rc-meta .rc-staff-line .rc-staff-kicker,
  .rcard.is-emp .rc-meta .rc-staff-line .rc-staff-kicker{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    height:17px!important;
    min-height:17px!important;
    padding:0 8px!important;
    border-radius:999px!important;
    background:#7fb56a!important;
    color:#10240f!important;
    font-size:8.7px!important;
    font-weight:900!important;
    letter-spacing:.09em!important;
    line-height:17px!important;
    flex:0 0 auto!important;
    text-shadow:none!important;
    box-shadow:0 1px 2px rgba(0,0,0,.2)!important;
    box-sizing:border-box!important;
  }
  .roster-mobile .rcard .rc-meta .rc-staff-line .rc-staff-names,
  .home-roster-list .rcard .rc-meta .rc-staff-line .rc-staff-names,
  .rcard.is-emp .rc-meta .rc-staff-line .rc-staff-names{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    width:auto!important;
    min-width:0!important;
    max-width:calc(100vw - 160px)!important;
    height:17px!important;
    min-height:17px!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    border-radius:0!important;
    color:#ffffff!important;
    font-size:12.5px!important;
    font-weight:900!important;
    line-height:17px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    word-break:normal!important;
    flex:0 1 auto!important;
    box-sizing:border-box!important;
  }
  .rgc-staff{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:6px!important;
    margin-top:4px!important;
    padding:2px 8px 2px 3px!important;
    min-height:22px!important;
    height:22px!important;
    width:fit-content!important;
    max-width:100%!important;
    border-radius:999px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }
  .rgc-staff-kicker{height:17px!important;min-height:17px!important;padding:0 8px!important;font-size:8.7px!important;line-height:17px!important;box-sizing:border-box!important;}
  .rgc-staff-names{display:inline-flex!important;align-items:center!important;height:17px!important;line-height:17px!important;font-size:12.5px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
}
/* WW_V198_STAFFBAR_SKINNY_FIRSTNAMES_END */


/* ---- inline style 76 ---- */

/* V199 final override — only align the roster week stats/date and remove laggy motion. */
@media (max-width:1023px){
  .rst-hero.admin,.rst-hero.staff{contain:layout paint!important;transform:translateZ(0)!important;backface-visibility:hidden!important;}
  .rst-hero-top{display:grid!important;grid-template-columns:38px minmax(0,1fr) 38px!important;align-items:center!important;gap:8px!important;min-height:38px!important;}
  .rst-hero-label{min-width:0!important;width:100%!important;max-width:100%!important;text-align:center!important;overflow:hidden!important;padding:0 2px!important;}
  .rst-eyebrow{display:block!important;line-height:1!important;margin:0 0 3px!important;}
  .rst-hero-label strong{display:block!important;max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-align:center!important;line-height:1.04!important;font-size:clamp(16px,4.7vw,19px)!important;}
  .rst-nav{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;justify-self:center!important;align-self:center!important;}
  .rst-hero-foot,
  .rst-hero.admin .rst-hero-foot,
  .rst-hero.staff .rst-hero-foot{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:stretch!important;gap:8px!important;margin-top:9px!important;width:100%!important;max-width:100%!important;}
  .rst-hero.admin .rst-hs,.rst-hero.staff .rst-hs{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;width:100%!important;min-width:0!important;max-width:100%!important;height:42px!important;min-height:42px!important;padding:0 5px!important;margin:0!important;border-radius:13px!important;border:1px solid rgba(255,255,255,.11)!important;background:rgba(255,255,255,.075)!important;box-sizing:border-box!important;position:relative!important;}
  .rst-hero.admin .rst-hs:first-of-type,.rst-hero.staff .rst-hs:first-of-type,.rst-hero.admin .rst-hs:nth-of-type(2),.rst-hero.staff .rst-hs:nth-of-type(2){border-radius:13px!important;border:1px solid rgba(255,255,255,.11)!important;}
  .rst-hero.admin .rst-hs:nth-of-type(2)::before,.rst-hero.staff .rst-hs:nth-of-type(2)::before{content:none!important;display:none!important;}
  .rst-hs strong{display:block!important;width:100%!important;text-align:center!important;line-height:1!important;font-size:18px!important;margin:0!important;font-variant-numeric:tabular-nums!important;}
  .rst-hs em{display:block!important;width:100%!important;text-align:center!important;line-height:1!important;margin:2px 0 0!important;font-size:8px!important;letter-spacing:.07em!important;}
  .rst-hero.admin .rst-hero-add,.rst-hero.staff .rst-hero-add{grid-column:1 / -1!important;width:100%!important;min-width:0!important;max-width:100%!important;height:40px!important;min-height:40px!important;margin:0!important;display:flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;}
}
@media (max-width:390px){
  .rst-hero-top{grid-template-columns:34px minmax(0,1fr) 34px!important;gap:7px!important;}
  .rst-nav{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;}
  .rst-hero-label strong{font-size:clamp(15px,4.45vw,17px)!important;}
  .rst-hero-foot,.rst-hero.admin .rst-hero-foot,.rst-hero.staff .rst-hero-foot{gap:7px!important;}
  .rst-hero.admin .rst-hs,.rst-hero.staff .rst-hs{height:40px!important;min-height:40px!important;}
  .rst-hs strong{font-size:16.5px!important;}
  .rst-hs em{font-size:7.4px!important;}
  .rst-hero.admin .rst-hero-add,.rst-hero.staff .rst-hero-add{height:39px!important;min-height:39px!important;}
}
.login-root,.login-stage,.login-card,.login-root::before,.login-root::after,.login-stage::before,.login-stage::after{animation:none!important;transition:none!important;will-change:auto!important;backface-visibility:hidden!important;-webkit-backface-visibility:hidden!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;}
.login-root{min-height:100dvh!important;overflow:hidden!important;contain:layout paint!important;transform:translateZ(0)!important;}
.login-stage,.login-card{transform:none!important;}
@media (max-width:1023px){
  html,body,#app{scroll-behavior:auto!important;overscroll-behavior:none!important;}
  .page,.content,.card,.panel,.rcard,.rgc,.modal,.modal-card,.mobile-nav,.topbar,.login-card,.login-stage,.btn,.icon-btn,button,[data-action]{animation:none!important;transition:none!important;will-change:auto!important;}
  .content,.modal-body,.chat-scroll,.cv-threads{-webkit-overflow-scrolling:touch!important;scroll-behavior:auto!important;overscroll-behavior:contain!important;}
}


/* ---- inline style 77 ---- */

html,body,#app{width:100%;min-height:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;}
.login-root{position:fixed!important;inset:0!important;z-index:9999!important;width:100vw!important;height:100dvh!important;min-height:100svh!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-y:contain!important;contain:none!important;transform:none!important;padding:calc(18px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom))!important;display:flex!important;align-items:center!important;justify-content:center!important;background:radial-gradient(110% 70% at 50% -12%,#3b6f49 0%,rgba(59,111,73,0) 58%),linear-gradient(160deg,#1c3924 0%,#102417 58%,#09130d 100%)!important;}
.login-root::before{content:""!important;position:fixed!important;inset:0!important;pointer-events:none!important;background:radial-gradient(420px 280px at 14% 8%,rgba(255,255,255,.08),transparent 60%),radial-gradient(420px 320px at 95% 92%,rgba(201,151,91,.12),transparent 62%)!important;z-index:0!important;}
.login-root::after{content:none!important;display:none!important}.login-stage::before,.login-stage::after{content:none!important;display:none!important}.login-stage{position:relative!important;z-index:1!important;width:100%!important;max-width:420px!important;min-height:auto!important;margin:auto!important;padding:0!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:center!important;gap:14px!important;background:transparent!important;box-shadow:none!important;animation:none!important;transform:none!important;contain:none!important}.login-card{width:100%!important;max-width:420px!important;margin:0 auto!important;box-sizing:border-box!important;border-radius:24px!important;padding:26px 22px 22px!important;background:#fffdf7!important;border:1px solid rgba(48,78,50,.13)!important;box-shadow:0 26px 70px -38px rgba(0,0,0,.66),0 10px 28px -20px rgba(25,44,29,.35)!important;transform:none!important;animation:none!important;contain:none!important}.lc-logo{width:60px!important;height:60px!important;border-radius:0!important;margin:0 auto 15px!important;background:transparent!important;border:0!important;outline:0!important;box-shadow:none!important;overflow:visible!important;padding:0!important}.lc-head{text-align:center!important;margin:0 0 18px!important}.lc-head h2{font-size:27px!important;line-height:1.08!important;margin:0!important;color:#142118!important;font-weight:820!important;letter-spacing:-.035em!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif!important}.lc-head h2::after,.lc-head p::after{content:none!important;display:none!important}.lc-head p{font-size:clamp(8.5px,2.7vw,11.5px)!important;line-height:1.3!important;margin:8px auto 0!important;max-width:none!important;width:100%!important;white-space:nowrap!important;letter-spacing:-.02em!important;color:#637062!important;font-weight:500!important}.login-card .input{font-size:16px!important}.login-card .pw-eye,.pw-eye{display:grid!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}.login-card .pw-wrap .input,.login-card input[type="password"].input{padding-right:52px!important}.login-foot{position:relative!important;left:auto!important;bottom:auto!important;margin:0 auto!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;color:rgba(255,253,244,.74)!important;font-size:11px!important;line-height:1.2!important;font-weight:720!important;z-index:1!important}.install-prompt-card{display:none!important}@media(max-width:360px){.login-root{padding-left:12px!important;padding-right:12px!important;align-items:flex-start!important}.login-card{padding:22px 17px 18px!important;border-radius:21px!important}.lc-logo{width:54px!important;height:54px!important}.lc-head h2{font-size:24px!important}}@media(max-height:640px){.login-root{align-items:flex-start!important}.login-card{padding-top:20px!important;padding-bottom:18px!important}.lc-logo{width:50px!important;height:50px!important;margin-bottom:10px!important}.lc-head{margin-bottom:14px!important}.lc-help{margin-top:11px!important}}@media(min-width:880px){.login-root{display:grid!important;grid-template-columns:minmax(300px,42vw) minmax(0,1fr)!important;align-items:stretch!important;justify-content:stretch!important;padding:0!important;background:radial-gradient(900px 620px at 105% 5%,rgba(74,115,81,.12),transparent 58%),radial-gradient(780px 560px at 72% 95%,rgba(201,178,136,.16),transparent 62%),linear-gradient(120deg,#e7eddf 0%,#f4f2e8 58%,#fbfaf4 100%)!important;overflow:hidden!important}.login-root::before{content:""!important;position:absolute!important;left:0!important;top:0!important;bottom:0!important;width:min(46vw,680px)!important;background:radial-gradient(520px 420px at 18% 12%,rgba(255,255,255,.13),transparent 63%),radial-gradient(560px 480px at 10% 92%,rgba(188,133,80,.16),transparent 64%),linear-gradient(145deg,#386e48 0%,#214d33 48%,#0d2b1c 100%)!important;clip-path:ellipse(100% 92% at 0% 50%)!important;z-index:0!important;box-shadow:52px 0 95px rgba(24,63,39,.14)!important}.login-root::after{content:"Westwondersandco\AWorkforce"!important;white-space:pre-line!important;display:block!important;position:absolute!important;left:clamp(34px,5vw,82px)!important;top:45%!important;transform:translateY(-50%)!important;width:min(340px,29vw)!important;color:#fffdf4!important;z-index:2!important;font-size:clamp(27px,2.6vw,44px)!important;line-height:1.05!important;font-weight:880!important;letter-spacing:-.05em!important;text-shadow:0 14px 34px rgba(0,0,0,.28)!important;pointer-events:none!important}.login-stage{grid-column:2!important;min-height:100dvh!important;max-width:none!important;width:100%!important;padding:clamp(36px,6vh,78px) clamp(32px,7vw,132px)!important;align-items:center!important;justify-content:center!important;background:transparent!important}.login-stage::after{content:"Everything your team needs for roster, clocking, messages and updates."!important;display:block!important;position:fixed!important;left:clamp(34px,5vw,82px)!important;top:calc(45% + 108px)!important;width:min(340px,29vw)!important;color:rgba(255,253,244,.88)!important;font-size:clamp(13px,1.05vw,17px)!important;line-height:1.55!important;font-weight:560!important;letter-spacing:-.01em!important;text-shadow:0 14px 34px rgba(0,0,0,.28)!important;pointer-events:none!important}.login-card{width:min(420px,100%)!important;margin:0 auto!important;padding:34px 34px 28px!important;border-radius:26px!important}.lc-logo{width:52px!important;height:52px!important;margin:0 0 18px!important;border-radius:16px!important}.lc-head{text-align:left!important;margin-bottom:24px!important}.lc-head h2{font-size:0!important}.lc-head h2::after{content:"Sign in"!important;display:block!important;color:#132118!important;font-size:32px!important;line-height:1.05!important;font-weight:820!important;letter-spacing:-.04em!important}.lc-head p{font-size:0!important;margin:10px 0 0!important}.lc-head p::after{content:"Access your roster, messages, clocking and team updates."!important;display:block!important;max-width:310px!important;color:#647065!important;font-size:14px!important;line-height:1.48!important;font-weight:500!important}.lc-help{text-align:left!important}.login-foot{position:fixed!important;left:clamp(34px,5vw,82px)!important;bottom:clamp(30px,5vh,62px)!important;margin:0!important;justify-content:flex-start!important}}@media(min-width:880px) and (max-width:1040px){.login-root{grid-template-columns:minmax(280px,38vw) minmax(0,1fr)!important}.login-stage{padding-left:34px!important;padding-right:34px!important}.login-root::after{font-size:clamp(24px,2.8vw,34px)!important;width:260px!important}.login-stage::after{width:250px!important}}

/* WW_V240_DASHBOARD_REDESIGN_START */
/* ---------- Hero: richer texture, confident type, icon-coded stats ---------- */
.hm-hero,.hm-hero.admin,.hm-hero.staff{
  border-radius:24px!important;
  padding:22px 20px 20px!important;
  box-shadow:0 26px 54px -26px rgba(10,26,15,.60), 0 8px 18px -8px rgba(10,26,15,.34)!important;
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(201,151,91,.16), transparent 50%),
    radial-gradient(140% 100% at 0% -10%, rgba(255,255,255,.10), transparent 55%),
    linear-gradient(160deg,#2f6140 0%,#1c3c26 55%,#0f2417 100%)!important;
  position:relative!important;
  overflow:hidden!important;
}
.hm-hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg, transparent 40%, rgba(255,255,255,.05) 48%, transparent 56%);
}
.hm-eyebrow{font-size:11px!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:#c9975b!important;font-weight:800!important}
.hm-hero-copy h1{font-size:25px!important;letter-spacing:-.02em!important;margin:3px 0 4px!important}
.hm-hero-add{
  border-radius:12px!important;font-weight:800!important;
  box-shadow:0 8px 18px -8px rgba(0,0,0,.4)!important;
  background:#fff!important;color:#173a26!important;
}
.hm-hero-stats{gap:8px!important;margin-top:17px!important;position:relative!important}
.hm-hs{
  background:rgba(255,255,255,.08)!important;
  border:1px solid rgba(255,255,255,.15)!important;
  border-radius:14px!important;
  padding:11px 8px 10px!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
  display:flex!important; flex-direction:column!important; gap:2px!important;
  position:relative!important;
}
.hm-hs strong{font-size:21px!important;line-height:1.05!important;font-weight:900!important;letter-spacing:-.025em!important;font-variant-numeric:tabular-nums!important;color:#fff!important}
.hm-hs em{font-size:9.5px!important;font-style:normal!important;font-weight:800!important;text-transform:uppercase!important;letter-spacing:.06em!important;color:rgba(255,255,255,.72)!important}
.hm-hs.alert{background:linear-gradient(160deg,rgba(224,166,74,.30),rgba(200,120,40,.20))!important;border-color:rgba(224,166,74,.45)!important}
.hm-hs.alert strong{color:#ffdf9e!important}
.hm-hs.alert em{color:rgba(255,223,158,.85)!important}

/* ---------- Pending approvals: warm amber "needs attention" card ---------- */
.approvals-panel{
  border-radius:18px!important;
  border:1px solid rgba(180,118,58,.22)!important;
  box-shadow:0 16px 34px -22px rgba(120,80,20,.40)!important;
  overflow:hidden!important;
  background:linear-gradient(155deg,#fff8ec 0%,#fdf1dc 100%)!important;
}
.approvals-summary{padding:16px 17px!important;gap:13px!important}
.appr-bell{
  width:40px!important;height:40px!important;border-radius:12px!important;
  background:linear-gradient(155deg,#e0a64a,#c2761f)!important;color:#fff!important;
  box-shadow:0 8px 16px -8px rgba(180,118,58,.55)!important;
}
.appr-sum-txt strong{font-size:15px!important;font-weight:850!important;letter-spacing:-.01em!important;color:#5c3c0d!important}
.appr-sum-txt span{font-size:12.5px!important;color:#a06f1c!important;font-weight:650!important}
.appr-count{
  font-weight:900!important; font-size:13px!important;
  background:linear-gradient(155deg,#e0a64a,#c2761f)!important;color:#fff!important;
  box-shadow:0 5px 12px -4px rgba(180,118,58,.55)!important;
}

/* ---------- Important updates: coral accent, clearer unread signal ---------- */
.important-updates-panel{
  border-radius:18px!important;
  box-shadow:0 16px 34px -22px rgba(160,50,30,.32)!important;
  border:1px solid rgba(200,70,45,.14)!important;
}
.important-updates-panel .section-head h2{font-size:15px!important;font-weight:850!important;letter-spacing:-.01em!important;color:#7a2a1a!important}
.important-updates-panel .count{font-weight:900!important;background:linear-gradient(155deg,#e2604a,#c23f28)!important;color:#fff!important;box-shadow:0 4px 10px -4px rgba(194,63,40,.5)!important}
.important-updates-panel .upd-item{border-radius:14px!important}
.important-updates-panel .upd-item.unread{background:linear-gradient(155deg,#fff5f1,#fdece5)!important}
.important-updates-panel .upd-title{font-weight:800!important;letter-spacing:-.005em!important}
.important-updates-panel .upd-new{background:linear-gradient(155deg,#e2604a,#c23f28)!important;color:#fff!important;font-weight:850!important;border-radius:999px!important}
.important-updates-panel .upd-pin{background:#f4e2c3!important;color:#7a5210!important;font-weight:850!important;border-radius:999px!important}

/* ---------- Bookings & Availability: distinct icon accent colors ---------- */
.hm-bookings,.hm-avail{
  border-radius:16px!important;
  box-shadow:0 14px 30px -22px rgba(20,40,25,.36)!important;
  border:1px solid rgba(30,60,40,.08)!important;
}
.hm-bookings-ic{
  background:linear-gradient(155deg,#2f6140,#173a26)!important;
  box-shadow:0 8px 16px -8px rgba(23,58,38,.5)!important;
}
.hm-avail-ic{
  background:linear-gradient(155deg,#c9975b,#a06a34)!important;color:#fff!important;
  box-shadow:0 8px 16px -8px rgba(160,106,52,.5)!important;
}
.hm-bookings-txt strong,.hm-avail-txt strong{font-size:14.5px!important;font-weight:850!important;letter-spacing:-.01em!important}
.hm-bookings-txt span,.hm-avail-txt span{font-weight:650!important}
/* Directory hub card — forest green so it reads distinctly from Availability */
.hm-directory .hm-avail-ic{
  background:linear-gradient(155deg,#4a8a52,#26512e)!important;color:#fff!important;
  box-shadow:0 8px 16px -8px rgba(38,81,46,.5)!important;
}
/* WW_V240_DASHBOARD_REDESIGN_END */

/* WW_V242_ROSTER_DAYCARDS_START */
.rst-day,.rst-days-admin .rst-day{
  border-radius:15px!important;
  background:#fff!important;
  border:1px solid rgba(30,60,40,.09)!important;
  box-shadow:0 8px 18px -14px rgba(20,40,25,.30)!important;
  transition:transform .1s ease,box-shadow .1s ease!important;
}
.rst-day:active,.rst-days-admin .rst-day:active{transform:scale(.96)!important}
.rst-day.today,.rst-days-admin .rst-day.today{
  box-shadow:0 0 0 1.5px #2f6b3e inset, 0 8px 18px -14px rgba(20,40,25,.30)!important;
}
.rst-day.today .rd-dow,.rst-days-admin .rst-day.today .rd-dow{color:#2f6b3e!important;font-weight:850!important}
.rst-day.sel,.rst-days-admin .rst-day.sel{
  background:linear-gradient(165deg,#3f8a52 0%,#25573a 100%)!important;
  border-color:transparent!important;
  box-shadow:0 12px 26px -14px rgba(37,87,58,.55)!important;
}
.rd-dow{font-weight:750!important;letter-spacing:.03em!important;color:#7a8a7d!important}
.rd-num{font-weight:850!important;letter-spacing:-.02em!important}
.rst-day.sel .rd-num,.rst-days-admin .rst-day.sel .rd-num{color:#fff!important}
.rst-days-admin .rd-stats,.rd-stats{
  border-radius:999px!important;
  background:#f3ede0!important;
  border:1px solid rgba(151,108,70,.14)!important;
  box-shadow:0 2px 5px -2px rgba(80,48,24,.14)!important;
}
.rst-days-admin .rd-stats b,.rd-stats b{
  background:#c9975b!important;color:#fff!important;font-weight:850!important;
}
.rst-days-admin .rd-stats.empty,.rd-stats.empty{background:#f1eee7!important;opacity:.75!important}
.rst-days-admin .rst-day.sel .rd-stats,.rst-day.sel .rd-stats{
  background:rgba(255,255,255,.20)!important;border-color:rgba(255,255,255,.22)!important;
}
.rst-days-admin .rst-day.sel .rd-stats b,.rst-day.sel .rd-stats b{background:#fff!important;color:#25573a!important}
.rst-days-admin .rst-day.sel .rd-stats em,.rst-day.sel .rd-stats em{color:rgba(255,255,255,.92)!important}
/* The complete layout for this pill (display/height/padding/etc.) only ever
   existed inside a mobile-only media query — desktop never had it, so the
   badge rendered as unstyled default inline text instead of a compact pill. */
@media(min-width:1024px){
  .rst-days-admin .rd-stats,.rd-stats{
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    gap:3px!important;min-width:37px!important;height:17px!important;padding:0 5px!important;
    line-height:1!important;white-space:nowrap!important;
  }
  .rst-days-admin .rd-stats b,.rd-stats b{
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    min-width:12px!important;height:12px!important;border-radius:999px!important;
    font-size:8px!important;line-height:12px!important;
  }
  .rst-days-admin .rd-stats em,.rd-stats em{
    font-style:normal!important;font-size:8.5px!important;letter-spacing:-.02em!important;
    font-variant-numeric:tabular-nums!important;
  }
}
/* Search bar: match the card language instead of a flat default input */
.rwg-search{
  border-radius:15px!important;
  border:1px solid rgba(30,60,40,.10)!important;
  box-shadow:0 8px 18px -14px rgba(20,40,25,.24)!important;
  background:#fff!important;
}
/* WW_V242_ROSTER_DAYCARDS_END */

/* WW_V244_SHIFT_MODAL_FIXES_START */
.shift-colour-current-wrap{display:inline-flex!important;align-items:center!important;gap:6px!important}
.shift-colour-dot{width:12px!important;height:12px!important;border-radius:999px!important;flex-shrink:0!important;box-shadow:0 0 0 2px rgba(0,0,0,.06)!important;display:inline-block!important}
/* The top button is a toggle, not a text input — style it clearly as one
   (no magnifying-glass icon pretending to be a search box) so it doesn't
   read as a second, redundant search field alongside the real one inside
   the dropdown. */
.emp-searchbar{gap:8px!important}
.emp-searchbar svg{opacity:.55!important;width:16px!important;height:16px!important}
/* WW_V244_SHIFT_MODAL_FIXES_END */

/* WW_V245_SHIFT_CARD_POP_START */
/* An earlier mobile-only rule flattened every shift card's shadow to almost
   nothing (0 2px 6px at 8% opacity) for performance reasons. Restoring real
   depth here, richer than before, using each card's own theme colour so the
   glow actually matches the card. */
.rcard{
  border-radius:16px!important;
  box-shadow:
    0 16px 32px -14px color-mix(in srgb,var(--deep,#1c3a26) 62%,transparent),
    0 5px 12px -4px color-mix(in srgb,var(--deep,#1c3a26) 38%,transparent),
    inset 0 1px 0 rgba(255,255,255,.16)
    !important;
  transition:transform .12s ease, box-shadow .12s ease!important;
}
.rcard:active{transform:scale(.98)!important}
@media(hover:hover){
  .rcard:hover{
    transform:translateY(-2px)!important;
    box-shadow:
      0 20px 38px -14px color-mix(in srgb,var(--deep,#1c3a26) 68%,transparent),
      0 6px 14px -4px color-mix(in srgb,var(--deep,#1c3a26) 42%,transparent),
      inset 0 1px 0 rgba(255,255,255,.18)
      !important;
  }
}
.rc-badge{
  box-shadow:0 6px 14px -4px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.35)!important;
}
.rc-info h3{
  box-shadow:0 3px 8px -3px rgba(0,0,0,.22)!important;
}
/* WW_V245_SHIFT_CARD_POP_END */

/* WW_V248_DESKTOP_ROSTER_GRID_START */
@media (min-width:1024px){
  /* Real depth instead of a near-invisible 1px shadow, matching the mobile card redesign */
  .rwg-cell .rgc{
    box-shadow:
      0 10px 22px -12px color-mix(in srgb,var(--accent) 55%,transparent),
      0 3px 8px -3px color-mix(in srgb,var(--accent) 30%,transparent)
      !important;
    transition:transform .12s ease, box-shadow .12s ease!important;
  }
  .rwg-cell .rgc:hover{
    transform:translateY(-2px)!important;
    box-shadow:
      0 14px 28px -12px color-mix(in srgb,var(--accent) 62%,transparent),
      0 4px 10px -3px color-mix(in srgb,var(--accent) 36%,transparent)
      !important;
  }
  /* Bigger, easier to read at a glance */
  .rwg-cell .rgc-time{font-size:12.5px!important;height:23px!important;padding:0 10px!important}
  .rwg-cell .rgc-dur{font-size:10.5px!important;height:23px!important}
  .rwg-cell .rgc-client{font-size:14.5px!important}
  /* Reverted: action buttons back to their original hover-to-reveal behavior
     — the person specifically likes that collapse/reopen interaction, so
     this is intentionally back to how it was before v248. */
  .rwg-cell .rgc-tool{
    width:26px!important;height:24px!important;
  }
}
/* WW_V248_DESKTOP_ROSTER_GRID_END */

/* WW_V250_DESKTOP_ROSTER_DEDUPE_START */
/* The day-picker strip (Mon/Tue/Wed pills) only exists to drive the mobile
   single-day list, which isn't shown on desktop at all — the desktop grid
   already has its own sticky header with the same date + hours info. Showing
   both was pure visual duplication with no functional purpose on desktop. */
@media(min-width:1024px){
  .rst-days{display:none!important}
}
/* WW_V250_DESKTOP_ROSTER_DEDUPE_END */

/* WW_V253_TIMESHEET_MODAL_READABILITY_START */
/* Field labels here were shrunk to 11px across several past sessions —
   genuinely too small to read comfortably. Also giving fields more breathing
   room and a touch more contrast/weight on the header date line. */
.timesheet-modal .field label{
  font-size:13px!important;font-weight:800!important;color:#233329!important;
  letter-spacing:-.005em!important;margin-bottom:5px!important;display:block!important;
}
.timesheet-modal .field{margin-bottom:14px!important}
.timesheet-modal .row2{gap:10px!important}
.timesheet-modal .input,.timesheet-modal select.input,.timesheet-modal textarea.input{
  font-size:15.5px!important;padding:12px 14px!important;border-radius:12px!important;
  border:1px solid rgba(35,51,41,.16)!important;
}
.te-sub{font-size:13px!important;color:rgba(255,255,255,.85)!important;font-weight:650!important}
.te-client{font-size:20px!important;letter-spacing:-.01em!important}
.te-status{font-size:12.5px!important;font-weight:800!important;padding:5px 12px!important}
/* WW_V253_TIMESHEET_MODAL_READABILITY_END */

/* WW_V254_PICKER_REDESIGN_START */
/* Bigger, more legible search box for both client and employee pickers
   (they share .client-search-box now that the employee picker was
   consolidated to match the client picker's single-box pattern). */
.client-search-box{
  height:52px!important;padding:0 14px!important;border-radius:14px!important;
}
.client-search-box input{font-size:16px!important;font-weight:750!important}
/* The dropdown list was capped at a tiny 140px on mobile — barely 2-3 rows
   before needing to scroll. Opening it up so far more is visible at once. */
@media(max-width:1023px){
  .client-search-panel .client-picker{max-height:420px!important}
}
.smart-picker.employee-picker{max-height:460px!important;overflow:auto!important;border:1px solid rgba(60,80,60,.14)!important;border-radius:14px!important;padding:5px!important;margin-top:8px!important}
.emp-selected-summary{
  margin-top:6px;padding:8px 12px;border-radius:11px;background:#eef3e7;
  color:#2f4f33;font-size:13px;font-weight:700;line-height:1.35;
}
/* The checkbox-to-name gap: .picker-row used `display:grid` with no explicit
   grid-template-columns, which is under-specified and let the two children
   land much further apart than intended in some contexts. Flex with an
   explicit small gap removes the ambiguity entirely. */
.picker-row{
  display:flex!important;align-items:center!important;gap:10px!important;
}
.employee-picker.simple-list .picker-row{gap:9px!important}
.pick-check{flex-shrink:0!important}
.simple-emp-text{flex:1!important;min-width:0!important;text-align:left!important;justify-items:start!important;align-items:start!important}
.simple-emp-text strong,.simple-emp-text em{text-align:left!important;justify-self:start!important;width:100%}
.employee-picker.simple-list .picker-row{justify-content:flex-start!important;text-align:left!important}
/* WW_V254_PICKER_REDESIGN_END */

/* WW_V255_TIMESHEET_CLIENT_PICKER_START */
/* This modal uses a separate, older client-picker component (.ts-client-*)
   from the one already fixed for the shift modal — same shrunk-text problem,
   different component, so the earlier fix never reached it. */
.ts-client-selected{padding:12px 14px!important;border-radius:14px!important}
.ts-client-selected strong{font-size:15px!important;font-weight:800!important}
.ts-client-selected span{font-size:12.5px!important}
.ts-client-search{height:50px!important;border-radius:13px!important}
.ts-client-search input{font-size:16px!important}
.ts-client-results{max-height:280px!important;border-radius:14px!important}
.ts-client-row strong{font-size:14px!important}
.ts-client-row small{font-size:11.5px!important}
.ts-add-client-toggle{height:44px!important;border-radius:12px!important;font-size:13.5px!important;font-weight:750!important}
/* The pink "Rostered / Actual / Variance" banner — genuinely tiny at 10.8px */
.variance{
  font-size:13px!important;font-weight:750!important;line-height:1.4!important;
  padding:9px 12px!important;border-radius:12px!important;display:block!important;
}
/* WW_V255_TIMESHEET_CLIENT_PICKER_END */

/* WW_V257_DESKTOP_ROSTER_COMPACT_HEADER_START */
/* The "Team Roster" hero + search box were eating ~370px of vertical space
   before the actual grid even started (out of a typical 900px viewport) —
   nearly 40%. Collapsing the hero from a tall 3-row stack into one slim row,
   and reclaiming that space for the grid, which is what actually matters on
   this screen. */
@media (min-width:1024px){
  .rst-hero.admin,.rst-hero.staff{
    display:flex!important;flex-direction:row!important;align-items:center!important;
    gap:20px!important;padding:12px 20px!important;min-height:0!important;
    border-radius:16px!important;margin-bottom:8px!important;
  }
  .rst-hero-top{
    display:flex!important;align-items:center!important;gap:10px!important;
    flex:0 0 auto!important;
  }
  .rst-hero-label{text-align:left!important}
  .rst-eyebrow{font-size:9.5px!important;opacity:.7!important}
  .rst-hero-label strong{font-size:16px!important;white-space:nowrap!important}
  .rst-nav{width:30px!important;height:30px!important}
  .rst-hero.admin .rst-hero-foot,.rst-hero.staff .rst-hero-foot{
    display:flex!important;align-items:center!important;gap:12px!important;
    margin-top:0!important;flex:1!important;justify-content:flex-end!important;
    flex-wrap:nowrap!important;grid-template-columns:none!important;width:auto!important;max-width:none!important;
  }
  .rst-hero.admin .rst-hs,.rst-hero.staff .rst-hs{
    flex:0 0 auto!important;display:flex!important;flex-direction:row!important;
    align-items:baseline!important;gap:5px!important;
    background:rgba(255,255,255,.12)!important;padding:6px 13px!important;
    border-radius:10px!important;min-height:0!important;height:auto!important;
  }
  .rst-hero.admin .rst-hs strong,.rst-hero.staff .rst-hs strong{font-size:15px!important;line-height:1!important}
  .rst-hero.admin .rst-hs em,.rst-hero.staff .rst-hs em{font-size:9.5px!important;margin-top:0!important;line-height:1!important}
  .rst-hero.admin .rst-hero-add,.rst-hero.staff .rst-hero-add{
    flex:0 0 auto!important;order:0!important;width:auto!important;
    height:38px!important;padding:0 16px!important;font-size:13px!important;
    min-height:0!important;white-space:nowrap!important;
  }
  /* Search box + grid: tighten the gaps between them and reclaim the freed
     space for the actual roster grid below. */
  .rwg-search-top{margin-top:0!important;margin-bottom:8px!important}
  .rwg-wrap{max-height:calc(100dvh - 150px)!important}
}
/* WW_V257_DESKTOP_ROSTER_COMPACT_HEADER_END */


/* WW_V260_GEOFENCE_START */
.geo-badge{
  display:flex;align-items:center;gap:7px;
  font-size:12.5px;font-weight:800;
  padding:8px 12px;border-radius:11px;margin:2px 0 8px;
}
.geo-badge svg{width:15px;height:15px;flex:0 0 15px}
.geo-badge.ok{background:#e4f3e4;color:#1f6d33;border:1px solid rgba(31,109,51,.18)}
.geo-badge.neutral{background:#eef2f7;color:#3a4a5c;border:1px solid rgba(58,74,92,.16)}
.geo-badge.warn{background:#fcefe4;color:#a5561f;border:1px solid rgba(165,86,31,.2)}
/* WW_V260_GEOFENCE_END */

/* WW_V261_PROOF_PHOTOS_START */
/* Clock-out capture */
.proof-photos{display:flex;flex-wrap:wrap;gap:9px;margin-top:2px}
.proof-add{
  width:76px;height:76px;border-radius:13px;border:1.5px dashed rgba(60,80,60,.35);
  background:#f5f8f2;color:#3c5e4a;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  font-size:10.5px;font-weight:700;
}
.proof-add svg{width:20px;height:20px}
.proof-thumb{position:relative;width:76px;height:76px;border-radius:13px;overflow:hidden}
.proof-thumb img{width:100%;height:100%;object-fit:cover}
.proof-thumb-x{
  position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:50%;
  border:0;background:rgba(20,25,20,.72);color:#fff;font-size:15px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
/* Admin review panel */
.proof-panel{
  background:#f3f7ef;border:1px solid rgba(60,80,60,.14);
  border-radius:14px;padding:12px 13px;margin:2px 0 10px;
}
.proof-panel-head{
  display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:800;color:#2c4a30;margin-bottom:9px;
}
.proof-panel-head svg{width:15px;height:15px}
.proof-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.proof-view{padding:0;border:0;border-radius:11px;overflow:hidden;cursor:pointer;aspect-ratio:1;background:#e5e5e5}
.proof-view img{width:100%;height:100%;object-fit:cover;display:block}
/* Lightbox */
.proof-lightbox{
  position:fixed;inset:0;z-index:9999;background:rgba(12,16,12,.9);
  display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;
}
.proof-lightbox img{max-width:100%;max-height:100%;border-radius:12px}
.proof-lightbox-x{
  position:absolute;top:18px;right:18px;width:44px;height:44px;border-radius:50%;
  border:0;background:rgba(255,255,255,.16);color:#fff;font-size:26px;line-height:1;cursor:pointer;
}
/* WW_V261_PROOF_PHOTOS_END */

/* WW_V263_OFFLINE_BANNER_START */
.ww-offline-banner{
  position:fixed;left:50%;transform:translateX(-50%);
  bottom:calc(84px + env(safe-area-inset-bottom,0px));
  z-index:9000;max-width:calc(100% - 28px);width:max-content;
  display:flex;align-items:center;gap:9px;
  background:#3a3327;color:#fdf6e8;
  padding:11px 16px;border-radius:13px;
  font-size:12.8px;font-weight:650;line-height:1.35;
  box-shadow:0 10px 26px -8px rgba(0,0,0,.5);
  border:1px solid rgba(255,255,255,.1);
}
.ww-offline-banner[hidden]{display:none}
.ww-offline-dot{
  width:9px;height:9px;border-radius:50%;background:#e5a53c;flex:0 0 9px;
  box-shadow:0 0 0 0 rgba(229,165,60,.5);animation:wwOfflinePulse 1.8s ease-out infinite;
}
.ww-offline-banner.syncing{background:#204a2c;color:#eafbe9}
.ww-offline-banner.syncing .ww-offline-dot{background:#6fd08a;animation:wwOfflinePulse 1s ease-out infinite}
@keyframes wwOfflinePulse{
  0%{box-shadow:0 0 0 0 rgba(229,165,60,.5)}
  70%{box-shadow:0 0 0 7px rgba(229,165,60,0)}
  100%{box-shadow:0 0 0 0 rgba(229,165,60,0)}
}
@media(min-width:1024px){
  .ww-offline-banner{bottom:24px}
}
/* WW_V263_OFFLINE_BANNER_END */

/* WW_V264_SERIES_SCOPE_START */
.series-scope-intro{font-size:14px;color:#3a4a3d;font-weight:600;margin:2px 0 14px;line-height:1.4}
.series-scope-opts{display:flex;flex-direction:column;gap:10px}
.series-scope-opt{
  text-align:left;display:flex;flex-direction:column;gap:3px;
  padding:14px 15px;border-radius:14px;cursor:pointer;
  background:#f5f8f2;border:1.5px solid rgba(60,80,60,.16);
  transition:transform .1s ease, border-color .12s ease;
}
.series-scope-opt:active{transform:scale(.99)}
.series-scope-opt strong{font-size:15px;font-weight:800;color:#1c2a1e}
.series-scope-opt span{font-size:12.5px;color:#5a6a5c;font-weight:600;line-height:1.35}
.series-scope-opt.primary{background:#eaf4ea;border-color:rgba(46,123,67,.35)}
.series-scope-opt.primary strong{color:#1f6d33}
.series-scope-opt.danger{background:#fcefe8;border-color:rgba(165,86,31,.3)}
.series-scope-opt.danger strong{color:#a5461f}
/* WW_V264_SERIES_SCOPE_END */

/* WW_V265_DOC_LIBRARY_START */
.doc-lib-list{display:flex;flex-direction:column;gap:9px;margin-top:2px}
.doc-ic.blue{background:linear-gradient(135deg,#2f6b8a,#1f4a63);color:#fff}
.doc-lib-card{border:1px solid rgba(47,107,138,.16)}
.doc-lib-card .doc-name{font-weight:800}
/* WW_V265_DOC_LIBRARY_END */


/* WW_V268_NOTIF_JUMP_START */
.notif-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
/* Pending-approval rows: make the info area a tappable button that opens the
   full timesheet (with photos), and show a clear photo badge. */
.appr-info.appr-open{
  flex:1;min-width:0;text-align:left;background:transparent;border:0;cursor:pointer;
  padding:0;display:flex;flex-direction:column;gap:2px;font:inherit;
}
.appr-photos-badge{
  display:inline-flex;align-items:center;gap:5px;margin-top:5px;
  font-size:11.5px;font-weight:800;color:#2c4a30;
  background:#e4f0e2;border:1px solid rgba(44,74,48,.18);
  padding:3px 9px;border-radius:8px;align-self:flex-start;
}
.appr-photos-badge svg{width:13px;height:13px}
.notif-jump{
  margin-top:10px;display:inline-flex;align-items:center;gap:6px;
}
.notif-jump svg{width:15px;height:15px}
/* WW_V268_NOTIF_JUMP_END */

/* WW_V260_LOCATION_STAMP_START */
.loc-panel{
  background:#f2f6ee;border:1px solid rgba(60,80,60,.14);border-radius:14px;
  padding:12px 14px;margin:0 0 14px;
}
.loc-panel-head{font-size:12.5px;font-weight:800;color:#2f4f33;display:flex;align-items:center;gap:6px;margin-bottom:8px}
.loc-panel-head svg{width:14px;height:14px}
.loc-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;border-top:1px solid rgba(60,80,60,.08)}
.loc-line:first-of-type{border-top:0}
.loc-lbl{font-size:12px;font-weight:750;color:#4a5a4d;flex:0 0 auto}
.loc-map{font-size:12px;font-weight:700;color:#1f6b8a;text-decoration:none;display:inline-flex;align-items:center;gap:4px;text-align:right}
.loc-map svg{width:12px;height:12px}
.loc-none{font-size:11.5px;font-weight:650;color:#9a7a2a;font-style:italic}
.loc-hint{font-size:11px;color:#6a7268;margin-top:8px;line-height:1.4}
/* WW_V260_LOCATION_STAMP_END */

/* ============================================================
   WW_V292 CHAT REDESIGN — cleaner, more professional bubbles.
   - Reaction button hidden by default; appears on hover (desktop)
     or when a message is long-pressed (mobile, .show-react).
   - Softer bubbles, refined tails, calmer "Seen" status.
   ============================================================ */
/* Reaction button: hidden until hover / long-press */
.msg-react-btn{
  opacity:0!important;pointer-events:none!important;
  transform:scale(.8)!important;
  transition:opacity .14s ease,transform .14s ease!important;
  width:30px!important;height:30px!important;flex:0 0 30px!important;
  border-radius:50%!important;border:1px solid rgba(60,82,55,.14)!important;
  background:rgba(255,253,247,.96)!important;color:#5a7355!important;
  display:grid!important;place-items:center!important;
  box-shadow:0 3px 10px rgba(35,47,31,.10)!important;align-self:center!important;
}
.msg-react-btn svg{width:15px!important;height:15px!important}
/* show on hover (desktop) or when row is long-pressed (mobile) */
.msg:hover .msg-react-btn,
.msg.show-react .msg-react-btn{opacity:1!important;pointer-events:auto!important;transform:scale(1)!important}
@media(hover:none){ .msg:hover .msg-react-btn{opacity:0!important;pointer-events:none!important} }

/* Refined bubbles */
.bubble{
  border-radius:18px!important;
  box-shadow:0 1px 2px rgba(35,47,31,.06)!important;
  border:1px solid rgba(60,82,55,.07)!important;
  padding:9px 13px!important;
}
.msg:not(.mine) .bubble{
  background:#ffffff!important;color:#25302a!important;
  border-bottom-left-radius:6px!important;
}
.msg.mine .bubble{
  background:linear-gradient(160deg,#3c6340,#274a2c)!important;color:#fbfaf2!important;
  border:none!important;border-bottom-right-radius:6px!important;
  box-shadow:0 2px 8px rgba(39,74,44,.22)!important;
}
/* Sender name: smaller, subtler */
.b-author{font-size:11px!important;font-weight:800!important;color:#a6653c!important;margin-bottom:2px!important;letter-spacing:.01em!important}
.b-text{font-size:14.5px!important;line-height:1.4!important}
/* Timestamp: quieter */
.bubble time{font-size:10px!important;opacity:.55!important;margin-top:3px!important;display:block!important}
.msg.mine .bubble time{color:rgba(251,250,242,.72)!important;opacity:1!important}

/* "Seen" status: small, calm, no shouting */
.msg-status{
  font-size:10px!important;font-weight:620!important;
  margin-top:2px!important;display:block!important;letter-spacing:.01em!important;
}
.msg-status.seen{color:rgba(251,250,242,.9)!important}
.msg.mine .msg-status.delivered{color:rgba(251,250,242,.6)!important}
.msg-status.delivered{color:#9aa39a!important}

/* Roomier, calmer message spacing */
.chat-scroll{gap:10px!important}
.msg{align-items:flex-end!important}
.msg-av .avatar{box-shadow:0 2px 6px rgba(35,47,31,.12)!important}

/* ============================================================
   WW_V314 MESSAGES — "LEDGER" (design 1)
   Editorial hairline rows, no boxes. Pinned rows get a gold left
   bar + warm tint. Placed LAST so it cleanly overrides the older
   competing blocks (base / v151 / v295) instead of fighting them.
   ============================================================ */
body .cv-list{background:transparent!important;padding:0 2px 14px!important;display:flex!important;flex-direction:column!important;min-height:0!important;overflow:hidden!important}
body .cv-head-label{color:#a8845f!important;font-weight:800!important;letter-spacing:.13em!important;font-size:10.5px!important}
body .cv-head{flex-shrink:0!important}
body .cv-search{background:#fff!important;border:1px solid rgba(87,101,67,.16)!important;border-radius:11px!important;box-shadow:none!important;flex-shrink:0!important}
body .cv-search input{color:#1e2617!important}
body .cv-search input::placeholder{color:#9aa48c!important}
body .cv-search-ic{color:#9aa48c!important}

/* section headers */
body .cv-sec{
  display:block!important;padding:14px 4px 7px!important;
  font-size:10px!important;font-weight:800!important;letter-spacing:.12em!important;text-transform:uppercase!important;
  color:#9aa48c!important;background:transparent!important;
}
body .cv-sec-pin{color:#b08a2e!important}

/* threads container: flat hairline rows, SCROLLABLE so all chats are reachable */
body .cv-threads,body .chat-list.cv-list .cv-threads{
  background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;
  display:block!important;padding:2px 0 16px!important;margin:0!important;
  flex:1 1 auto!important;min-height:0!important;
  overflow-y:auto!important;overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;
}

/* ROW: hairline, no card, no box */
body .chat-list.cv-list .cv-row,body .cv-row{
  display:flex!important;align-items:center!important;gap:11px!important;
  padding:12px 4px!important;margin:0!important;
  background:transparent!important;
  border:0!important;border-bottom:1px solid rgba(87,101,67,.11)!important;
  border-radius:0!important;box-shadow:none!important;
  position:relative!important;overflow:visible!important;
  transition:background .12s ease!important;
}
body .chat-list.cv-list .cv-row::after{display:none!important;content:none!important}
body .chat-list.cv-list .cv-row:active{background:rgba(87,101,67,.06)!important}
@media(hover:hover){body .chat-list.cv-list .cv-row:hover{background:rgba(87,101,67,.05)!important}}
body .chat-list.cv-list .cv-row.active{background:rgba(87,101,67,.09)!important}

/* PINNED rows: gold left bar + warm tint (this is what makes them stand out) */
body .chat-list.cv-list .cv-row.cv-pinned,body .cv-row.cv-pinned{
  background:linear-gradient(90deg,rgba(198,154,60,.10),rgba(198,154,60,0))!important;
  border-bottom:1px solid rgba(198,154,60,.20)!important;
  padding-left:11px!important;
}
body .chat-list.cv-list .cv-row.cv-pinned::before,body .cv-row.cv-pinned::before{
  content:""!important;display:block!important;
  position:absolute!important;left:0!important;top:0!important;bottom:0!important;
  width:3px!important;background:linear-gradient(180deg,#d9a63c,#a87a1e)!important;
  border-radius:0!important;
}
body .chat-list.cv-list .cv-row.cv-pinned .cv-name{color:#5f4a12!important;font-weight:800!important}
body .chat-list.cv-list .cv-row.cv-pinned.active{background:linear-gradient(90deg,rgba(198,154,60,.18),rgba(198,154,60,.04))!important}

/* avatar: rounded square, colour-coded */
body .chat-list.cv-list .cv-av{flex-shrink:0!important;position:relative!important}
body .chat-list.cv-list .cv-av .avatar{
  width:40px!important;height:40px!important;border-radius:11px!important;
  font-size:14px!important;font-weight:800!important;color:#fff!important;
  background:linear-gradient(150deg,#5c7a4e,#3f4b30)!important;
  border:0!important;box-shadow:none!important;
}
body .chat-list.cv-list .cv-av .avatar svg{width:19px!important;height:19px!important;stroke:#fff!important}
body .chat-list.cv-list .cv-type-workphotos .cv-av .avatar{background:linear-gradient(150deg,#8371dc,#4f3fa0)!important}
body .chat-list.cv-list .cv-type-announcement .cv-av .avatar{background:linear-gradient(150deg,#d18a3e,#93591b)!important}
body .chat-list.cv-list .cv-av .avatar.sage{background:linear-gradient(150deg,#6f8f6a,#3f6b3e)!important}
body .chat-list.cv-list .cv-av .avatar.clay{background:linear-gradient(150deg,#b0805e,#7d5236)!important}
body .chat-list.cv-list .cv-unread-dot{
  position:absolute!important;top:-2px!important;right:-2px!important;
  width:11px!important;height:11px!important;border-radius:50%!important;
  background:#c07a2e!important;border:2px solid #f2f5ee!important;box-shadow:none!important;transform:none!important;
}

/* body text */
body .chat-list.cv-list .cv-body{flex:1!important;min-width:0!important;display:flex!important;flex-direction:column!important;gap:1px!important}
body .chat-list.cv-list .cv-top{display:flex!important;align-items:center!important;gap:7px!important;width:100%!important}
body .chat-list.cv-list .cv-name{
  flex:1!important;min-width:0!important;font-size:14.5px!important;font-weight:750!important;color:#1e2617!important;
  letter-spacing:-.01em!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
body .chat-list.cv-list .cv-row.cv-unread .cv-name{font-weight:850!important}
body .chat-list.cv-list .cv-sub{
  display:block!important;font-size:12px!important;color:#8a9578!important;font-weight:600!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;margin-top:2px!important;
}
body .chat-list.cv-list .cv-last{
  display:block!important;font-size:12.5px!important;color:#71806a!important;font-weight:550!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;margin-top:1px!important;
}
body .chat-list.cv-list .cv-row.cv-unread .cv-last{color:#3f6b3e!important;font-weight:700!important}
body .chat-list.cv-list .cv-time{
  display:block!important;flex-shrink:0!important;font-size:11px!important;font-weight:620!important;color:#a7b199!important;
}
body .chat-list.cv-list .cv-row.cv-unread .cv-time{color:#4e8a52!important}
body .chat-list.cv-list .cv-pinned .cv-time{display:block!important;color:#b08a2e!important}
/* hide the small "pinned" tag pill (the gold bar already says it) */
body .chat-list.cv-list .cv-pintag{display:none!important}
/* hide row clutter for a clean editorial list */
body .chat-list.cv-list .cv-readtoggle,
body .chat-list.cv-list .cv-mini-action,
body .chat-list.cv-list .cv-chev{display:none!important}
body .cv-new{background:linear-gradient(160deg,#5c7a4e,#3f4b30)!important;color:#fff!important;border-radius:12px!important}


/* merged Add staff member modal */
.invite-hint{font-size:12px;color:#7c8770;margin:-6px 0 14px;line-height:1.5}
.invite-hint b{color:#576543;font-weight:800}

/* onboarding form section headings */
.sign-section{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#5c7a4e;margin:18px 0 8px;padding-bottom:6px;border-bottom:1px solid rgba(87,101,67,.16)}
.sign-fields-wrap .field textarea.input{min-height:52px;resize:vertical;font-family:inherit}

/* notification delete / clear */
.notif-item{position:relative}
.notif-del{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;
  background:transparent;border:0;color:#b0b8a8;cursor:pointer;opacity:.55;transition:opacity .12s ease,background .12s ease,color .12s ease;z-index:2}
.notif-del svg{width:15px;height:15px}
.notif-del:hover{opacity:1;background:rgba(168,57,47,.1);color:#a8392f}
.notif-item .notif-meta{padding-right:26px}
.notif-dismiss-btn{margin-top:10px}
.notif-dismiss-btn svg{width:14px;height:14px;stroke:#5c7a4e}


/* ---- inline style 78 ---- */

/* Requested only: use rich, full-strength colours on PUBLISHED desktop
   roster cards. Unpublished/draft cards deliberately keep their original
   white dashed styling and original status colours. Layout is unchanged. */
@media (min-width:1024px){
  .rwg-cell .rgc.pub{
    background:linear-gradient(135deg,
      color-mix(in srgb,var(--accent) 96%,#101510 4%) 0%,
      var(--accent) 48%,
      var(--accent-deep) 100%
    )!important;
    border-color:color-mix(in srgb,var(--accent-deep) 86%,#000 14%)!important;
    border-left-color:color-mix(in srgb,var(--accent) 82%,#fff 18%)!important;
    box-shadow:
      0 13px 25px -13px color-mix(in srgb,var(--accent-deep) 82%,transparent),
      0 4px 11px -5px color-mix(in srgb,var(--accent) 76%,transparent),
      inset 0 1px 0 rgba(255,255,255,.28)!important;
  }
  .rwg-cell .rgc.pub .rgc-time,
  .rwg-cell .rgc.pub .rgc-dur{
    color:color-mix(in srgb,var(--accent-deep) 92%,#000 8%)!important;
    background:rgba(255,255,255,.96)!important;
    border-color:rgba(255,255,255,.78)!important;
    box-shadow:
      0 2px 6px rgba(0,0,0,.18),
      inset 0 1px 0 rgba(255,255,255,.96)!important;
  }
  .rwg-cell .rgc.pub .rgc-client{
    color:#fff!important;
    text-shadow:0 1px 2px rgba(0,0,0,.48)!important;
  }
  .rwg-cell .rgc.pub .rgc-dot.pub{
    background:#fff!important;
    box-shadow:
      0 0 0 2px rgba(255,255,255,.32),
      0 0 8px rgba(255,255,255,.58)!important;
  }
  .rwg-cell .rgc.pub:hover{
    box-shadow:
      0 17px 31px -13px color-mix(in srgb,var(--accent-deep) 88%,transparent),
      0 5px 13px -5px color-mix(in srgb,var(--accent) 82%,transparent),
      inset 0 1px 0 rgba(255,255,255,.32)!important;
  }
}

/* ============================================================
   PERFORMANCE PASS v342 — cut GPU cost so scrolling/typing is
   smooth on phones. Backdrop-filter is the single most expensive
   effect on mobile; we drop the heavy blurs to solid/translucent
   fills (visually near-identical) and add paint containment so
   offscreen rows don't repaint.
   ============================================================ */
@media (max-width:1023px){
  /* kill remaining heavy blurs on mobile — they cause scroll jank */
  .modal-backdrop,.sheet-backdrop,.wa-backdrop,.overlay,.scrim{
    backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  }
}
/* Long lists: let the browser skip painting offscreen rows */
.cv-threads .cv-row,.roster-week-grid .rwg-row,.ts-list .ts-row,.notif-list .notif-item{
  content-visibility:auto;contain-intrinsic-size:auto 64px;
}
/* Promote scrollers to their own layer so scrolling doesn't repaint siblings */
.content,.modal-body,.cv-threads,.chat-scroll{
  will-change:scroll-position;transform:translateZ(0);
}
/* Cheaper shadows on cards while scrolling (large blur radii are costly) */
@media (max-width:1023px){
  .card,.cv-row,.notif-item{box-shadow:0 1px 2px rgba(20,30,18,.08)!important;}
}

/* ============================================================
   FIT-ON-ONE-SCREEN v346 — compact entry modals on phones so the
   Add-entry / Add-timesheet forms don't require scrolling.
   ============================================================ */
@media (max-width:600px){
  /* tighter overall padding inside the sheet */
  .modal-body{padding-left:18px!important;padding-right:18px!important}
  /* shrink the big green header card */
  .te-head{padding:12px 14px!important;margin-bottom:10px!important;border-radius:16px!important;
    box-shadow:0 8px 18px rgba(8,30,16,.28)!important}
  .te-client{font-size:16.5px!important;line-height:1.12!important}
  .te-sub{font-size:11.5px!important;margin-top:1px!important}
  .te-status{margin-top:6px!important;padding:4px 10px!important;font-size:11px!important}
  .te-head-req .te-status{margin-top:6px!important}
  /* tighter fields */
  .field{gap:5px!important;margin-bottom:9px!important}
  .field label{font-size:11.5px!important}
  .input{height:44px!important}
  textarea.input{height:auto!important;min-height:40px!important}
  .row2{gap:9px!important}
  /* the "add new client" helper row: slimmer */
  .te-addclient,.add-client-inline,[data-action="toggle-add-client"]{padding-top:8px!important;padding-bottom:8px!important;font-size:13px!important}
  /* footer buttons a touch shorter */
  .modal-foot{padding-top:10px!important;padding-bottom:calc(12px + var(--safe-b))!important}
  .modal-foot .btn{height:46px!important}
}
/* very short screens (small phones) — squeeze a little more */
@media (max-width:600px) and (max-height:740px){
  .te-head{padding:10px 13px!important;margin-bottom:8px!important}
  .te-client{font-size:15px!important}
  .field{margin-bottom:7px!important}
  .input{height:42px!important}
}

/* ============================================================
   COMPANY SIGN-UP v347 — clean split-screen, no logo, readable
   ============================================================ */
.su2-root{position:fixed;inset:0;z-index:10;display:flex;min-height:100dvh;background:#f6f4ec;overflow:hidden;animation:lg2Fade .5s ease both}
.su2-brand{position:relative;flex:1 1 50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#0f1d12;isolation:isolate}
.su2-sky{position:absolute;inset:0;background:linear-gradient(180deg,#12271a 0%,#1c3a24 38%,#3c5a34 68%,#6d7f49 100%)}
.su2-sun{position:absolute;left:50%;top:58%;width:520px;height:520px;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(233,196,106,.95) 0%,rgba(216,158,74,.5) 30%,rgba(216,158,74,0) 62%);filter:blur(2px);animation:lg2Rise 1.4s cubic-bezier(.22,1,.36,1) both}
.su2-hills{position:absolute;inset:0;overflow:hidden}
.su2-hill{position:absolute;left:-10%;right:-10%;border-radius:50%/100% 100% 0 0}
.su2-hill-3{bottom:34%;height:44%;background:#3f5b38;opacity:.55;filter:blur(1px)}
.su2-hill-2{bottom:20%;height:46%;background:#33502f;animation:lg2Hill 1.1s .08s cubic-bezier(.22,1,.36,1) both}
.su2-hill-1{bottom:-6%;height:52%;background:#20361f;animation:lg2Hill 1.1s .16s cubic-bezier(.22,1,.36,1) both}
.su2-hill-3{animation:lg2Hill 1.1s cubic-bezier(.22,1,.36,1) both}
.su2-brand-inner{position:relative;z-index:2;max-width:420px;padding:48px;color:#f4f7ee;animation:lg2Up .8s .2s cubic-bezier(.22,1,.36,1) both}
.su2-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#e9c46a;margin-bottom:14px}
.su2-brand-inner h1{font-family:var(--font-display,"Fraunces",Georgia,serif);font-weight:600;font-size:40px;line-height:1.04;letter-spacing:-.02em;color:#fbfdf6;margin:0}
.su2-points{list-style:none;margin:30px 0 0;padding:0;display:flex;flex-direction:column;gap:13px}
.su2-points li{display:flex;align-items:center;gap:11px;font-size:14.5px;font-weight:600;color:rgba(238,244,230,.92)}
.su2-tick{flex-shrink:0;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:rgba(233,196,106,.16);border:1px solid rgba(233,196,106,.4)}
.su2-tick svg{width:13px;height:13px;stroke:#e9c46a}
.su2-main{flex:1 1 50%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px calc(28px + env(safe-area-inset-bottom));overflow-y:auto;background:#f6f4ec}
.su2-form-wrap{width:100%;max-width:400px;margin:auto}
.su2-head{margin-bottom:22px}
.su2-greet{display:block;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#a8845f;margin-bottom:8px}
.su2-head h2{font-family:var(--font-display,"Fraunces",Georgia,serif);font-weight:600;font-size:30px;line-height:1.06;letter-spacing:-.015em;color:#1e2617;margin:0}
.su2-head p{margin:9px 0 0;font-size:14px;line-height:1.5;color:#6f7c60;font-weight:500}
.su2-field{margin-bottom:14px}
.su2-field label{display:block;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#3a4a3c;margin-bottom:7px}
.su2-input{width:100%;height:52px;padding:0 16px;border-radius:14px;border:1.5px solid rgba(58,93,59,.22);background:#fff;font-size:16px;font-weight:500;color:#1e2617;outline:none;transition:border-color .15s,box-shadow .15s}
.su2-input::placeholder{color:#9aa39a;font-weight:500}
.su2-input:focus{border-color:#5c7a4e;box-shadow:0 0 0 4px rgba(92,122,78,.15)}
.su2-hint{display:block;margin-top:6px;font-size:12px;color:#8a9784;font-weight:500}
.su2-cta{margin-top:6px;width:100%;height:54px;display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;cursor:pointer;
  background:linear-gradient(180deg,#5c7a4e 0%,#425a34 60%,#33481f 100%);color:#fff;font-family:var(--font-body);font-size:16px;font-weight:800;
  box-shadow:0 14px 28px -10px rgba(40,60,30,.5),inset 0 1px 0 rgba(255,255,255,.22);transition:transform .12s,box-shadow .15s}
.su2-cta svg{width:17px;height:17px;stroke:#fff}
@media(hover:hover){.su2-cta:hover{transform:translateY(-1px)}}
.su2-cta:active{transform:translateY(0) scale(.99)}
.su2-alt{margin:16px 0 0;font-size:13px;color:#6f7c60;font-weight:600;text-align:center}
.su2-alt a{color:#5c7a4e;font-weight:800;cursor:pointer;text-decoration:none;border-bottom:1.5px solid rgba(92,122,78,.35)}
.su2-err{margin-bottom:12px;font-size:13px;color:#a8392f;font-weight:700}
.su2-err:empty{display:none}
@media(max-width:860px){
  .su2-root{flex-direction:column}
  .su2-brand{flex:0 0 auto;min-height:32vh;padding:0}
  .su2-brand-inner{padding:32px 26px;max-width:none}
  .su2-brand-inner h1{font-size:30px}
  .su2-points{display:none}
  .su2-main{flex:1 1 auto;justify-content:flex-start;padding-top:28px;border-radius:26px 26px 0 0;margin-top:-26px;position:relative;z-index:3;box-shadow:0 -12px 30px -18px rgba(0,0,0,.3)}
}
@media(max-width:420px){
  .su2-brand{min-height:26vh}
  .su2-brand-inner h1{font-size:26px}
  .su2-head h2{font-size:26px}
}


/* ---- inline style 79 ---- */

/* Design 2 — Modern Dark / Bold Contrast.
   Scoped to the Messages area only. The existing app header and mobile navigation
   are intentionally untouched. */
.content:has(.chat-shell){
  background:#070a0c!important;
}
.content:has(.chat-shell) .section-head{display:none!important}
.chat-shell{
  background:#090d10!important;
  border-color:rgba(255,255,255,.075)!important;
  box-shadow:none!important;
}

/* ---------- conversation list ---------- */
body .chat-list.cv-list{
  min-height:0!important;
  padding:9px 11px 12px!important;
  gap:0!important;
  overflow:hidden!important;
  background:linear-gradient(180deg,#0b0f12 0%,#080c0f 100%)!important;
  border-color:rgba(255,255,255,.075)!important;
  box-shadow:none!important;
}
body .chat-list.cv-list .cv-head{
  position:relative!important;inset:auto!important;z-index:2!important;
  min-height:34px!important;height:34px!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;
  padding:0!important;margin:0 0 7px!important;
  overflow:visible!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;
}
body .chat-list.cv-list .cv-head::before,
body .chat-list.cv-list .cv-head::after{content:none!important;display:none!important}
body .chat-list.cv-list .cv-head-label{
  color:#f5f6f7!important;
  font-family:var(--font-body,"Inter Tight",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)!important;
  font-size:15px!important;line-height:1!important;font-weight:850!important;
  letter-spacing:-.01em!important;text-transform:none!important;
}
body .chat-list.cv-list .cv-new{
  position:static!important;flex:0 0 34px!important;width:34px!important;height:34px!important;min-width:34px!important;
  display:grid!important;place-items:center!important;margin:0!important;padding:0!important;
  border:1px solid rgba(137,213,91,.32)!important;border-radius:10px!important;
  color:#fff!important;background:linear-gradient(145deg,#72bd49 0%,#4a982f 100%)!important;
  box-shadow:0 6px 14px -8px rgba(103,190,64,.8),inset 0 1px 0 rgba(255,255,255,.22)!important;
}
body .chat-list.cv-list .cv-new svg{width:18px!important;height:18px!important;stroke-width:2.2!important}
body .chat-list.cv-list .cv-new:active{transform:scale(.95)!important}

body .chat-list.cv-list .cv-search{
  position:relative!important;inset:auto!important;z-index:2!important;
  flex-shrink:0!important;display:flex!important;align-items:center!important;
  min-height:40px!important;height:40px!important;padding:0 39px 0 35px!important;margin:0 0 7px!important;
  border:1px solid rgba(255,255,255,.065)!important;border-radius:10px!important;
  background:#171b1f!important;box-shadow:0 4px 12px -10px rgba(0,0,0,.95)!important;overflow:visible!important;
}
body .chat-list.cv-list .cv-search:focus-within{
  border-color:rgba(119,194,73,.45)!important;
  box-shadow:0 0 0 3px rgba(105,181,65,.10)!important;
}
body .chat-list.cv-list .cv-search-ic{
  position:absolute!important;left:11px!important;top:50%!important;transform:translateY(-50%)!important;
  width:16px!important;height:16px!important;color:#8a9298!important;
}
body .chat-list.cv-list .cv-search-ic svg{width:16px!important;height:16px!important;stroke-width:1.85!important}
body .chat-list.cv-list .cv-search input{
  width:100%!important;height:38px!important;min-width:0!important;padding:0!important;border:0!important;background:transparent!important;outline:0!important;
  color:#f0f2f3!important;font-size:12.5px!important;font-weight:600!important;letter-spacing:0!important;
}
body .chat-list.cv-list .cv-search input::placeholder{color:#8c9499!important;font-weight:570!important;opacity:1!important}
body .chat-list.cv-list .cv-search-clear{
  position:absolute!important;right:38px!important;top:50%!important;transform:translateY(-50%)!important;
  width:20px!important;height:20px!important;border-radius:7px!important;color:#b3b9bd!important;background:#24292d!important;border:0!important;
}
body .chat-list.cv-list .cv-filter{
  position:absolute!important;right:4px!important;top:50%!important;transform:translateY(-50%)!important;
  width:30px!important;height:30px!important;min-width:30px!important;display:grid!important;place-items:center!important;
  border:0!important;border-radius:8px!important;color:#a5adb2!important;background:transparent!important;cursor:pointer!important;
}
body .chat-list.cv-list .cv-filter:hover{background:#22272b!important;color:#eef1f2!important}
body .chat-list.cv-list .cv-filter.active{color:#f7fff4!important;background:#4b8e33!important}
.cv-filter-icon{width:15px;height:13px;display:flex;flex-direction:column;justify-content:space-between;position:relative}
.cv-filter-icon i{display:block;height:1.5px;border-radius:99px;background:currentColor;position:relative}
.cv-filter-icon i:nth-child(1){width:15px}.cv-filter-icon i:nth-child(2){width:11px;align-self:flex-end}.cv-filter-icon i:nth-child(3){width:7px;align-self:flex-end}
.cv-filter-icon i::after{content:"";position:absolute;top:50%;width:3px;height:3px;border:1.2px solid currentColor;border-radius:50%;background:#171b1f;transform:translateY(-50%)}
.cv-filter-icon i:nth-child(1)::after{left:4px}.cv-filter-icon i:nth-child(2)::after{right:2px}.cv-filter-icon i:nth-child(3)::after{left:1px}
.cv-filter.active .cv-filter-icon i::after{background:#4b8e33}
.cv-filter-count{
  position:absolute;right:-3px;top:-3px;min-width:15px;height:15px;padding:0 3px;display:grid;place-items:center;border-radius:999px;
  background:#d84e4e;color:#fff;border:2px solid #171b1f;font-size:7px;font-weight:900;line-height:1;
}

body .chat-list.cv-list .cv-threads{
  position:relative!important;z-index:1!important;flex:1 1 auto!important;min-height:0!important;
  display:block!important;padding:0 0 10px!important;margin:0!important;
  overflow-y:auto!important;overflow-x:hidden!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;
  scrollbar-width:thin!important;scrollbar-color:rgba(148,157,163,.18) transparent!important;
}
body .chat-list.cv-list .cv-threads::-webkit-scrollbar{width:4px!important}
body .chat-list.cv-list .cv-threads::-webkit-scrollbar-thumb{background:rgba(148,157,163,.18)!important;border-radius:999px!important}
body .chat-list.cv-list .cv-sec,
body .chat-list.cv-list .cv-people-label{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  min-height:22px!important;height:22px!important;margin:0!important;padding:4px 1px 3px!important;
  color:#f0f2f3!important;background:transparent!important;border:0!important;
  font-size:10px!important;line-height:1!important;font-weight:790!important;letter-spacing:0!important;text-transform:none!important;
}
body .chat-list.cv-list .cv-sec-pin{color:#f0f2f3!important;padding-top:1px!important}
body .chat-list.cv-list .cv-sec-pin::after{content:"View all";color:#81c95b;font-size:9px;font-weight:720}
body .chat-list.cv-list .cv-people-label{color:#f0f2f3!important}

/* Neutral charcoal cards. Green is used only for accents, matching Design 2. */
body .chat-list.cv-list .cv-row,
body .chat-list.cv-list .cv-row.cv-pinned,
body .chat-list.cv-list .cv-row.cv-person{
  width:100%!important;min-height:50px!important;height:50px!important;
  display:flex!important;align-items:center!important;gap:8px!important;
  margin:0 0 4px!important;padding:5px 7px!important;position:relative!important;overflow:hidden!important;text-align:left!important;
  background:linear-gradient(180deg,#171c20 0%,#14191d 100%)!important;
  border:1px solid rgba(255,255,255,.065)!important;border-radius:10px!important;
  box-shadow:0 3px 9px -8px rgba(0,0,0,.95)!important;transform:none!important;
}
body .chat-list.cv-list .cv-row::before,
body .chat-list.cv-list .cv-row::after,
body .chat-list.cv-list .cv-row.cv-pinned::before{content:none!important;display:none!important}
body .chat-list.cv-list .cv-row:hover{
  background:linear-gradient(180deg,#1d2328 0%,#191f23 100%)!important;
  border-color:rgba(255,255,255,.11)!important;box-shadow:0 4px 11px -8px rgba(0,0,0,.95)!important;transform:none!important;
}
body .chat-list.cv-list .cv-row:active{background:#20262b!important;transform:scale(.996)!important}
body .chat-list.cv-list .cv-row.active,
body .chat-list.cv-list .cv-row.cv-pinned.active{
  background:linear-gradient(180deg,#1b2125 0%,#171d21 100%)!important;
  border-color:rgba(117,190,72,.32)!important;
  box-shadow:inset 2px 0 0 #72bc48,0 4px 11px -9px rgba(0,0,0,.95)!important;
}
body .chat-list.cv-list .cv-row.cv-pinned,
body .chat-list.cv-list .cv-row.cv-unread{
  background:linear-gradient(180deg,#171c20 0%,#14191d 100%)!important;
  border-color:rgba(255,255,255,.07)!important;
}
body .chat-list.cv-list .cv-row.cv-pinned .cv-name,
body .chat-list.cv-list .cv-row.cv-pinned.cv-unread .cv-name{color:#f4f5f6!important}
body .chat-list.cv-list .cv-row.cv-unread .cv-time{color:#c1c6ca!important}

body .chat-list.cv-list .cv-av{position:relative!important;flex:0 0 34px!important;width:34px!important;height:34px!important}
body .chat-list.cv-list .cv-av .avatar{
  width:34px!important;height:34px!important;border-radius:9px!important;display:grid!important;place-items:center!important;
  color:#fff!important;font-size:10.5px!important;font-weight:850!important;
  background:linear-gradient(150deg,#5da43e,#39772c)!important;border:0!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 3px 8px -7px rgba(0,0,0,.9)!important;
}
body .chat-list.cv-list .cv-person .cv-av .avatar,
body .chat-list.cv-list .cv-type-dm .cv-av .avatar{
  border-radius:50%!important;background:linear-gradient(150deg,#315675,#203950)!important;
}
body .chat-list.cv-list .cv-type-team .cv-av .avatar{background:linear-gradient(150deg,#68b246,#397c2d)!important}
body .chat-list.cv-list .cv-type-workphotos .cv-av .avatar,
body .chat-list.cv-list .cv-workphotos .cv-av .avatar{background:linear-gradient(150deg,#559b3d,#316e2a)!important}
body .chat-list.cv-list .cv-type-announcement .cv-av .avatar{background:linear-gradient(150deg,#aa654d,#754030)!important}
body .chat-list.cv-list .cv-av .avatar.sage{background:linear-gradient(150deg,#315675,#203950)!important}
body .chat-list.cv-list .cv-av .avatar.clay{background:linear-gradient(150deg,#aa654d,#754030)!important}
body .chat-list.cv-list .cv-av .avatar svg{width:16px!important;height:16px!important;stroke:#fff!important;stroke-width:1.85!important}
body .chat-list.cv-list .cv-unread-dot{
  position:absolute!important;right:-2px!important;top:-2px!important;width:8px!important;height:8px!important;border-radius:50%!important;
  background:#79c64e!important;border:2px solid #171c20!important;box-shadow:none!important;
}

body .chat-list.cv-list .cv-body{
  flex:1 1 auto!important;min-width:0!important;height:38px!important;
  display:flex!important;flex-direction:column!important;justify-content:center!important;gap:0!important;overflow:hidden!important;
}
body .chat-list.cv-list .cv-top{display:flex!important;align-items:center!important;gap:6px!important;width:100%!important;min-width:0!important;height:14px!important}
body .chat-list.cv-list .cv-name{
  flex:1 1 auto!important;min-width:0!important;color:#f1f3f4!important;
  font-size:12.1px!important;line-height:14px!important;font-weight:760!important;letter-spacing:-.01em!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
body .chat-list.cv-list .cv-row.cv-unread .cv-name{font-weight:880!important;color:#fff!important}
body .chat-list.cv-list .cv-sub{
  display:block!important;min-width:0!important;height:11px!important;color:#a6adb1!important;
  font-size:9.4px!important;line-height:11px!important;font-weight:560!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;margin:0!important;
}
body .chat-list.cv-list .cv-last{
  display:block!important;min-width:0!important;height:12px!important;color:#d0d4d6!important;
  font-size:10px!important;line-height:12px!important;font-weight:540!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;margin:0!important;
}
body .chat-list.cv-list .cv-empty{color:#828a8f!important}
body .chat-list.cv-list .cv-row.cv-unread .cv-last{color:#eef1f2!important;font-weight:650!important}
body .chat-list.cv-list .cv-time{
  flex:0 0 auto!important;display:block!important;color:#b2b8bc!important;
  font-size:8.2px!important;line-height:1!important;font-weight:600!important;white-space:nowrap!important;
}
body .chat-list.cv-list .cv-pinned .cv-time{color:#c6cbce!important}
body .chat-list.cv-list .cv-pintag{
  display:none!important;
}
body .chat-list.cv-list .cv-type-team .cv-pintag{
  display:inline-grid!important;place-items:center!important;flex:0 0 auto!important;width:13px!important;height:13px!important;
  padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:#e9df72!important;
  font-size:0!important;line-height:1!important;
}
body .chat-list.cv-list .cv-type-team .cv-pintag::after{content:"★"!important;font-size:10px!important;line-height:1!important}
body .chat-list.cv-list .cv-readtoggle,
body .chat-list.cv-list .cv-mini-action,
body .chat-list.cv-list .cv-chev{display:none!important}
body .chat-list.cv-list .cv-none{
  margin:5px 0!important;padding:22px 14px!important;border-radius:10px!important;
  background:#151a1e!important;border:1px dashed rgba(255,255,255,.10)!important;
  color:#959da2!important;font-size:11px!important;font-weight:620!important;text-align:center!important;
}

/* ---------- conversation thread ---------- */
body .chat-thread{
  background:linear-gradient(180deg,#0d1114 0%,#090d10 100%)!important;
  border-color:rgba(255,255,255,.075)!important;box-shadow:none!important;color:#eef1f2!important;
}
body .chat-thread.empty-thread{background:#0b0f12!important;color:#8d959a!important}
body .chat-thread .ct-head,
body .chat-thread .chat-thread-head{
  background:#14191d!important;border-bottom:1px solid rgba(255,255,255,.07)!important;box-shadow:none!important;color:#eef1f2!important;
}
body .chat-thread .cth-back,
body .chat-thread .cth-act{
  color:#d9dee1!important;background:#20262a!important;border-color:rgba(255,255,255,.08)!important;
}
body .chat-thread .cth-back svg,
body .chat-thread .cth-act svg{stroke:currentColor!important}
body .chat-thread .cth-name{color:#f4f6f7!important}
body .chat-thread .cth-sub,
body .chat-thread .cth-presence{color:#9ba3a8!important}
body .chat-thread .cth-presence.is-online{color:#7cc652!important}
body .chat-thread .cth-dot{background:#75c14a!important}
body .chat-thread .chat-scroll{background:linear-gradient(180deg,#0b0f12,#080c0f)!important}
body .chat-thread .bubble,
body .chat-thread .msg:not(.mine) .bubble{
  background:#191f23!important;border-color:rgba(255,255,255,.075)!important;color:#edf0f1!important;box-shadow:none!important;
}
body .chat-thread .msg.mine .bubble{
  background:#243129!important;border-color:rgba(119,192,74,.18)!important;color:#f2f6f1!important;box-shadow:none!important;
}
body .chat-thread .b-author{color:#8bc968!important}
body .chat-thread .bubble time{color:#899196!important}
body .chat-thread .msg.mine .bubble time{color:#98a79a!important}
body .chat-thread .chat-composer{
  background:#12171a!important;border-top:1px solid rgba(255,255,255,.07)!important;box-shadow:none!important;
}
body .chat-thread .chat-editbox,
body .chat-thread .chat-composer .input{
  border-color:rgba(255,255,255,.09)!important;background:#1a2024!important;color:#eef1f2!important;
}
body .chat-thread .chat-editbox:focus-within,
body .chat-thread .chat-composer .input:focus{border-color:rgba(119,192,74,.42)!important;box-shadow:0 0 0 3px rgba(105,181,65,.09)!important}
body .chat-thread .cattach,
body .chat-thread .photo-upload-btn{
  background:#1d2327!important;border:1px solid rgba(255,255,255,.09)!important;color:#c6ccd0!important;box-shadow:none!important;
}
body .chat-thread .chat-composer .btn.btn-primary.csend,
body .chat-thread .chat-composer .csend,
body .chat-thread .csend{
  border:1px solid rgba(139,214,92,.20)!important;border-radius:12px!important;
  background:linear-gradient(145deg,#70ba49,#478f31)!important;color:#fff!important;box-shadow:none!important;
}
body .chat-thread .chat-composer .csend svg{stroke:currentColor!important}

@media (max-width:1023px){
  .content:has(.chat-shell){padding-left:0!important;padding-right:0!important}
  .chat-shell{height:calc(100dvh - 188px - var(--safe-b))!important;min-height:0!important;border-radius:0!important;border-left:0!important;border-right:0!important}
  body .chat-list.cv-list{padding-left:10px!important;padding-right:10px!important;border-radius:0!important}
}
@media (min-width:1024px){
  .content:has(.chat-shell){padding:18px 22px 22px!important}
  .chat-shell{border-radius:22px!important;overflow:hidden!important}
  body .chat-list.cv-list{
    width:360px!important;min-width:360px!important;padding:12px!important;
    border-radius:22px 0 0 22px!important;border-right:1px solid rgba(255,255,255,.07)!important;
  }
  body .chat-thread{border-radius:0 22px 22px 0!important}
}
@media (max-width:370px){
  body .chat-list.cv-list{padding-left:8px!important;padding-right:8px!important}
  body .chat-list.cv-list .cv-row,
  body .chat-list.cv-list .cv-row.cv-pinned,
  body .chat-list.cv-list .cv-row.cv-person{height:48px!important;min-height:48px!important;gap:7px!important;padding:5px 6px!important}
  body .chat-list.cv-list .cv-av,
  body .chat-list.cv-list .cv-av .avatar{width:32px!important;height:32px!important;flex-basis:32px!important}
  body .chat-list.cv-list .cv-name{font-size:11.7px!important}
}


/* ---- inline style 80 ---- */

/* Messages-only stability pass.
   Keeps the approved Design 2 colours, header and mobile menu unchanged. */
@media (max-width:1023px){
  body.ww-chat-active{
    height:var(--ww-chat-stable-vh,100svh)!important;
    min-height:var(--ww-chat-stable-vh,100svh)!important;
    max-height:var(--ww-chat-stable-vh,100svh)!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body.ww-chat-active #app,
  body.ww-chat-active .shell,
  body.ww-chat-active .main{
    height:var(--ww-chat-stable-vh,100svh)!important;
    min-height:0!important;
    max-height:var(--ww-chat-stable-vh,100svh)!important;
    overflow:hidden!important;
  }
  body.ww-chat-active .main{
    display:flex!important;
    flex-direction:column!important;
  }
  body.ww-chat-active .topbar{
    flex:0 0 auto!important;
  }
  body.ww-chat-active .content,
  body.ww-chat-active main.content{
    flex:1 1 auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    -webkit-overflow-scrolling:auto!important;
    padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))!important;
  }
  body.ww-chat-active.chat-thread-open .content,
  body.ww-chat-active.chat-thread-open main.content{
    padding-bottom:0!important;
  }
  body.ww-chat-active .content > .page,
  body.ww-chat-active main.content > .page{
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
    padding-bottom:0!important;
  }
  body.ww-chat-active .chat-shell{
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    contain:layout paint!important;
  }
  body.ww-chat-active .chat-list.cv-list,
  body.ww-chat-active .chat-thread{
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
    contain:layout paint!important;
  }
  body.ww-chat-active .cv-threads,
  body.ww-chat-active .chat-scroll{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
    scroll-behavior:auto!important;
    scroll-snap-type:none!important;
    overflow-anchor:none!important;
    touch-action:pan-y!important;
    will-change:auto!important;
    transform:none!important;
  }
  body.ww-chat-active .chat-composer{
    position:relative!important;
    inset:auto!important;
    bottom:auto!important;
    flex:0 0 auto!important;
    transform:none!important;
    will-change:auto!important;
  }
  /* Prevent the old horizontal swipe preview from reacting to a thumb's normal
     sideways drift during vertical scrolling. Long-press chat actions still work. */
  body.ww-chat-active .cv-row,
  body.ww-chat-active .cv-row.ww-swipe-peek{
    transform:none!important;
    animation:none!important;
    transition:none!important;
    will-change:auto!important;
  }
}
@media (min-width:1024px){
  body.ww-chat-active .cv-threads,
  body.ww-chat-active .chat-scroll{
    overscroll-behavior:contain!important;
    scroll-behavior:auto!important;
    overflow-anchor:none!important;
  }
}


/* ---- inline style 81 ---- */

/* Messages-only refinement requested after the approved Design 2 dark theme.
   Keeps the header, colours, mobile menu and every other app section unchanged. */
@media (max-width:1023px){
  /* Let the scrolling list meet the mobile menu cleanly. The previous 10px
     tail plus iOS elastic overscroll made a thick black strip appear. */
  body .chat-list.cv-list{padding-bottom:0!important;}
  body .chat-list.cv-list .cv-threads,
  body.ww-chat-active .cv-threads{
    /* Clear the fixed bottom nav (78px tall) plus the iOS home indicator,
       otherwise the final conversation card is hidden underneath the bar. */
    padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px))!important;
    scroll-padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px))!important;
    overscroll-behavior-y:none!important;
  }

  /* Roomier, easier-to-read conversation cards: roughly six complete cards
     are visible on a standard iPhone screen instead of eight cramped rows. */
  body .chat-list.cv-list .cv-row,
  body .chat-list.cv-list .cv-row.cv-pinned,
  body .chat-list.cv-list .cv-row.cv-person{
    height:74px!important;
    min-height:74px!important;
    margin-bottom:7px!important;
    padding:8px 10px!important;
    gap:11px!important;
    border-radius:13px!important;
  }
  body .chat-list.cv-list .cv-av{
    width:46px!important;
    height:46px!important;
    flex:0 0 46px!important;
  }
  body .chat-list.cv-list .cv-av .avatar{
    width:46px!important;
    height:46px!important;
    font-size:13px!important;
    border-radius:12px!important;
  }
  body .chat-list.cv-list .cv-person .cv-av .avatar,
  body .chat-list.cv-list .cv-type-dm .cv-av .avatar{border-radius:50%!important;}
  body .chat-list.cv-list .cv-av .avatar svg{width:20px!important;height:20px!important;}
  body .chat-list.cv-list .cv-body{
    height:54px!important;
    gap:1px!important;
  }
  body .chat-list.cv-list .cv-top{
    height:18px!important;
    gap:7px!important;
  }
  body .chat-list.cv-list .cv-name{
    font-size:15px!important;
    line-height:18px!important;
    letter-spacing:-.012em!important;
  }
  body .chat-list.cv-list .cv-sub{
    height:15px!important;
    font-size:11.7px!important;
    line-height:15px!important;
  }
  body .chat-list.cv-list .cv-last{
    height:16px!important;
    font-size:12.6px!important;
    line-height:16px!important;
  }
  body .chat-list.cv-list .cv-time{
    font-size:10px!important;
    line-height:1!important;
  }
  body .chat-list.cv-list .cv-type-team .cv-pintag{width:15px!important;height:15px!important;}
  body .chat-list.cv-list .cv-type-team .cv-pintag::after{font-size:12px!important;}
  body .chat-list.cv-list .cv-sec,
  body .chat-list.cv-list .cv-people-label{
    height:25px!important;
    min-height:25px!important;
    padding:5px 2px 4px!important;
    font-size:11.5px!important;
  }
  body .chat-list.cv-list .cv-sec-pin::after{font-size:10.5px!important;}
}

/* Keep the typography comfortable on narrower phones without allowing dates
   or names to collide. */
@media (max-width:370px){
  body .chat-list.cv-list .cv-row,
  body .chat-list.cv-list .cv-row.cv-pinned,
  body .chat-list.cv-list .cv-row.cv-person{
    height:69px!important;
    min-height:69px!important;
    margin-bottom:6px!important;
    padding:7px 8px!important;
    gap:9px!important;
  }
  body .chat-list.cv-list .cv-av,
  body .chat-list.cv-list .cv-av .avatar{
    width:42px!important;
    height:42px!important;
    flex-basis:42px!important;
  }
  body .chat-list.cv-list .cv-body{height:51px!important;}
  body .chat-list.cv-list .cv-name{font-size:14px!important;line-height:17px!important;}
  body .chat-list.cv-list .cv-sub{font-size:11px!important;line-height:14px!important;height:14px!important;}
  body .chat-list.cv-list .cv-last{font-size:12px!important;line-height:15px!important;height:15px!important;}
  body .chat-list.cv-list .cv-time{font-size:9.3px!important;}
}


/* ---- inline style 82 ---- */

/* Requested change only: open conversations use a true full-screen dark canvas,
   hide the bottom navigation completely, and clearly separate incoming/outgoing
   bubble colours. The Messages list, app header and all other sections stay as-is. */

/* Stronger visual separation between received and sent messages. */
body .chat-thread .bubble,
body .chat-thread .msg:not(.mine) .bubble{
  background:linear-gradient(180deg,#28323b 0%,#222b33 100%)!important;
  border:1px solid rgba(157,181,198,.18)!important;
  color:#f4f7f8!important;
  box-shadow:0 5px 16px rgba(0,0,0,.16)!important;
}
body .chat-thread .msg.mine .bubble{
  background:linear-gradient(180deg,#3b6047 0%,#2d4b38 100%)!important;
  border:1px solid rgba(151,205,157,.24)!important;
  color:#ffffff!important;
  box-shadow:0 5px 16px rgba(0,0,0,.18)!important;
}
body .chat-thread .b-author{color:#a8d882!important}
body .chat-thread .msg:not(.mine) .bubble time{color:#aeb9c1!important;font-size:11px!important;opacity:.7!important;margin-top:4px!important;align-self:flex-end!important;line-height:1!important}
body .chat-thread .msg.mine .bubble time{color:#c1d3c5!important}
body .chat-thread .msg.mine .msg-status{color:#d9efd9!important}

/* ---- BUBBLE REFINEMENT: standard readable text, meta stays inside ---- */
body .chat-thread .bubble{
  padding:8px 13px 7px!important;
  border-radius:17px!important;
  box-shadow:0 1px 3px rgba(0,0,0,.18)!important;
  width:max-content!important;max-width:82%!important;
  min-width:0!important;
  display:flex!important;flex-direction:column!important;
}
body .chat-thread .msg{align-items:flex-end!important;gap:6px!important;margin-bottom:3px!important;max-width:100%!important}
body .chat-thread .msg.mine .bubble{align-items:flex-end!important;min-width:150px!important}
body .chat-thread .msg:not(.mine) .bubble{align-items:flex-start!important;border-radius:17px 17px 17px 5px!important;min-width:0!important}
body .chat-thread .msg.mine .bubble{border-radius:17px 17px 5px 17px!important}
/* Standard message text — normal readable size, wraps only on long words/URLs. */
body .chat-thread .b-text{
  font-size:15px!important;line-height:1.35!important;letter-spacing:-.002em!important;
  white-space:pre-wrap!important;word-break:normal!important;overflow-wrap:break-word!important;
  width:max-content!important;max-width:100%!important;align-self:auto!important;margin:0!important;
}
body .chat-thread .b-author{font-size:11.5px!important;font-weight:620!important;margin-bottom:2px!important;letter-spacing:.01em!important;align-self:flex-start!important}
/* META: timestamp + status on one line, bottom-right, and NEVER wider than the
   bubble. It participates in the bubble's intrinsic width so short words like
   "Sure" grow the bubble to fit "9:34 pm · Delivered" instead of overhanging. */
body .chat-thread .b-meta{
  display:flex!important;flex-direction:row!important;align-items:center!important;
  justify-content:flex-end!important;
  gap:6px!important;align-self:stretch!important;margin-top:3px!important;
  min-width:max-content!important;line-height:1!important;flex-wrap:nowrap!important;
  box-sizing:border-box!important;
}
/* The bubble must be at least as wide as the meta line so nothing overhangs. */
body .chat-thread .msg.mine .bubble{padding-right:13px!important}
body .chat-thread .b-meta time{
  display:inline-block!important;font-size:11px!important;line-height:1!important;
  margin:0!important;padding:0!important;opacity:.62!important;white-space:nowrap!important;
}
body .chat-thread .b-meta .msg-status{
  display:inline-block!important;font-size:10.5px!important;font-weight:620!important;
  line-height:1!important;margin:0!important;padding:0!important;opacity:.85!important;white-space:nowrap!important;
}
body .chat-thread .msg-av .avatar{width:36px!important;height:36px!important;font-size:13.5px!important;
  font-weight:800!important;color:#fff!important;letter-spacing:.03em!important;
  border:2px solid rgba(255,255,255,.22)!important;
  box-shadow:0 4px 12px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.28)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.35)!important;}
/* Curated palette — rich, harmonious tones that suit the earthy theme and sit
   well against the dark chat. The white initials keep clean contrast on all of
   them (each colour is deep enough to read white text nicely). */
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="0"]{background:linear-gradient(140deg,#4e9d57,#2c6a36)!important}  /* green */
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="1"]{background:linear-gradient(140deg,#2f9d92,#1c675e)!important}  /* teal */
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="2"]{background:linear-gradient(140deg,#4a90d0,#295a90)!important}  /* blue */
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="3"]{background:linear-gradient(140deg,#7a6fc4,#463a86)!important}  /* indigo */
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="4"]{background:linear-gradient(140deg,#b45ea0,#7a3568)!important}  /* magenta/plum */
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="5"]{background:linear-gradient(140deg,#d0684e,#96382a)!important}  /* red/terracotta */
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="6"]{background:linear-gradient(140deg,#d99a3c,#a06c14)!important}  /* amber */
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="7"]{background:linear-gradient(140deg,#8aa83f,#566a1f)!important}  /* lime/olive */
body .chat-thread .msg-av{width:38px!important;flex-shrink:0!important}
body .chat-thread .chat-scroll{gap:3px!important}

@media (max-width:1023px){
  /* One continuous dark surface from the status-bar area to the home-indicator
     area. This removes the old green strip below the composer. */
  html:has(body.chat-thread-open),
  body.chat-thread-open,
  body.chat-thread-open #app,
  body.chat-thread-open .shell,
  body.chat-thread-open .main,
  body.chat-thread-open .content,
  body.chat-thread-open main.content,
  body.chat-thread-open .page,
  body.chat-thread-open .chat-shell,
  body.chat-thread-open .chat-thread{
    background:#14191f!important;
    background-color:#14191f!important;
  }
  /* Robust fallback (no :has needed): when chat is open the whole page and every
     wrapper is the dark chat colour, edge to edge, and the grain overlay + any
     side gradient is removed so no light/green strip shows on the sides. */
  body.chat-thread-open,
  body.chat-thread-open .shell{background:#14191f!important;background-image:none!important}
  body.chat-thread-open .shell::before,
  body.chat-thread-open .shell::after{display:none!important;background:none!important}

  body.chat-thread-open{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    border-radius:0!important;
    overflow:hidden!important;
  }

  body.chat-thread-open .chat-shell{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:var(--ww-chat-stable-vh,100dvh)!important;
    max-height:var(--ww-chat-stable-vh,100dvh)!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:hidden!important;
    z-index:1000!important;
  }
  body.chat-thread-open .chat-thread{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    border:0!important;
    border-radius:0!important;
    overflow:hidden!important;
  }
  body.chat-thread-open .chat-thread-head,
  body.chat-thread-open .ct-head{
    background:#14191f!important;
    border-bottom:1px solid rgba(255,255,255,.08)!important;
  }
  body.chat-thread-open .chat-scroll{
    background:#10151a!important;
    background-image:none!important;
  }
  body.chat-thread-open .chat-composer{
    flex:0 0 auto!important;
    position:relative!important;
    inset:auto!important;
    margin:0!important;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))!important;
    background:#14191f!important;
    border-top:1px solid rgba(255,255,255,.08)!important;
    box-shadow:none!important;
  }
  body.chat-thread-open .chat-composer::before,
  body.chat-thread-open .chat-composer::after,
  body.chat-thread-open::before,
  body.chat-thread-open::after,
  body.chat-thread-open .main::before,
  body.chat-thread-open .main::after,
  body.chat-thread-open .content::before,
  body.chat-thread-open .content::after,
  body.chat-thread-open .page::before,
  body.chat-thread-open .page::after,
  body.chat-thread-open .chat-shell::before,
  body.chat-thread-open .chat-shell::after{
    display:none!important;
    content:none!important;
    background:none!important;
  }
}


/* ---- inline style 83 ---- */

/* Actual app fix — Messages conversation only. */
.chat-composer textarea.chat-editbox,
#chatInput.chat-editbox{
  box-sizing:border-box!important;
  display:block!important;
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  height:46px!important;
  min-height:46px!important;
  max-height:120px!important;
  padding:11px 15px!important;
  font-family:inherit!important;
  font-size:16px!important;
  line-height:1.35!important;
  white-space:pre-wrap!important;
  word-break:break-word!important;
  resize:none!important;
  overflow-y:hidden!important;
  outline:none!important;
  -webkit-appearance:none!important;
  appearance:none!important;
  caret-color:#eef1f2!important;
}
.chat-composer textarea.chat-editbox::placeholder{color:rgba(255,255,255,.58)!important;opacity:1!important}
.chat-composer textarea.chat-editbox:focus{outline:none!important}

@media(max-width:1023px){
  body.chat-thread-open{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    overflow:hidden!important;
  }
  body.chat-thread-open .chat-shell{
    position:fixed!important;
    top:var(--ww-chat-vv-top,0px)!important;
    left:var(--ww-chat-vv-left,0px)!important;
    right:auto!important;
    bottom:auto!important;
    width:var(--ww-chat-vv-width,100vw)!important;
    height:var(--ww-chat-vv-height,100dvh)!important;
    min-height:var(--ww-chat-vv-height,100dvh)!important;
    max-height:var(--ww-chat-vv-height,100dvh)!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    transform:none!important;
  }
  body.chat-thread-open .chat-thread{
    flex:1 1 0!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
  }
  body.chat-thread-open .chat-thread-head,
  body.chat-thread-open .ct-head{
    flex:0 0 auto!important;
  }
  body.chat-thread-open .chat-scroll{
    flex:1 1 0!important;
    min-height:0!important;
    height:auto!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    padding-bottom:12px!important;
    scroll-padding-bottom:12px!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
  }
  body.chat-thread-open .chat-composer{
    position:relative!important;
    inset:auto!important;
    flex:0 0 auto!important;
    width:100%!important;
    min-height:66px!important;
    margin:0!important;
    padding:9px 12px calc(9px + env(safe-area-inset-bottom,0px))!important;
    align-items:flex-end!important;
    gap:9px!important;
    transform:none!important;
  }
  body.chat-thread-open .chat-composer textarea.chat-editbox{
    height:46px!important;
    min-height:46px!important;
    max-height:min(120px,32vh)!important;
    overflow-y:hidden!important;
    touch-action:manipulation!important;
  }
  body.chat-thread-open .chat-composer .cattach,
  body.chat-thread-open .chat-composer .csend{
    flex:0 0 46px!important;
    width:46px!important;
    height:46px!important;
    align-self:flex-end!important;
    margin:0!important;
  }
  body.chat-thread-open .chat-composer::before,
  body.chat-thread-open .chat-composer::after{display:none!important;content:none!important}
}

/* Client agreement signing-link card */
.agreement-card{padding:18px 18px 16px;background:linear-gradient(155deg,#2c5a34,#1c3a24);color:#f4f7ee;border:0;box-shadow:0 12px 28px -12px rgba(20,50,25,.5)}
.agreement-card .ag-top{display:flex;gap:13px;align-items:flex-start}
.agreement-card .ag-ic{flex-shrink:0;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:rgba(233,196,106,.18);border:1px solid rgba(233,196,106,.4)}
.agreement-card .ag-ic svg{width:20px;height:20px;stroke:#e9c46a}
.agreement-card .ag-head h3{margin:0;font-family:var(--font-display,Georgia,serif);font-size:19px;font-weight:600;color:#fbfdf6}
.agreement-card .ag-head p{margin:4px 0 0;font-size:13px;line-height:1.45;color:rgba(232,240,224,.85)}
.agreement-card .ag-link{margin:14px 0 12px;padding:10px 12px;border-radius:10px;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.12);font-size:12.5px;word-break:break-all;color:#dfead9}
.agreement-card .ag-actions{display:flex;gap:8px;flex-wrap:wrap}
.agreement-card .ag-actions .btn{flex:1;min-width:96px;height:44px}
.agreement-card .ag-actions .btn svg{width:16px;height:16px}
.agreement-card .btn-soft{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.18)}
.agreement-card .ag-empty{margin:14px 0 12px;font-size:13px;color:rgba(232,240,224,.8)}
.agreement-card .ag-edit{margin-top:11px;background:none;border:0;color:#e9c46a;font-weight:700;font-size:12.5px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}

/* ============================================================
   DESKTOP / TABLET MESSAGE LIST — standard, readable, no overlap
   ============================================================ */
@media (min-width:768px){
  body .chat-list.cv-list .cv-row,
  body .chat-list.cv-list .cv-row.cv-pinned,
  body .chat-list.cv-list .cv-row.cv-person{
    height:auto!important;min-height:72px!important;
    display:flex!important;align-items:center!important;
    padding:14px 16px!important;gap:14px!important;border-radius:16px!important;
    margin-top:6px!important;overflow:hidden!important;
  }
  /* avatar: fixed size, never shrinks, never overflows the row */
  body .chat-list.cv-list .cv-av{flex:0 0 auto!important;position:static!important;display:flex!important;align-items:center!important}
  body .chat-list.cv-list .cv-av .avatar{width:50px!important;height:50px!important;font-size:17px!important;flex:0 0 auto!important;position:static!important}
  body .chat-list.cv-list .cv-av .avatar svg{width:22px!important;height:22px!important}
  /* body takes the remaining space and clips its own overflow */
  body .chat-list.cv-list .cv-body{flex:1 1 auto!important;min-width:0!important;display:flex!important;flex-direction:column!important;justify-content:center!important;gap:3px!important;overflow:hidden!important}
  body .chat-list.cv-list .cv-top{display:flex!important;align-items:baseline!important;gap:10px!important;width:100%!important;min-width:0!important}
  body .chat-list.cv-list .cv-name{flex:1 1 auto!important;min-width:0!important;font-size:16.5px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  body .chat-list.cv-list .cv-time{flex:0 0 auto!important;font-size:12.5px!important;white-space:nowrap!important}
  body .chat-list.cv-list .cv-sub{display:block!important;font-size:12.5px!important;color:#8a948a!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  body .chat-list.cv-list .cv-last{font-size:14px!important;line-height:1.35!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  body .chat-list.cv-list .cv-sec{font-size:12px!important;padding:16px 4px 8px!important}
}

/* ============================================================
   MESSAGE REACTIONS — tap a message to reveal a clean quick-bar
   ============================================================ */
/* remove the old floating smile button entirely */
.msg-react-btn{display:none!important}
.msg .bubble{cursor:pointer;position:relative}
/* quick reaction bar that appears above/over the tapped message */
.rx-quickbar{
  position:absolute;bottom:calc(100% + 6px);
  display:flex;align-items:center;gap:2px;
  padding:4px 5px;border-radius:999px;
  background:#ffffff;box-shadow:0 8px 22px rgba(0,0,0,.28),0 0 0 1px rgba(0,0,0,.06);
  z-index:20;animation:rxPop .14s ease both;
}
.msg:not(.mine) .rx-quickbar{left:0}
.msg.mine .rx-quickbar{right:0}
@keyframes rxPop{from{opacity:0;transform:translateY(4px) scale(.94)}to{opacity:1;transform:none}}
.rx-quick{
  width:38px;height:38px;border:0;background:transparent;border-radius:50%;
  font-size:21px;line-height:1;cursor:pointer;display:grid;place-items:center;
  transition:transform .1s ease,background .1s ease;
}
@media(hover:hover){.rx-quick:hover{background:#f0f0f0;transform:scale(1.18)}}
.rx-quick:active{transform:scale(1.05)}
.rx-quick.rx-more{font-size:0}
.rx-quick.rx-more svg{width:18px;height:18px;stroke:#5d6b60}
.rx-quick.rx-more{background:#f2f3ef}
/* dim/highlight the selected message a touch so it's clear which one */
.msg.rx-open .bubble{box-shadow:0 0 0 2px rgba(233,196,106,.55)!important}


/* ---- inline style 84 ---- */

/* Open conversation only: professional, always-visible message composer. */
@media (max-width:1023px){
  body.chat-thread-open{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body.chat-thread-open .chat-shell{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:auto!important;
    bottom:auto!important;
    width:var(--ww370-chat-visible-width,100vw)!important;
    height:var(--ww370-chat-visible-height,100dvh)!important;
    min-height:var(--ww370-chat-visible-height,100dvh)!important;
    max-height:var(--ww370-chat-visible-height,100dvh)!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    transform:none!important;
    contain:layout paint!important;
  }
  body.chat-thread-open .chat-thread{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:max-content minmax(0,1fr) max-content!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
  }
  body.chat-thread-open .chat-thread-head,
  body.chat-thread-open .ct-head{
    grid-row:1!important;
    min-width:0!important;
    flex:none!important;
    position:relative!important;
    z-index:4!important;
  }
  body.chat-thread-open .workphoto-banner{
    grid-row:2!important;
    position:absolute!important;
    top:var(--ww370-thread-head-height,0px)!important;
    z-index:3!important;
  }
  body.chat-thread-open .chat-scroll{
    grid-row:2!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    padding-bottom:14px!important;
    scroll-padding-bottom:14px!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
  }
  body.chat-thread-open .chat-composer{
    grid-row:3!important;
    display:grid!important;
    grid-template-columns:46px minmax(0,1fr) 46px!important;
    align-items:end!important;
    column-gap:9px!important;
    row-gap:8px!important;
    position:relative!important;
    inset:auto!important;
    z-index:50!important;
    width:100%!important;
    min-width:0!important;
    min-height:66px!important;
    margin:0!important;
    padding:9px 12px calc(9px + env(safe-area-inset-bottom,0px))!important;
    background:#14191f!important;
    border-top:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 -10px 28px rgba(0,0,0,.16)!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    transform:none!important;
  }
  body.chat-thread-open.ww370-chat-keyboard-open .chat-composer{
    padding-bottom:9px!important;
  }
  body.chat-thread-open .chat-composer .pending-photos{
    grid-column:1 / -1!important;
    grid-row:1!important;
    min-width:0!important;
  }
  body.chat-thread-open .chat-composer .cattach{
    grid-column:1!important;
  }
  body.chat-thread-open .chat-composer textarea.chat-editbox,
  body.chat-thread-open #chatInput.chat-editbox{
    grid-column:2!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:46px!important;
    min-height:46px!important;
    max-height:min(124px,32vh)!important;
    margin:0!important;
    padding:11px 15px!important;
    border:1.5px solid rgba(151,166,177,.28)!important;
    border-radius:23px!important;
    background:#1c2228!important;
    color:#f5f7f8!important;
    caret-color:#8ecb64!important;
    font-family:inherit!important;
    font-size:16px!important;
    font-weight:500!important;
    line-height:1.42!important;
    letter-spacing:0!important;
    resize:none!important;
    overflow-y:hidden!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    -webkit-user-select:text!important;
    user-select:text!important;
    -webkit-touch-callout:default!important;
    touch-action:manipulation!important;
  }
  body.chat-thread-open .chat-composer textarea.chat-editbox:focus{
    border-color:#5f913f!important;
    box-shadow:0 0 0 4px rgba(92,143,61,.18),inset 0 1px 0 rgba(255,255,255,.03)!important;
    outline:none!important;
  }
  body.chat-thread-open .chat-composer textarea.chat-editbox::placeholder{
    color:rgba(230,235,238,.56)!important;
    opacity:1!important;
  }
  body.chat-thread-open .chat-composer .csend{
    grid-column:3!important;
  }
  body.chat-thread-open .chat-composer .cattach,
  body.chat-thread-open .chat-composer .csend{
    align-self:end!important;
    flex:none!important;
    width:46px!important;
    min-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    margin:0!important;
    border-radius:17px!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
  body.chat-thread-open .chat-composer .cattach{
    background:#1c2228!important;
    border:1px solid rgba(151,166,177,.22)!important;
    color:#4f9d67!important;
  }
  body.chat-thread-open .chat-composer .csend{
    background:linear-gradient(145deg,#72c53d,#4ca82f)!important;
    border:1px solid rgba(255,255,255,.12)!important;
    color:#fff!important;
    box-shadow:0 7px 18px rgba(63,152,43,.25)!important;
  }
}

/* ============================================================
   EMPTY CONVERSATION STATE — polished "no chat selected" panel
   ============================================================ */
.empty-convo{
  height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:40px 32px;max-width:440px;margin:0 auto;
}
.empty-convo .ec-badge{
  width:80px;height:80px;border-radius:24px;display:grid;place-items:center;margin-bottom:22px;
  background:linear-gradient(150deg,#3f6b45,#274d30);
  box-shadow:0 16px 34px -14px rgba(20,50,25,.7), inset 0 1px 0 rgba(255,255,255,.14);
}
.empty-convo .ec-badge svg{width:34px;height:34px;stroke:#e9c46a}
.empty-convo h2{
  margin:0;font-family:var(--font-display,"Fraunces",Georgia,serif);font-weight:600;
  font-size:26px;letter-spacing:-.01em;color:#f4f7ee;
}
.empty-convo>p{
  margin:9px 0 22px;font-size:14.5px;line-height:1.5;color:#9aa9a0;font-weight:500;max-width:340px;
}
.empty-convo .ec-cta{
  display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 24px;border:0;border-radius:13px;cursor:pointer;
  background:linear-gradient(180deg,#5c7a4e,#33481f);color:#fff;font-family:var(--font-body);
  font-size:15px;font-weight:800;box-shadow:0 12px 26px -10px rgba(40,60,30,.6),inset 0 1px 0 rgba(255,255,255,.2);
  transition:transform .12s ease;
}
.empty-convo .ec-cta svg{width:17px;height:17px;stroke:#fff}
@media(hover:hover){.empty-convo .ec-cta:hover{transform:translateY(-1px)}}
.empty-convo .ec-cta:active{transform:translateY(0) scale(.99)}
.empty-convo .ec-tips{
  margin-top:34px;width:100%;display:flex;flex-direction:column;gap:12px;
  border-top:1px solid rgba(255,255,255,.08);padding-top:24px;
}
.empty-convo .ec-tip{
  display:flex;align-items:center;gap:13px;text-align:left;
  font-size:13.5px;font-weight:600;color:#b6c2b6;
}
.empty-convo .ec-tip svg{
  flex-shrink:0;width:20px;height:20px;stroke:#7c9a72;
  background:rgba(124,154,114,.14);padding:8px;box-sizing:content-box;border-radius:10px;
}

/* Clean structured notification detail (Property / Agent / Due / Status rows) */
.notif-detail{display:flex;flex-direction:column;gap:7px;margin:2px 0 4px}
.notif-detail .nd-row{display:flex;gap:8px;align-items:baseline;line-height:1.35}
.notif-detail .nd-k{flex:0 0 auto;min-width:64px;font-size:11.5px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:#8a7a52}
.notif-detail .nd-v{flex:1 1 auto;font-size:15px;font-weight:600;color:#26302a}
.notif-detail .nd-line{font-size:14.5px;color:#3a463c;line-height:1.4}
.notif-item.important .notif-detail .nd-v{color:#1f2a22}

/* Client signed-agreement panel */
.cd-agreement{border:1.5px solid rgba(58,93,59,.2);border-radius:14px;padding:14px;margin-bottom:14px;background:linear-gradient(160deg,#f3f6ec,#eef2e4)}
.cd-agreement.is-signed{border-color:rgba(58,120,70,.4);background:linear-gradient(160deg,#eaf5ea,#e0efe1)}
.cd-agreement .cda-top{display:flex;gap:12px;align-items:flex-start}
.cd-agreement .cda-ic{flex-shrink:0;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:rgba(58,93,59,.12);color:#3a5d3b}
.cd-agreement.is-signed .cda-ic{background:rgba(58,140,74,.18);color:#2f7a3a}
.cd-agreement .cda-ic svg{width:19px;height:19px}
.cd-agreement .cda-copy strong{display:block;font-size:15px;color:#1e2617;font-weight:800}
.cd-agreement .cda-copy em{display:block;font-style:normal;font-size:12.5px;color:#6f7c60;margin-top:2px;line-height:1.4}
.cd-agreement .cda-files{margin:12px 0 4px;display:flex;flex-direction:column;gap:6px}
.cd-agreement .cda-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.cd-agreement .cda-actions .btn{flex:1;min-width:150px}

/* Employment agreement — read-full-terms collapsible in the sign modal */
.agreement-read{border:1px solid rgba(58,93,59,.2);border-radius:12px;margin:4px 0 12px;background:#f6f8f0;overflow:hidden}
.agreement-read summary{list-style:none;cursor:pointer;padding:12px 14px;font-weight:800;font-size:13.5px;color:#2f5a34;display:flex;align-items:center;gap:8px}
.agreement-read summary::-webkit-details-marker{display:none}
.agreement-read summary svg{width:16px;height:16px;stroke:#2f5a34}
.agreement-read[open] summary{border-bottom:1px solid rgba(58,93,59,.15)}
.agreement-terms{max-height:300px;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px;font-size:12.5px;line-height:1.55;color:#3a463c}


/* ============================================================
   V377 — MANUAL EMPLOYMENT AGREEMENT DOWNLOAD / RETURN WORKFLOW
   ============================================================ */
.manual-agreement-card{align-items:flex-start;flex-wrap:wrap;padding:15px 16px!important}
.manual-agreement-card>.doc-ic{margin-top:2px}
.manual-agreement-card>.dc-body{min-width:180px}
.doc-card-actions{flex:1 0 100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:11px;padding-top:11px;border-top:1px solid rgba(151,118,66,.16)}
.doc-card-actions .btn{min-width:0;height:39px;padding:0 10px;font-size:11.8px;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:11px}
.doc-card-actions .btn svg{width:15px;height:15px;flex:0 0 auto}
.manual-contract-choice{display:grid;grid-template-columns:42px 1fr;gap:10px 12px;margin:12px 0 14px;padding:13px;border:1px solid rgba(56,92,61,.18);border-radius:14px;background:linear-gradient(145deg,#f2f7ef,#e8f0e6)}
.mcc-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:#315d36;background:rgba(49,93,54,.11)}
.mcc-icon svg{width:20px;height:20px}
.mcc-copy{min-width:0}
.mcc-copy strong{display:block;color:#213126;font-size:14px;font-weight:850;line-height:1.25}
.mcc-copy span{display:block;margin-top:3px;color:#647067;font-size:12.2px;line-height:1.45}
.mcc-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mcc-actions .btn{height:40px;min-width:0;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}
.mcc-actions .btn svg{width:15px;height:15px}
.manual-return-head{display:flex;gap:12px;align-items:center;padding:13px;border:1px solid rgba(49,93,54,.15);border-radius:14px;background:#f4f7f1;margin-bottom:13px}
.mrh-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:#dfeade;color:#315d36;flex:0 0 auto}
.mrh-icon svg{width:21px;height:21px}
.manual-return-head strong{display:block;color:#202c23;font-size:15px;font-weight:850}
.manual-return-head span{display:block;margin-top:3px;color:#69746b;font-size:12px;line-height:1.35}
.manual-steps{display:grid;gap:7px;margin:4px 0 13px}
.manual-steps>div{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:10px;background:#fafbf8;border:1px solid #e7ebe5}
.manual-steps b{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#345f39;color:white;font-size:11px;flex:0 0 auto}
.manual-steps span{color:#3c4740;font-size:12.5px;font-weight:650}
.manual-return-drop{min-height:108px;border:1.5px dashed rgba(49,93,54,.35)!important;background:linear-gradient(145deg,#f9fbf7,#eef4eb)!important}
.manual-return-drop svg{width:27px!important;height:27px!important;color:#315d36}
.manual-return-drop span{font-weight:800!important;color:#2b4430!important}
.manual-access-note{display:flex;align-items:flex-start;gap:9px;margin-top:12px;padding:10px 11px;border-radius:11px;background:#eef4ed;color:#465149;font-size:12px;line-height:1.4}
.manual-access-note svg{width:18px;height:18px;color:#37633d;flex:0 0 auto;margin-top:1px}
.manual-returned-banner{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;margin:4px 0 12px;border:1px solid rgba(43,112,57,.2);border-radius:13px;background:linear-gradient(145deg,#edf7ee,#e5f1e5);color:#2d6835}
.manual-returned-banner>svg{width:21px;height:21px;flex:0 0 auto;margin-top:1px}
.manual-returned-banner strong{display:block;color:#24562b;font-size:14px;font-weight:850}
.manual-returned-banner span{display:block;margin-top:3px;color:#5f6c62;font-size:12.2px;line-height:1.4}
.returned-file-summary{display:flex;align-items:center;gap:11px;margin-top:11px;padding:11px;border:1px solid #e5e9e4;border-radius:12px;background:#fafbf9}
.rfs-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#e5eee4;color:#315d36;flex:0 0 auto}
.rfs-icon svg{width:18px;height:18px}
.returned-file-summary strong{display:block;color:#273129;font-size:13px;overflow-wrap:anywhere}
.returned-file-summary small{display:block;margin-top:2px;color:#7b857c;font-size:11px}
.manual-replace{margin-top:10px;padding:0;border:0;background:none;color:#3b6640;font:inherit;font-size:12.5px;font-weight:800;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.manual-replace svg{width:15px;height:15px}
@media(max-width:620px){
  .doc-card-actions{grid-template-columns:1fr 1fr}
  .doc-card-actions .btn:first-child{grid-column:1/-1}
}
@media(max-width:390px){
  .manual-agreement-card{padding:13px!important}
  .doc-card-actions{gap:7px}
  .doc-card-actions .btn{font-size:11px;padding:0 7px}
  .mcc-actions{grid-template-columns:1fr}
}


/* ---- inline style 85 ---- */

/* ============================================================
   v379 — Timesheet entry redesign only
   Compact, readable and overlap-proof on mobile. Other modals/pages untouched.
   ============================================================ */
body[data-modal-type="record"] #modalHost{overflow:hidden!important}
body[data-modal-type="record"] .modal-overlay{
  align-items:center!important;
  justify-content:center!important;
  padding:18px!important;
  background:rgba(10,24,15,.86)!important;
  touch-action:none!important;
}
body[data-modal-type="record"] .record-entry-modal{
  width:min(100%,680px)!important;
  max-width:680px!important;
  height:min(92dvh,820px)!important;
  max-height:min(92dvh,820px)!important;
  border-radius:26px!important;
  background:#f8f5ec!important;
  border:1px solid rgba(61,82,58,.14)!important;
  box-shadow:0 26px 70px rgba(5,20,10,.36)!important;
  overflow:hidden!important;
}
body[data-modal-type="record"] .record-entry-modal .modal-head{
  min-height:66px!important;
  padding:15px 20px 12px!important;
  background:linear-gradient(180deg,#fffdf8,#f5f0e5)!important;
  border-bottom:1px solid rgba(53,75,51,.10)!important;
  flex:0 0 auto!important;
}
body[data-modal-type="record"] .record-entry-modal .modal-head h2{
  font-size:24px!important;
  line-height:1.1!important;
  font-weight:650!important;
  color:#18271c!important;
}
body[data-modal-type="record"] .record-entry-modal .modal-x{
  width:42px!important;height:42px!important;border-radius:14px!important;
  font-size:27px!important;background:#eeeadf!important;color:#627064!important;
}
body[data-modal-type="record"] .record-entry-modal .modal-body{
  padding:14px 18px 10px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
}
body[data-modal-type="record"] .record-entry-modal .modal-foot{
  min-height:70px!important;
  margin:0!important;
  padding:10px 18px calc(12px + var(--safe-b))!important;
  gap:10px!important;
  background:#f1ecdf!important;
  border-top:1px solid rgba(53,75,51,.11)!important;
  box-shadow:0 -10px 24px rgba(30,45,31,.07)!important;
}
body[data-modal-type="record"] .record-entry-modal .modal-foot .btn{
  height:48px!important;border-radius:15px!important;font-size:14px!important;font-weight:900!important;
}
body[data-modal-type="record"] .te-summary-card{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:14px!important;
  min-height:94px!important;
  margin:0 0 10px!important;
  padding:16px 18px!important;
  border-radius:20px!important;
  background:linear-gradient(135deg,#2f7545 0%,#164d2a 72%,#0f3d22 100%)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  box-shadow:0 11px 25px rgba(23,72,39,.22),inset 0 1px 0 rgba(255,255,255,.14)!important;
  color:#fff!important;
  overflow:hidden!important;
}
body[data-modal-type="record"] .te-summary-main{min-width:0!important;display:flex!important;align-items:center!important;gap:9px 10px!important;flex-wrap:wrap!important}
body[data-modal-type="record"] .te-summary-eyebrow{
  flex:1 0 100%!important;font-size:11px!important;line-height:1!important;font-weight:900!important;
  letter-spacing:.09em!important;text-transform:uppercase!important;color:rgba(238,248,237,.76)!important;
}
body[data-modal-type="record"] .te-client{
  min-width:0!important;max-width:100%!important;font-family:var(--font-display)!important;
  font-size:20px!important;line-height:1.08!important;font-weight:650!important;color:#fff!important;
  overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
}
body[data-modal-type="record"] .te-status{
  flex:0 0 auto!important;margin:0!important;padding:5px 10px!important;border-radius:999px!important;
  font-size:11px!important;line-height:1!important;font-weight:900!important;
}
body[data-modal-type="record"] .te-hours{
  position:static!important;display:grid!important;justify-items:end!important;align-content:center!important;
  min-width:82px!important;text-align:right!important;color:#fff!important;
}
body[data-modal-type="record"] .te-hours strong{font-size:35px!important;line-height:.95!important;font-weight:900!important;letter-spacing:-.035em!important}
body[data-modal-type="record"] .te-hours span{margin-top:6px!important;font-size:10px!important;line-height:1!important;font-weight:900!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:rgba(240,248,238,.70)!important}
body[data-modal-type="record"] .te-variance{
  display:flex!important;align-items:center!important;min-height:40px!important;
  margin:0 0 11px!important;padding:9px 12px!important;border-radius:13px!important;
  font-size:12.3px!important;line-height:1.3!important;font-weight:800!important;
  overflow-wrap:anywhere!important;
}
body[data-modal-type="record"] .te-form-grid{display:grid!important;gap:10px!important;min-width:0!important}
body[data-modal-type="record"] .record-entry-modal .field{
  min-width:0!important;margin:0!important;gap:6px!important;
}
body[data-modal-type="record"] .record-entry-modal .field>label{
  margin:0!important;font-size:12.5px!important;line-height:1.1!important;font-weight:900!important;color:#26372a!important;
}
body[data-modal-type="record"] .te-two-col{
  display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important;min-width:0!important;
}
body[data-modal-type="record"] .record-entry-modal .input,
body[data-modal-type="record"] .record-entry-modal select.input{
  box-sizing:border-box!important;width:100%!important;min-width:0!important;height:48px!important;
  margin:0!important;padding:0 13px!important;border-radius:14px!important;
  border:1px solid rgba(51,73,50,.17)!important;background:#fffdf7!important;
  color:#1f2c22!important;font-size:15.5px!important;font-weight:750!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 2px 7px rgba(32,47,33,.035)!important;
}
body[data-modal-type="record"] .record-entry-modal select.input{padding-right:46px!important}
body[data-modal-type="record"] .record-entry-modal input[type="date"]{-webkit-appearance:none!important;appearance:none!important}
body[data-modal-type="record"] .record-entry-modal textarea.input{
  height:56px!important;min-height:56px!important;max-height:76px!important;
  padding:10px 12px!important;line-height:1.35!important;resize:none!important;
}
body[data-modal-type="record"] .ts-client-picker-compact{display:grid!important;gap:8px!important;min-width:0!important}
body[data-modal-type="record"] .ts-client-compact-head{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;align-items:stretch!important;min-width:0!important;
}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{
  min-width:0!important;min-height:58px!important;padding:10px 12px!important;border-radius:14px!important;
  background:linear-gradient(135deg,#eef4e8,#f7f1e5)!important;border:1px solid rgba(54,82,52,.14)!important;
  box-shadow:none!important;display:flex!important;flex-direction:column!important;justify-content:center!important;
}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected strong{
  font-size:14.5px!important;line-height:1.15!important;font-weight:900!important;color:#213425!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected span{
  margin-top:3px!important;font-size:11.5px!important;line-height:1.15!important;color:#6a756b!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
body[data-modal-type="record"] .ts-client-change{
  width:76px!important;min-height:58px!important;border-radius:14px!important;border:1px solid rgba(47,91,51,.18)!important;
  background:#e4eee0!important;color:#2d5932!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;
  font-size:10.5px!important;font-weight:900!important;
}
body[data-modal-type="record"] .ts-client-change svg{width:17px!important;height:17px!important;stroke-width:2.3!important}
body[data-modal-type="record"] .ts-client-change-panel{
  display:none!important;gap:7px!important;padding:9px!important;border-radius:15px!important;
  background:#eee9dc!important;border:1px solid rgba(52,73,50,.12)!important;
}
body[data-modal-type="record"] .ts-client-change-panel.open{display:grid!important}
body[data-modal-type="record"] .ts-client-change-panel .ts-client-search{height:43px!important;border-radius:12px!important;background:#fffdf7!important}
body[data-modal-type="record"] .ts-client-change-panel .ts-client-results{max-height:150px!important}
body[data-modal-type="record"] .ts-client-change-panel .ts-add-client-toggle{height:38px!important;font-size:12px!important}
body[data-modal-type="record"] .te-save-hint{
  margin:9px 2px 0!important;padding:0!important;font-size:11.2px!important;line-height:1.35!important;color:#6c766d!important;
}
body[data-modal-type="record"] .loc-panel,
body[data-modal-type="record"] .proof-panel{margin:0 0 10px!important}

@media(max-width:720px){
  body[data-modal-type="record"] .modal-overlay{align-items:stretch!important;padding:0!important}
  body[data-modal-type="record"] .record-entry-modal{
    width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;
    border-radius:0!important;border:0!important;
  }
  body[data-modal-type="record"] .record-entry-modal .modal-head{
    min-height:62px!important;padding:12px 16px 9px!important;
  }
  body[data-modal-type="record"] .record-entry-modal .modal-head h2{font-size:22px!important}
  body[data-modal-type="record"] .record-entry-modal .modal-x{width:40px!important;height:40px!important}
  body[data-modal-type="record"] .record-entry-modal .modal-body{padding:11px 14px 8px!important}
  body[data-modal-type="record"] .record-entry-modal .modal-foot{min-height:66px!important;padding:9px 14px calc(10px + var(--safe-b))!important}
  body[data-modal-type="record"] .record-entry-modal .modal-foot .btn{height:46px!important;font-size:13.5px!important}
  body[data-modal-type="record"] .te-summary-card{min-height:88px!important;padding:14px 15px!important;border-radius:18px!important;margin-bottom:9px!important}
  body[data-modal-type="record"] .te-client{font-size:18px!important}
  body[data-modal-type="record"] .te-hours strong{font-size:32px!important}
  body[data-modal-type="record"] .te-variance{min-height:38px!important;margin-bottom:9px!important;padding:8px 10px!important;font-size:11.7px!important}
  body[data-modal-type="record"] .te-form-grid{gap:9px!important}
  body[data-modal-type="record"] .record-entry-modal .input,
  body[data-modal-type="record"] .record-entry-modal select.input{height:46px!important;font-size:15px!important}
  body[data-modal-type="record"] .record-entry-modal textarea.input{height:52px!important;min-height:52px!important}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected,
  body[data-modal-type="record"] .ts-client-change{min-height:56px!important}
  body[data-modal-type="record"] .te-save-hint{font-size:10.7px!important;margin-top:7px!important}
}
@media(max-width:390px){
  body[data-modal-type="record"] .record-entry-modal .modal-body{padding-left:12px!important;padding-right:12px!important}
  body[data-modal-type="record"] .te-two-col{gap:8px!important}
  body[data-modal-type="record"] .te-summary-card{grid-template-columns:minmax(0,1fr) 74px!important;gap:9px!important}
  body[data-modal-type="record"] .te-client{font-size:16.5px!important}
  body[data-modal-type="record"] .te-hours strong{font-size:29px!important}
  body[data-modal-type="record"] .ts-client-change{width:68px!important}
  body[data-modal-type="record"] .record-entry-modal .input,
  body[data-modal-type="record"] .record-entry-modal select.input{font-size:14px!important;padding-left:10px!important;padding-right:10px!important}
  body[data-modal-type="record"] .record-entry-modal select.input{padding-right:42px!important}
}
@media(max-width:360px){
  body[data-modal-type="record"] .te-two-col{grid-template-columns:1fr!important}
  body[data-modal-type="record"] .record-entry-modal .modal-body{overflow-y:auto!important}
}


/* ---- inline style 86 ---- */

/* v380 — Timesheet entry action bar only. Compact, balanced and clear. */
body[data-modal-type="record"] .record-entry-modal .modal-foot{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  min-height:62px!important;
  padding:8px 18px calc(9px + var(--safe-b))!important;
}
body[data-modal-type="record"] .te-footer-actions{
  width:100%!important;
  display:grid!important;
  grid-template-columns:112px minmax(164px,190px)!important;
  justify-content:end!important;
  align-items:center!important;
  gap:10px!important;
}
body[data-modal-type="record"] .te-footer-actions .btn{
  width:100%!important;
  height:44px!important;
  min-height:44px!important;
  margin:0!important;
  padding:0 15px!important;
  border-radius:14px!important;
  font-size:13.5px!important;
  font-weight:900!important;
  line-height:1!important;
  white-space:nowrap!important;
  box-shadow:none!important;
}
body[data-modal-type="record"] .te-cancel-action{
  background:#fffdf7!important;
  color:#315039!important;
  border:1px solid rgba(48,76,53,.18)!important;
}
body[data-modal-type="record"] .te-save-action{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  color:#fff!important;
  background:linear-gradient(135deg,#356746,#1e4c31)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  box-shadow:0 6px 14px rgba(25,65,40,.18)!important;
}
body[data-modal-type="record"] .te-save-action svg{
  width:16px!important;
  height:16px!important;
  flex:0 0 auto!important;
  stroke:currentColor!important;
  stroke-width:2.4!important;
}
body[data-modal-type="record"] .te-save-action:active,
body[data-modal-type="record"] .te-cancel-action:active{transform:scale(.985)!important}
@media(max-width:720px){
  body[data-modal-type="record"] .record-entry-modal .modal-foot{
    min-height:60px!important;
    padding:7px 14px calc(8px + var(--safe-b))!important;
  }
  body[data-modal-type="record"] .te-footer-actions{
    grid-template-columns:104px minmax(154px,178px)!important;
    gap:9px!important;
  }
  body[data-modal-type="record"] .te-footer-actions .btn{
    height:42px!important;min-height:42px!important;border-radius:13px!important;font-size:13px!important;
  }
}
@media(max-width:360px){
  body[data-modal-type="record"] .te-footer-actions{grid-template-columns:92px minmax(148px,1fr)!important}
  body[data-modal-type="record"] .te-footer-actions .btn{padding-left:11px!important;padding-right:11px!important}
}

/* ============================================================
   MISSED TIMESHEET ENTRY — compact, fits one screen, no bounce
   ============================================================ */
.mr2{display:flex;flex-direction:column;gap:11px}
.mr2-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 14px;border-radius:14px;
  background:linear-gradient(150deg,#2f5a34,#1c3a24);color:#fff}
.mr2-banner-tx{min-width:0;display:flex;flex-direction:column;gap:1px}
.mr2-banner-tx strong{font-family:var(--font-display,Georgia,serif);font-size:16px;font-weight:600;line-height:1.2;color:#fbfdf6}
.mr2-banner-tx span{font-size:12px;color:rgba(220,236,222,.82);font-weight:600}
.mr2-pill{flex:0 0 auto;padding:5px 11px;border-radius:999px;font-size:11px;font-weight:800;
  background:#e9c46a;color:#3a2c08;letter-spacing:.01em}
.mr2-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.mr2-field label{font-size:12px;font-weight:800;color:#3a4a3c;letter-spacing:.01em;line-height:1.2}
.mr2-field label em{font-style:normal;font-weight:600;color:#8a9483}
.mr2 .input{height:46px;font-size:15px;line-height:1.2;padding:0 13px;border-radius:12px}
.mr2 select.input{-webkit-appearance:none;appearance:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;line-height:44px;
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%235d6b60" stroke-width="2.4"><path d="M6 9l6 6 6-6"/></svg>');
  background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:36px}
.mr2 textarea.mr2-notes{height:auto;min-height:52px;padding:10px 13px;line-height:1.4;resize:none}
.mr2-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
/* the client picker inside keeps tidy */
.mr2 .te-client-picker,.mr2 .client-pick-wrap{margin:0}
/* NO BOUNCE: this modal type is static — no entrance re-animation, no transform shift */
body[data-modal-type="missed-record"] .modal{animation:none!important;transform:translateZ(0)!important}
body[data-modal-type="missed-record"] .modal-body{overscroll-behavior:contain}
/* responsive: bottom-sheet on phones, sized to fit without scrolling where possible */
@media(max-width:600px){
  .mr2{gap:9px}
  .mr2 .input{height:44px;font-size:14.5px}
  .mr2-banner{padding:10px 13px}
  .mr2-banner-tx strong{font-size:15px}
}
@media(max-width:600px) and (max-height:760px){
  .mr2{gap:7px}
  .mr2 .input{height:42px}
  .mr2 textarea.mr2-notes{min-height:44px}
  .mr2-banner{padding:9px 12px}
}

/* Long-press reaction on updates */
.upd-longpress{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:pointer;border-radius:8px;transition:background .15s}
.upd-longpress:active{background:rgba(233,196,106,.12)}
.upd-react-hint{font-size:11.5px;color:#a2ab98;font-style:italic}
.upd-quickbar{position:relative;display:inline-flex;align-items:center;gap:2px;margin-top:8px;padding:4px 5px;border-radius:999px;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.05);animation:rxPop .14s ease both}

/* Admin-entry green pill + no-bounce (reuses .mr2 layout) */
.mr2-pill-green{background:#bfe3c0;color:#1f4a26}
body[data-modal-type="admin-entry"] .modal{animation:none!important;transform:translateZ(0)!important}
body[data-modal-type="admin-entry"] .modal-body{overscroll-behavior:contain}


/* ---- inline style 87 ---- */

/* Green is now reserved for presence. The online marker is intentionally
   larger and ringed so it reads clearly without covering the initials. */
body .chat-list.cv-list .cv-online-dot{
  position:absolute!important;
  right:-4px!important;
  bottom:-3px!important;
  top:auto!important;
  width:13px!important;
  height:13px!important;
  border-radius:999px!important;
  background:#69cf4a!important;
  border:3px solid #171c20!important;
  box-shadow:0 0 0 1px rgba(105,207,74,.36),0 2px 7px rgba(0,0,0,.45)!important;
  z-index:3!important;
}
body .chat-list.cv-list .cv-online-text{
  color:#78d45a!important;
  font-weight:800!important;
}
/* Red numeric badge = unread messages. This replaces the previous tiny green
   unread dot, which could be mistaken for online status. */
body .chat-list.cv-list .cv-unread-dot{display:none!important}
body .chat-list.cv-list .cv-unread-count{
  flex:0 0 auto!important;
  min-width:20px!important;
  height:20px!important;
  padding:0 6px!important;
  margin-left:auto!important;
  border-radius:999px!important;
  display:inline-grid!important;
  place-items:center!important;
  background:#df454b!important;
  color:#fff!important;
  border:2px solid #171c20!important;
  box-shadow:0 2px 8px rgba(223,69,75,.28)!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:-.02em!important;
}
body .chat-list.cv-list .cv-row.cv-unread{
  border-color:rgba(223,69,75,.28)!important;
  box-shadow:inset 3px 0 0 #df454b,0 3px 9px -8px rgba(0,0,0,.95)!important;
}
body .chat-list.cv-list .cv-row.cv-unread .cv-last{
  color:#f3f5f5!important;
  font-weight:720!important;
}
body .chat-list.cv-list .cv-top{overflow:visible!important}
@media(max-width:430px){
  body .chat-list.cv-list .cv-online-dot{width:14px!important;height:14px!important;right:-4px!important;bottom:-4px!important}
  body .chat-list.cv-list .cv-unread-count{min-width:21px!important;height:21px!important;font-size:10.5px!important;padding:0 6px!important}
}


/* ---- inline style 88 ---- */

body .chat-list.cv-list .cv-top{align-items:center!important;gap:8px!important;}
body .chat-list.cv-list .cv-meta-right{margin-left:auto!important;display:inline-flex!important;align-items:center!important;gap:7px!important;flex:0 0 auto!important;min-width:max-content!important;}
body .chat-list.cv-list .cv-row.cv-unread{background:linear-gradient(180deg,#1a2025 0%,#171d21 100%)!important;border-color:rgba(255,255,255,.13)!important;box-shadow:0 8px 22px rgba(0,0,0,.18)!important;}
body .chat-list.cv-list .cv-row.cv-unread .cv-name{font-weight:950!important;color:#fff!important;}
body .chat-list.cv-list .cv-row.cv-unread .cv-sub{font-weight:620!important;color:#c8ced2!important;}
body .chat-list.cv-list .cv-row.cv-unread .cv-last{font-weight:850!important;color:#f3f5f6!important;}
body .chat-list.cv-list .cv-row.cv-unread .cv-time{font-weight:850!important;color:#eef1f3!important;}
body .chat-list.cv-list .cv-row.cv-read{background:linear-gradient(180deg,#171c20 0%,#151a1e 100%)!important;border-color:rgba(255,255,255,.08)!important;box-shadow:none!important;}
body .chat-list.cv-list .cv-row.cv-read .cv-name{font-weight:620!important;color:#c3c9cd!important;}
body .chat-list.cv-list .cv-row.cv-read .cv-sub{font-weight:560!important;color:#90999f!important;}
body .chat-list.cv-list .cv-row.cv-read .cv-last{font-weight:520!important;color:#929ca1!important;}
body .chat-list.cv-list .cv-row.cv-read .cv-time{font-weight:650!important;color:#899398!important;}
body .chat-list.cv-list .cv-unread-count{display:inline-grid!important;place-items:center!important;min-width:18px!important;height:18px!important;padding:0 5px!important;border-radius:999px!important;background:#de4e58!important;color:#fff!important;border:1px solid rgba(255,255,255,.18)!important;box-shadow:0 2px 7px rgba(222,78,88,.22)!important;font-size:9.5px!important;line-height:1!important;font-weight:900!important;}
body .chat-list.cv-list .cv-unread-dot{display:none!important;}
body .chat-list.cv-list .cv-online-dot{background:#69cf4a!important;}
@media(max-width:430px){body .chat-list.cv-list .cv-meta-right{gap:6px!important;}body .chat-list.cv-list .cv-unread-count{min-width:18px!important;height:18px!important;font-size:9px!important;}}


/* ---- inline style 89 ---- */

@media (min-width:1024px){
  /* Keep the desktop roster responsive even with large teams and busy weeks. */
  body .rwg-wrap{
    scroll-behavior:auto!important;
    overscroll-behavior:contain!important;
    contain:layout paint style!important;
    box-shadow:0 2px 10px rgba(20,40,22,.06)!important;
    -webkit-overflow-scrolling:auto!important;
  }
  body .rwg-grid{
    grid-template-columns:178px repeat(7,minmax(224px,1fr))!important;
    min-width:1746px!important;
  }
  body .rwg-cell{
    contain:paint style!important;
    padding:5px!important;
    gap:4px!important;
  }
  body .rwg-name{contain:paint style!important;}
  body .rwg-cell .rgc,
  body .rwg-cell .rgc:hover{
    transform:none!important;
    transition:none!important;
    animation:none!important;
    filter:none!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    box-shadow:0 2px 6px rgba(20,35,24,.13)!important;
  }
  body .rwg-cell .rgc-main{padding:5px 8px!important;}
  body .rwg-cell .rgc-row1{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:5px!important;
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  body .rwg-cell .rgc-time{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    height:22px!important;
    padding:0 7px!important;
    font-size:11px!important;
    letter-spacing:-.035em!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
    justify-content:center!important;
  }
  body .rwg-cell .rgc-dur{
    min-width:max-content!important;
    width:auto!important;
    height:22px!important;
    padding:0 6px!important;
    font-size:9.5px!important;
    letter-spacing:-.02em!important;
    white-space:nowrap!important;
  }
  body .rwg-cell .rgc-row2{margin-top:3px!important;min-width:0!important;}
  body .rwg-cell .rgc-client{font-size:13.5px!important;line-height:1.15!important;}
  body .rwg-dayadd,body .rwg-cell-add,body .rgc-tools{transition:none!important;}
  body .rwg-cell .rgc-tool{transition:none!important;filter:none!important;}
}
@media (min-width:1024px) and (max-width:1399px){
  body .rwg-grid{grid-template-columns:168px repeat(7,minmax(214px,1fr))!important;min-width:1666px!important;}
  body .rwg-cell .rgc-time{font-size:10.6px!important;padding:0 6px!important;}
  body .rwg-cell .rgc-dur{font-size:9.2px!important;padding:0 5px!important;}
}


/* ---- inline style 90 ---- */

@media (min-width:1024px){
  /* Desktop Messages only. Reset the accumulated mobile/card overrides so the
     two-pane layout has one predictable sizing system and nothing overlaps. */
  body:has(.chat-shell) .content,
  body:has(.chat-shell) main.content{
    min-height:0!important;
    overflow:hidden!important;
    padding:14px 18px 18px!important;
    background:#070a0c!important;
  }
  body:has(.chat-shell) .content > .page,
  body:has(.chat-shell) main.content > .page{
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  body:has(.chat-shell) .section-head{display:none!important;}

  body .chat-shell{
    display:grid!important;
    grid-template-columns:minmax(370px,410px) minmax(0,1fr)!important;
    grid-template-rows:minmax(0,1fr)!important;
    width:100%!important;
    max-width:none!important;
    height:calc(100dvh - 146px)!important;
    min-height:590px!important;
    max-height:calc(100dvh - 146px)!important;
    margin:0!important;
    padding:0!important;
    gap:0!important;
    overflow:hidden!important;
    border:1px solid rgba(255,255,255,.09)!important;
    border-radius:22px!important;
    background:#0c1013!important;
    box-shadow:0 18px 45px rgba(0,0,0,.24)!important;
    contain:layout paint!important;
  }

  /* Conversation list */
  body .chat-list.cv-list{
    display:grid!important;
    grid-template-rows:44px 46px minmax(0,1fr)!important;
    width:100%!important;
    min-width:0!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    padding:12px!important;
    margin:0!important;
    gap:9px!important;
    overflow:hidden!important;
    border:0!important;
    border-right:1px solid rgba(255,255,255,.08)!important;
    border-radius:22px 0 0 22px!important;
    background:linear-gradient(180deg,#0d1215 0%,#090d10 100%)!important;
    box-sizing:border-box!important;
    contain:layout paint!important;
  }
  body .chat-list.cv-list .cv-head{
    position:static!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    width:100%!important;
    height:44px!important;
    min-height:44px!important;
    margin:0!important;
    padding:0 2px!important;
    gap:12px!important;
    overflow:visible!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body .chat-list.cv-list .cv-head::before,
  body .chat-list.cv-list .cv-head::after{display:none!important;content:none!important;}
  body .chat-list.cv-list .cv-head-label{
    font-family:var(--font-body,"Inter Tight",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)!important;
    font-size:22px!important;
    line-height:1!important;
    font-weight:900!important;
    color:#f4f6f7!important;
    letter-spacing:-.02em!important;
  }
  body .chat-list.cv-list .cv-new{
    position:static!important;
    flex:0 0 40px!important;
    width:40px!important;
    min-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    margin:0!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    border-radius:12px!important;
    border:1px solid rgba(137,213,91,.28)!important;
    background:linear-gradient(145deg,#72bd49,#4a982f)!important;
    color:#fff!important;
    box-shadow:0 8px 18px rgba(68,149,45,.18)!important;
  }
  body .chat-list.cv-list .cv-search{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    height:46px!important;
    min-height:46px!important;
    margin:0!important;
    padding:0 42px 0 40px!important;
    overflow:hidden!important;
    border:1px solid rgba(255,255,255,.09)!important;
    border-radius:13px!important;
    background:#171d21!important;
    box-shadow:none!important;
    box-sizing:border-box!important;
  }
  body .chat-list.cv-list .cv-search input{
    width:100%!important;
    min-width:0!important;
    height:44px!important;
    padding:0!important;
    border:0!important;
    outline:0!important;
    background:transparent!important;
    color:#eef1f3!important;
    font-size:14px!important;
    font-weight:650!important;
  }
  body .chat-list.cv-list .cv-search-ic{left:13px!important;}
  body .chat-list.cv-list .cv-filter{right:6px!important;width:32px!important;height:32px!important;}

  body .chat-list.cv-list .cv-threads{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    /* bottom value clears the fixed nav bar + safe area (see cv-threads rule) */
    padding:0 2px calc(88px + env(safe-area-inset-bottom, 0px))!important;
    gap:8px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    scrollbar-gutter:stable!important;
    contain:layout paint!important;
  }
  body .chat-list.cv-list .cv-sec,
  body .chat-list.cv-list .cv-people-label{
    position:static!important;
    flex:0 0 auto!important;
    width:100%!important;
    height:auto!important;
    min-height:24px!important;
    margin:7px 0 0!important;
    padding:4px 4px 2px!important;
    display:flex!important;
    align-items:center!important;
    overflow:visible!important;
    color:#a9b1b5!important;
    background:transparent!important;
    border:0!important;
    font-size:11px!important;
    line-height:1.2!important;
    font-weight:900!important;
    letter-spacing:.10em!important;
    text-transform:uppercase!important;
    box-sizing:border-box!important;
  }
  body .chat-list.cv-list .cv-row,
  body .chat-list.cv-list .cv-row.cv-pinned,
  body .chat-list.cv-list .cv-row.cv-person{
    position:relative!important;
    inset:auto!important;
    flex:0 0 auto!important;
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:76px!important;
    max-height:none!important;
    margin:0!important;
    padding:11px 12px!important;
    gap:11px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
    border:1px solid rgba(255,255,255,.08)!important;
    border-radius:15px!important;
    background:linear-gradient(180deg,#171d21 0%,#14191d 100%)!important;
    box-shadow:none!important;
    transform:none!important;
  }
  body .chat-list.cv-list .cv-row:hover{
    transform:none!important;
    background:linear-gradient(180deg,#1c2328 0%,#171d21 100%)!important;
    border-color:rgba(255,255,255,.13)!important;
  }
  body .chat-list.cv-list .cv-row.active{
    background:linear-gradient(180deg,#1d2922 0%,#18211c 100%)!important;
    border-color:rgba(105,207,74,.40)!important;
    box-shadow:inset 3px 0 0 #69cf4a!important;
  }
  body .chat-list.cv-list .cv-av{
    position:relative!important;
    inset:auto!important;
    flex:0 0 46px!important;
    width:46px!important;
    height:46px!important;
    display:grid!important;
    place-items:center!important;
    overflow:visible!important;
  }
  body .chat-list.cv-list .cv-av .avatar{
    position:static!important;
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
    min-height:46px!important;
    border-radius:14px!important;
    font-size:14px!important;
    box-shadow:none!important;
  }
  body .chat-list.cv-list .cv-body{
    flex:1 1 auto!important;
    min-width:0!important;
    width:auto!important;
    height:auto!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    gap:3px!important;
    overflow:hidden!important;
  }
  body .chat-list.cv-list .cv-top{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:20px!important;
    gap:8px!important;
    overflow:hidden!important;
  }
  body .chat-list.cv-list .cv-name{
    flex:1 1 auto!important;
    min-width:0!important;
    max-width:100%!important;
    font-size:15.5px!important;
    line-height:1.18!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body .chat-list.cv-list .cv-meta-right{
    margin-left:auto!important;
    flex:0 0 auto!important;
    min-width:0!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:6px!important;
  }
  body .chat-list.cv-list .cv-time{
    flex:0 0 auto!important;
    font-size:10.5px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  body .chat-list.cv-list .cv-sub,
  body .chat-list.cv-list .cv-last{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    line-height:1.25!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body .chat-list.cv-list .cv-sub{font-size:11.5px!important;}
  body .chat-list.cv-list .cv-last{font-size:12.5px!important;}
  body .chat-list.cv-list .cv-pintag{display:none!important;}
  body .chat-list.cv-list .cv-readtoggle,
  body .chat-list.cv-list .cv-mini-action,
  body .chat-list.cv-list .cv-chev{
    display:none!important;
    visibility:hidden!important;
    width:0!important;
    height:0!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    pointer-events:none!important;
  }
  body .chat-list.cv-list .cv-online-dot{
    right:-3px!important;
    bottom:-3px!important;
    width:12px!important;
    height:12px!important;
    border-width:2px!important;
  }

  /* Open conversation */
  body .chat-thread{
    position:relative!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    width:100%!important;
    min-width:0!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:0 22px 22px 0!important;
    background:#11171b!important;
    box-shadow:none!important;
    contain:layout paint!important;
  }
  body .chat-thread.empty-thread{display:grid!important;place-items:center!important;}
  body .chat-thread .chat-thread-head,
  body .chat-thread .ct-head{
    position:static!important;
    grid-row:1!important;
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-width:0!important;
    min-height:72px!important;
    height:auto!important;
    margin:0!important;
    padding:12px 18px!important;
    gap:12px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
    border:0!important;
    border-bottom:1px solid rgba(255,255,255,.08)!important;
    border-radius:0!important;
    background:#151b1f!important;
    color:#f2f4f5!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  body .chat-thread .cth-back{display:none!important;}
  body .chat-thread .cth-card{
    flex:1 1 auto!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    gap:11px!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }
  body .chat-thread .chat-thread-head .avatar,
  body .chat-thread .cth-card .avatar{
    flex:0 0 44px!important;
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    border-radius:14px!important;
    box-shadow:none!important;
  }
  body .chat-thread .cth-info{flex:1 1 auto!important;min-width:0!important;overflow:hidden!important;}
  body .chat-thread .cth-name{font-size:17px!important;line-height:1.2!important;color:#f4f6f7!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  body .chat-thread .cth-sub{font-size:11.5px!important;line-height:1.25!important;color:#9ea7ac!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  body .chat-thread .cth-act{flex:0 0 40px!important;width:40px!important;height:40px!important;border-radius:12px!important;background:#20272c!important;color:#cfd4d7!important;border:1px solid rgba(255,255,255,.08)!important;}
  body .chat-thread .workphoto-banner{grid-row:2!important;position:relative!important;z-index:2!important;}
  body .chat-thread .chat-scroll{
    position:relative!important;
    grid-row:2!important;
    flex:none!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:20px clamp(22px,3vw,42px)!important;
    gap:8px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    background:linear-gradient(180deg,#0f1519 0%,#0b1013 100%)!important;
    box-sizing:border-box!important;
    contain:layout paint!important;
  }
  body .chat-thread .msg{max-width:82%!important;width:auto!important;}
  body .chat-thread .msg.mine{max-width:82%!important;}
  body .chat-thread .bubble{
    width:max-content!important;
    max-width:82%!important;
    min-width:0!important;
    padding:9px 13px 8px!important;
    border-radius:17px 17px 17px 6px!important;
    background:#1b2328!important;
    border:1px solid rgba(255,255,255,.08)!important;
    color:#f1f3f4!important;
    box-shadow:none!important;
    display:flex!important;flex-direction:column!important;
  }
  body .chat-thread .msg.mine .bubble{
    border-radius:17px 17px 6px 17px!important;
    background:#25382c!important;
    border-color:rgba(111,165,98,.22)!important;
    align-items:flex-end!important;
    min-width:0!important;
  }
  body .chat-thread .msg:not(.mine) .bubble{min-width:0!important}
  /* standard, readable message text on mobile */
  body .chat-thread .b-text{font-size:15px!important;line-height:1.35!important;white-space:pre-wrap!important;word-break:normal!important;overflow-wrap:break-word!important;width:max-content!important;max-width:100%!important;align-self:auto!important}
  /* meta row stays on one line, tucked bottom-right, inside the bubble padding */
  body .chat-thread .b-meta{
    display:block!important;
    align-self:stretch!important;width:auto!important;
    margin-top:4px!important;text-align:right!important;
    line-height:1.15!important;white-space:normal!important;
  }
  body .chat-thread .b-meta time,
  body .chat-thread .b-meta .msg-status{display:inline!important;vertical-align:baseline!important;white-space:nowrap!important}
  body .chat-thread .b-meta time{font-size:11px!important;opacity:.6!important;white-space:nowrap!important;line-height:1!important}
  body .chat-thread .b-meta .msg-status{font-size:10.5px!important;font-weight:620!important;opacity:.85!important;white-space:nowrap!important;line-height:1!important;margin-left:6px!important}

  body .chat-thread .chat-composer{
    position:static!important;
    inset:auto!important;
    grid-row:3!important;
    display:grid!important;
    grid-template-columns:42px minmax(0,1fr) 42px!important;
    align-items:end!important;
    width:100%!important;
    min-width:0!important;
    min-height:68px!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:11px 14px!important;
    gap:9px!important;
    overflow:visible!important;
    box-sizing:border-box!important;
    border:0!important;
    border-top:1px solid rgba(255,255,255,.08)!important;
    border-radius:0!important;
    background:#141a1e!important;
    box-shadow:none!important;
    transform:none!important;
  }
  body .chat-thread .chat-composer .pending-photos{grid-column:1/-1!important;width:100%!important;}
  body .chat-thread .chat-composer .cattach,
  body .chat-thread .chat-composer .csend{
    position:static!important;
    align-self:end!important;
    flex:none!important;
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    margin:0!important;
    padding:0!important;
    border-radius:13px!important;
    transform:none!important;
  }
  body .chat-thread .chat-composer .cattach{grid-column:1!important;background:#20272c!important;border:1px solid rgba(255,255,255,.08)!important;color:#7ebc72!important;}
  body .chat-thread .chat-composer .csend{grid-column:3!important;background:linear-gradient(145deg,#72bd49,#4a982f)!important;border:1px solid rgba(139,214,92,.18)!important;color:#fff!important;box-shadow:none!important;}
  body .chat-thread .chat-composer textarea.chat-editbox,
  body .chat-thread .chat-composer #chatInput.chat-editbox,
  body .chat-thread .chat-composer .input{
    position:static!important;
    grid-column:2!important;
    display:block!important;
    flex:none!important;
    align-self:end!important;
    width:100%!important;
    min-width:0!important;
    height:42px!important;
    min-height:42px!important;
    max-height:116px!important;
    margin:0!important;
    padding:10px 14px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    resize:none!important;
    box-sizing:border-box!important;
    border:1px solid rgba(255,255,255,.10)!important;
    border-radius:14px!important;
    background:#1c2328!important;
    color:#f2f4f5!important;
    caret-color:#80ca5d!important;
    font-size:15px!important;
    line-height:1.4!important;
    box-shadow:none!important;
    outline:none!important;
    transform:none!important;
  }
  body .chat-thread .chat-composer textarea.chat-editbox:focus,
  body .chat-thread .chat-composer #chatInput.chat-editbox:focus{
    border-color:rgba(116,196,72,.48)!important;
    box-shadow:0 0 0 3px rgba(105,181,65,.10)!important;
  }
}


/* ---- inline style 91 ---- */

@media (min-width:1024px){
  /* Keep the desktop conversation header at the top, messages in the flexible
     centre area, and the composer permanently anchored at the true bottom. */
  body .chat-thread{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    overflow:hidden!important;
  }
  body .chat-thread .chat-thread-head,
  body .chat-thread .ct-head{
    position:relative!important;
    inset:auto!important;
    flex:0 0 auto!important;
    order:1!important;
  }
  body .chat-thread .workphoto-banner{
    position:relative!important;
    inset:auto!important;
    flex:0 0 auto!important;
    order:2!important;
  }
  body .chat-thread .chat-scroll{
    position:relative!important;
    inset:auto!important;
    flex:1 1 0!important;
    order:3!important;
    width:100%!important;
    min-height:0!important;
    height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }
  body .chat-thread .chat-composer,
  body .chat-thread .chat-readonly{
    position:relative!important;
    inset:auto!important;
    flex:0 0 auto!important;
    order:4!important;
    margin-top:auto!important;
    width:100%!important;
    z-index:8!important;
  }
  body .chat-thread.empty-thread{
    display:grid!important;
    place-items:center!important;
  }
}


/* ---- inline style 92 ---- */

/* Shift modal: keep one stable viewport while inputs and the keyboard open. */
body[data-modal-type="shift"] .shift-modal,
body[data-modal-type="shift"] .shift-modal *{
  animation:none!important;
  scroll-behavior:auto!important;
}
body[data-modal-type="shift"] .shift-modal{
  transform:none!important;
  backface-visibility:hidden!important;
  contain:layout paint!important;
}
body[data-modal-type="shift"] .shift-modal .modal-body{
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:auto!important;
  overflow-anchor:none!important;
}
body[data-modal-type="shift"] .shift-modal input,
body[data-modal-type="shift"] .shift-modal textarea,
body[data-modal-type="shift"] .shift-modal select,
body[data-modal-type="shift"] .shift-modal button{
  transform:none!important;
  -webkit-transform:none!important;
}

/* Employee field becomes one clean launch card instead of an expanding list
   that pushes the whole shift form up and down. */
.emp-picker-launch{
  width:100%!important;
  min-height:62px!important;
  display:grid!important;
  grid-template-columns:42px minmax(0,1fr) 22px!important;
  align-items:center!important;
  gap:11px!important;
  padding:10px 12px!important;
  border:1.5px solid var(--line-strong)!important;
  border-radius:14px!important;
  background:#fff!important;
  color:var(--ink-900)!important;
  text-align:left!important;
  box-shadow:none!important;
}
.emp-picker-launch.has-selected{
  background:linear-gradient(135deg,var(--sage-100),#f5f8ef)!important;
  border-color:rgba(47,111,61,.25)!important;
}
.emp-picker-launch-icon{
  width:40px;height:40px;border-radius:12px;
  display:grid;place-items:center;
  color:var(--forest-700);background:var(--sage-100);
}
.emp-picker-launch-icon svg{width:20px;height:20px}
.emp-picker-launch-copy{min-width:0;display:grid;gap:2px}
.emp-picker-launch-copy strong{font-size:14px;line-height:1.15;font-weight:900;color:var(--ink-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.emp-picker-launch-copy small{font-size:11.5px;line-height:1.25;font-weight:650;color:var(--ink-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.emp-picker-launch-arrow{font-size:27px;line-height:1;color:var(--forest-600);text-align:right}

/* True full-screen employee selector with its own fixed footer. */
.emp-picker-fullscreen{
  position:fixed!important;
  inset:0!important;
  z-index:9000!important;
  width:100vw!important;
  height:100dvh!important;
  background:rgba(13,31,19,.76)!important;
  display:flex!important;
  align-items:stretch!important;
  justify-content:center!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
  touch-action:none!important;
}
.emp-picker-fs-shell{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-width:760px!important;
  display:flex!important;
  flex-direction:column!important;
  background:var(--paper)!important;
  overflow:hidden!important;
  touch-action:pan-y!important;
  box-shadow:0 0 46px rgba(0,0,0,.28)!important;
}
.emp-picker-fs-head{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  gap:13px!important;
  padding:calc(16px + env(safe-area-inset-top)) 18px 14px!important;
  border-bottom:1px solid var(--line)!important;
  background:linear-gradient(180deg,#fffef9,#f6f3ea)!important;
}
.emp-picker-fs-close{
  width:42px!important;height:42px!important;flex:0 0 42px!important;
  display:grid!important;place-items:center!important;
  border-radius:13px!important;background:var(--cream-100)!important;
  color:var(--forest-800)!important;border:1px solid var(--line)!important;
}
.emp-picker-fs-close svg{width:20px;height:20px;transform:rotate(180deg)!important}
.emp-picker-fs-head h3{margin:0;font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--forest-900)}
.emp-picker-fs-head p{margin:2px 0 0;font-size:12px;font-weight:800;color:var(--ink-500)}
.emp-picker-fs-search{
  flex:0 0 auto!important;
  margin:14px 16px 10px!important;
  min-height:52px!important;
  background:#fff!important;
}
.emp-picker-fs-search input{font-size:16px!important}
.emp-picker-fs-list.employee-picker.simple-list{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0 16px!important;
  padding:5px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:auto!important;
  background:#fff!important;
}
.emp-picker-fs-list.employee-picker.simple-list .picker-row{
  min-height:58px!important;
  padding:10px 12px!important;
}
.emp-picker-fs-list .simple-emp-text strong{font-size:15px!important}
.emp-picker-fs-list .simple-emp-text em{font-size:11px!important}
.emp-picker-fs-foot{
  flex:0 0 auto!important;
  display:grid!important;
  grid-template-columns:minmax(120px,.42fr) minmax(180px,1fr)!important;
  gap:11px!important;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom))!important;
  border-top:1px solid var(--line)!important;
  background:rgba(255,253,247,.98)!important;
  box-shadow:0 -12px 28px rgba(20,35,20,.08)!important;
}
.emp-picker-fs-foot .emp-dd-btn{
  height:50px!important;border-radius:14px!important;font-size:15px!important;font-weight:900!important;
}
.emp-picker-fs-foot .emp-dd-btn.clear{background:#fff!important;color:var(--forest-800)!important;border:1.5px solid var(--line-strong)!important}
.emp-picker-fs-foot .emp-dd-btn.done{background:linear-gradient(135deg,var(--forest-600),var(--forest-800))!important;color:#fff!important;border:0!important;box-shadow:0 8px 20px rgba(35,83,44,.22)!important}
body:has(.emp-picker-fullscreen) .shift-modal{overflow:visible!important;transform:none!important;contain:none!important}

@media(max-width:1023px){
  /* Follow the iPhone's visible viewport exactly. This stops the modal from
     jumping between the layout viewport and keyboard viewport. */
  body[data-modal-type="shift"] #modalHost{
    position:fixed!important;
    top:var(--ww-shift-vv-top,0px)!important;
    left:var(--ww-shift-vv-left,0px)!important;
    right:auto!important;bottom:auto!important;
    width:var(--ww-shift-vv-width,100vw)!important;
    height:var(--ww-shift-vv-height,100dvh)!important;
    overflow:hidden!important;
  }
  body[data-modal-type="shift"] #modalHost .modal-overlay{
    position:absolute!important;inset:0!important;
    width:100%!important;height:100%!important;max-height:none!important;
    padding:0!important;align-items:stretch!important;
  }
  body[data-modal-type="shift"] .shift-modal{
    width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;
    border-radius:0!important;margin:0!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-head{flex:0 0 auto!important;padding:calc(12px + env(safe-area-inset-top)) 16px 10px!important}
  body[data-modal-type="shift"] .shift-modal .modal-body{flex:1 1 auto!important;min-height:0!important;padding:8px 13px 10px!important}
  body[data-modal-type="shift"] .shift-modal .modal-foot{flex:0 0 auto!important;padding:10px 13px calc(10px + env(safe-area-inset-bottom))!important;margin:0!important}
  body[data-modal-type="shift"].modal-open #app{position:relative!important;inset:auto!important;height:100svh!important;overflow:hidden!important}
  .emp-picker-fullscreen{width:100%!important;height:100%!important}
  .emp-picker-fs-shell{max-width:none!important}
}

@media(min-width:1024px){
  .emp-picker-fs-shell{height:min(92vh,900px)!important;margin:auto!important;border-radius:22px!important}
  .emp-picker-fullscreen{padding:22px!important}
}

/* ============================================================
   EMPLOYEE PICKER — clean inline expanding panel (no jump to top)
   ============================================================ */
.emp-picker-launch{width:100%;display:flex;align-items:center;gap:13px;padding:14px 15px;border-radius:15px;cursor:pointer;
  background:#fff;border:1px solid rgba(58,93,59,.16);text-align:left;font:inherit;transition:border-color .15s,background .15s}
.emp-picker-launch.has-selected{border-color:rgba(58,120,70,.4);background:#f2f8f2}
.emp-picker-launch.is-open{border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:rgba(58,93,59,.3)}
.emp-picker-launch-icon{flex:0 0 auto;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#e7f0e4}
.emp-picker-launch-icon svg{width:18px;height:18px;stroke:#3a6b3d}
.emp-picker-launch-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.emp-picker-launch-copy strong{font-size:15px;color:#1e2a20;font-weight:800}
.emp-picker-launch-copy small{font-size:12.5px;color:#7c8a76;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.emp-picker-launch-arrow{flex:0 0 auto;font-size:22px;color:#9aa48c;transition:transform .2s ease}
.emp-picker-launch-arrow.flip{transform:rotate(90deg)}
/* the expanding panel sits directly under the launch button, in-flow (no fixed, no jump) */
.emp-inline{border:1px solid rgba(58,93,59,.3);border-top:0;border-radius:0 0 15px 15px;background:#fbfcf8;overflow:hidden;
  animation:empExpand .22s ease both}
@keyframes empExpand{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.emp-inline-search{margin:12px;display:flex;align-items:center;gap:9px;padding:0 13px;height:46px;border-radius:12px;background:#fff;border:1.5px solid rgba(58,93,59,.22)}
.emp-inline-search .csb-ic{flex:0 0 auto;display:grid;place-items:center}
.emp-inline-search .csb-ic svg{width:17px;height:17px;stroke:#8a9578}
.emp-inline-search input{flex:1;border:0;outline:0;background:transparent;font-size:15px;height:100%;color:#1e2a20}
.emp-inline-list{max-height:360px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 8px}
.emp-inline-list .simple-employee-row{width:100%;display:flex;align-items:center;gap:12px;padding:13px 12px;border:0;border-bottom:1px solid rgba(58,93,59,.08);background:transparent;text-align:left;font:inherit;cursor:pointer;border-radius:10px}
.emp-inline-list .simple-employee-row:last-child{border-bottom:0}
.emp-inline-list .simple-employee-row.selected{background:#e9f4e9}
.emp-inline-list .pick-check{flex:0 0 auto;width:24px;height:24px;border-radius:50%;border:2px solid #b9c2ac;display:grid;place-items:center;font-size:13px;font-weight:900;color:#fff}
.emp-inline-list .simple-employee-row.selected .pick-check{background:#3a7a3d;border-color:#3a7a3d}
.emp-inline-list .simple-emp-text{min-width:0;display:flex;flex-direction:column;gap:2px}
.emp-inline-list .simple-emp-text strong{font-size:14.5px;color:#1e2a20;font-weight:700}
.emp-inline-list .simple-emp-text em{font-style:normal;font-size:12px;font-weight:700}
.emp-inline-foot{display:flex;gap:9px;padding:11px 12px;border-top:1px solid rgba(58,93,59,.12);background:#f3f6ee}
.emp-inline-foot .emp-dd-btn{flex:1;height:46px;border-radius:12px;font:inherit;font-size:15px;font-weight:800;cursor:pointer;border:0}
.emp-inline-foot .clear{background:#fff;border:1px solid rgba(58,93,59,.2);color:#4a5a48}
.emp-inline-foot .done{background:linear-gradient(180deg,#3f6b45,#22331f);color:#fff;box-shadow:0 8px 18px -8px rgba(30,60,30,.5)}

/* Single always-on employee search + list (no launch card) */
.emp-inline-static{border:1px solid rgba(58,93,59,.22);border-radius:15px;background:#fbfcf8;overflow:hidden;animation:none}
.emp-inline-static .emp-inline-search{margin:10px;position:relative}
.emp-count-badge{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:999px;background:#3a7a3d;color:#fff;font-size:11.5px;font-weight:800;vertical-align:middle}
.emp-inline-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:#eef2e6;color:#4a6b3e;font-weight:800;font-size:12.5px;padding:6px 12px;border-radius:9px;cursor:pointer}

/* Collapsed employee summary box (tap to open the search + list) */
.emp-collapsed{width:100%;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:12px;cursor:pointer;
  background:#fff;border:1px solid rgba(58,93,59,.2);text-align:left;font:inherit;transition:border-color .15s,background .15s}
.emp-collapsed.has-selected{border-color:rgba(58,120,70,.4);background:#f2f8f2}
.emp-collapsed-ic{flex:0 0 auto;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:#e7f0e4}
.emp-collapsed-ic svg{width:14px;height:14px;stroke:#3a6b3d}
.emp-collapsed-copy{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px;overflow:hidden}
.emp-collapsed-copy strong{flex:0 0 auto;font-size:13.5px;color:#1e2a20;font-weight:800}
.emp-collapsed-copy small{flex:1;min-width:0;font-size:12px;color:#7c8a76;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.emp-collapsed-arrow{flex:0 0 auto;font-size:18px;color:#9aa48c}

/* When collapsed with names only, let them use full width */
.emp-collapsed-names{flex:1;min-width:0;font-size:14px!important;font-weight:620!important;color:#1e2a20!important;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}


/* ---- inline style 93 ---- */

/* v418 — remove the large blank cream gap around the Cancel / Create shift bar.
   The footer now hugs its buttons: tight padding top and bottom, and the
   oversized upward glow is softened so it no longer reads as empty space. */
body[data-modal-type="shift"] .shift-modal .modal-body{
  padding-bottom:6px!important;
}
body[data-modal-type="shift"] .shift-modal .modal-foot{
  padding:8px 13px calc(8px + env(safe-area-inset-bottom))!important;
  margin:0!important;
  box-shadow:0 -5px 12px rgba(25,40,25,.05)!important;
}
@media(max-width:480px){
  body[data-modal-type="shift"] .shift-modal .modal-body{padding-bottom:5px!important}
  body[data-modal-type="shift"] .shift-modal .modal-foot{
    padding:7px 12px calc(6px + env(safe-area-inset-bottom))!important;
  }
}


/* ---- inline style 94 ---- */

/* v419 — stop input rows bleeding off the right edge of the screen.
   The two-up grids (Repeat/Create, Start/End) had 1fr tracks whose implicit
   min-width:auto let long <select> text push them wider than the modal.
   minmax(0,1fr) + min-width:0 forces every control to fit its share. */
body[data-modal-type="shift"] .shift-modal .modal-body{overflow-x:hidden!important}

/* Every panel and section must stay inside the body width */
body[data-modal-type="shift"] .shift-modal .shift-panel,
body[data-modal-type="shift"] .shift-modal .shift-section{
  max-width:100%!important;box-sizing:border-box!important;overflow:hidden!important;
}

/* Two-column rows: real zero-min tracks so selects can shrink */
body[data-modal-type="shift"] .shift-modal .row2{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  max-width:100%!important;
}
body[data-modal-type="shift"] .shift-modal .row2 > .field{min-width:0!important}

/* Inputs / selects fill their track and never exceed it */
body[data-modal-type="shift"] .shift-modal .field{min-width:0!important}
body[data-modal-type="shift"] .shift-modal .input,
body[data-modal-type="shift"] .shift-modal select.input,
body[data-modal-type="shift"] .shift-modal .time-select{
  width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;
  text-overflow:ellipsis!important;
}

/* Colour header: title + current pill + chev must fit on one line */
body[data-modal-type="shift"] .shift-colour-head{
  display:flex!important;align-items:center!important;gap:8px!important;
  width:100%!important;max-width:100%!important;min-width:0!important;
}
body[data-modal-type="shift"] .shift-colour-head > span:first-child{
  min-width:0!important;flex:0 1 auto!important;white-space:nowrap!important;
}
body[data-modal-type="shift"] .shift-colour-current-wrap{
  min-width:0!important;flex:1 1 auto!important;justify-content:flex-end!important;
  overflow:hidden!important;
}
body[data-modal-type="shift"] .shift-colour-current{
  overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important;
}

/* Colour preview card & the Visibility toggle: contain within panel */
body[data-modal-type="shift"] .colour-preview-card,
body[data-modal-type="shift"] .vis-toggle{max-width:100%!important}
body[data-modal-type="shift"] .vis-toggle{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
}
body[data-modal-type="shift"] .vis-opt{min-width:0!important;overflow:hidden!important}

/* Visibility panel header (title + Published state word) fits one line */
body[data-modal-type="shift"] .visibility-section .panel-title{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  gap:8px!important;min-width:0!important;
}
body[data-modal-type="shift"] .visibility-section .panel-title > *{min-width:0!important}


/* ---- inline style 95 ---- */

/* ===========================================================================
   TERRA CHAT THEME — warm eco palette (Westwonders brand).
   Cream canvas, forest-green header, deep-green sent bubbles, cream received.
   =========================================================================== */

/* ---- Canvas: warm cream, no photo ---- */
body.chat-thread-open .chat-shell .chat-thread,
body.chat-thread-open .chat-thread,
body .chat-thread{
  background:#f5f0e6!important;background-image:none!important;
}
body.chat-thread-open .chat-thread .chat-scroll,
body .chat-thread .chat-scroll{
  background:linear-gradient(180deg,#efe9db,#f6f1e6)!important;background-image:linear-gradient(180deg,#efe9db,#f6f1e6)!important;
}

/* ---- Header: forest green gradient ---- */
body .chat-thread .chat-thread-head,
body .chat-thread .ct-head{
  background:linear-gradient(180deg,#26432c,#1c331f)!important;color:#fdf8ec!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
}
body .chat-thread .cth-name{color:#fdf8ec!important}
body .chat-thread .cth-sub{color:#a6d8ac!important}
body .chat-thread .cth-back,
body .chat-thread .cth-act{background:rgba(255,255,255,.10)!important;color:#fdf8ec!important;border:1px solid rgba(255,255,255,.14)!important}

/* ---- RECEIVED bubbles: warm cream ---- */
body .chat-thread .msg:not(.mine) .bubble{
  background:#fffaf0!important;
  border:1px solid rgba(60,82,55,.14)!important;
  border-radius:18px 18px 18px 6px!important;
  box-shadow:0 3px 10px rgba(40,60,38,.06)!important;
  color:#243024!important;
  padding:11px 15px 9px!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
body .chat-thread .msg:not(.mine) .bubble::after{content:none!important;display:none!important}
body .chat-thread .msg:not(.mine) .b-text{color:#243024!important}
body .chat-thread .msg:not(.mine) .bubble time{color:#8a9182!important;margin-top:2px!important;line-height:1.1!important}

/* ---- SENT bubbles: deep forest green ---- */
body .chat-thread .msg.mine .bubble{
  background:linear-gradient(150deg,#3c6f43,#254a2a)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  border-radius:18px 18px 6px 18px!important;
  box-shadow:0 4px 12px rgba(30,60,32,.18)!important;
  color:#f6fbef!important;
  padding:11px 15px 9px!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
body .chat-thread .msg.mine .bubble::after{content:none!important;display:none!important}
body .chat-thread .msg.mine .b-text{color:#f6fbef!important}
body .chat-thread .msg.mine .b-meta time,
body .chat-thread .msg.mine .b-meta .msg-status{color:rgba(240,250,235,.8)!important}

/* ---- Sender name accent (received) ---- */
body .chat-thread .msg:not(.mine) .b-author{color:#3c6f43!important}

/* ---- Date pill ---- */
body .chat-thread .chat-daychip,
body .chat-thread .day-sep,
body .chat-thread .chat-datechip{
  background:#e3ddcd!important;color:#6b6a55!important;border:0!important;
  border-radius:999px!important;padding:5px 14px!important;font-size:11.5px!important;font-weight:600!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}

/* ---- Composer: GREEN bar matching header, light input, cream send ---- */
body.chat-thread-open .chat-shell .chat-thread .chat-composer,
body.chat-thread-open .chat-composer,
body .chat-thread .chat-composer{
  background:linear-gradient(180deg,#26432c,#1c331f)!important;
  border-top:1px solid rgba(255,255,255,.08)!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  gap:10px!important;align-items:center!important;
}
body.chat-thread-open .chat-shell .chat-thread .chat-composer .chat-editbox,
body.chat-thread-open .chat-shell .chat-thread .chat-composer #chatInput,
body.chat-thread-open .chat-shell .chat-thread .chat-composer .input,
body.chat-thread-open .chat-composer .chat-editbox,
body.chat-thread-open .chat-composer #chatInput,
body.chat-thread-open .chat-composer .input,
body .chat-thread .chat-composer .chat-editbox,
body .chat-thread .chat-composer #chatInput,
body .chat-thread .chat-composer .input{
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  border-radius:999px!important;color:#fdf8ec!important;padding:11px 18px!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
body.chat-thread-open .chat-composer .chat-editbox::placeholder,
body .chat-thread .chat-composer .chat-editbox::placeholder{color:rgba(253,248,236,.55)!important}
body.chat-thread-open .chat-shell .chat-thread .chat-composer .cattach,
body.chat-thread-open .chat-composer .cattach,
body .chat-thread .chat-composer .cattach{
  background:rgba(255,255,255,.12)!important;color:#d6e8d0!important;
  border:1px solid rgba(255,255,255,.18)!important;border-radius:50%!important;box-shadow:none!important;
}
body.chat-thread-open .chat-shell .chat-thread .chat-composer .csend,
body.chat-thread-open .chat-composer .csend,
body .chat-thread .chat-composer .csend{
  background:#fdf8ec!important;color:#254a2a!important;
  border:1px solid rgba(255,255,255,.25)!important;border-radius:50%!important;
  box-shadow:0 4px 12px rgba(0,0,0,.22)!important;
}


/* ---- inline style 96 ---- */

/* ===========================================================================
   TERRA MESSAGES LIST — light cream list to match the Terra chat thread.
   Scoped to the chat/messages screen (ww-chat-active) so other tabs are safe.
   =========================================================================== */

/* Page + shell canvas → warm cream */
body.ww-chat-active .chat-shell{background:#f5f0e6!important}
body.ww-chat-active .content{background:#f5f0e6!important}
body.ww-chat-active .cv-list,
body.ww-chat-active .cv-threads{background:transparent!important;background-image:none!important}

/* Section headers (Pinned / All chats) */
body.ww-chat-active .cv-sec{color:#6b7358!important}
body.ww-chat-active .cv-sec-pin{color:#b0862e!important}

/* Cards → light cream with soft green border */
body.ww-chat-active .chat-list.cv-list .cv-row,
body.ww-chat-active .chat-list.cv-list .cv-row.cv-read,
body.ww-chat-active .chat-list.cv-list .cv-row.cv-unread{
  background:#fffaf0!important;background-image:none!important;
  border:1px solid rgba(60,82,55,.14)!important;
  box-shadow:0 3px 10px rgba(40,60,38,.06)!important;
}
body.ww-chat-active .chat-list.cv-list .cv-row.cv-unread{
  background:#fffef7!important;
  border-color:rgba(47,107,62,.24)!important;
  box-shadow:0 5px 14px rgba(40,60,38,.10)!important;
}
body.ww-chat-active .chat-list.cv-list .cv-row.active{
  background:linear-gradient(90deg,rgba(63,107,62,.12),rgba(63,107,62,.04))!important;
}

/* Text colors on light cards */
body.ww-chat-active .chat-list.cv-list .cv-row .cv-name{color:#1c3320!important}
body.ww-chat-active .chat-list.cv-list .cv-row.cv-unread .cv-name{color:#0f2416!important;font-weight:900!important}
body.ww-chat-active .chat-list.cv-list .cv-row.cv-read .cv-name{color:#2a3a2c!important;font-weight:750!important}
body.ww-chat-active .chat-list.cv-list .cv-row .cv-sub{color:#6b7d68!important}
body.ww-chat-active .chat-list.cv-list .cv-row .cv-last{color:#7a8a76!important}
body.ww-chat-active .chat-list.cv-list .cv-row.cv-unread .cv-last{color:#3c5240!important;font-weight:700!important}
body.ww-chat-active .chat-list.cv-list .cv-row .cv-time{color:#8a9182!important}
body.ww-chat-active .chat-list.cv-list .cv-row.cv-unread .cv-time{color:#3c6f43!important}
body.ww-chat-active .chat-list.cv-list .cv-row .cv-chev{color:#3c6f43!important;opacity:.7!important}

/* Search bar → cream pill */
body.ww-chat-active .chat-list.cv-list .cv-search,
body.ww-chat-active .cv-search{
  background:#fffaf0!important;border:1px solid rgba(49,75,48,.16)!important;
  box-shadow:none!important;
}
body.ww-chat-active .chat-list.cv-list .cv-search input,
body.ww-chat-active .cv-search input{
  background:transparent!important;color:#243024!important;
}
body.ww-chat-active .chat-list.cv-list .cv-search input::placeholder,
body.ww-chat-active .cv-search input::placeholder{color:#8a9182!important}
body.ww-chat-active .chat-list.cv-list .cv-search-ic{color:#3c6f43!important}
body.ww-chat-active .chat-list.cv-list .cv-search-clear{background:rgba(49,75,48,.12)!important;color:#3c6f43!important}

/* Section "View all" accent + top page title area stay green-friendly */
body.ww-chat-active .cv-viewall,
body.ww-chat-active .cv-list .cv-viewall{color:#3c6f43!important}

/* List toolbar ("Messages" heading row) on cream */
body.ww-chat-active .chat-list.cv-list .cv-head{background:transparent!important;border-bottom-color:rgba(49,75,48,.12)!important}
body.ww-chat-active .chat-list.cv-list .cv-head-label{color:#1c3320!important}
body.ww-chat-active .chat-list.cv-list .cv-archive-filter{color:#3c6f43!important;background:transparent!important}


/* ---- inline style 97 ---- */

/* ===========================================================================
   CHATGPT IMPORT — bigger, easier-to-tap paste box + one-tap Paste button.
   =========================================================================== */

/* Label row with the Paste button on the right */
.v431-paste-head{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  gap:10px!important;margin-bottom:6px!important;
}
.v431-paste-head label{margin:0!important}

/* Prominent Paste button — the main fix for hard-to-paste */
.v431-paste-btn{
  display:inline-flex!important;align-items:center!important;gap:6px!important;
  flex:0 0 auto!important;
  height:36px!important;padding:0 15px!important;
  border-radius:999px!important;border:1px solid rgba(49,75,48,.22)!important;
  background:linear-gradient(150deg,#4a8a52,#2a5730)!important;color:#fdf8ec!important;
  font-size:13.5px!important;font-weight:800!important;letter-spacing:-.01em!important;
  cursor:pointer!important;box-shadow:0 3px 10px rgba(30,60,32,.22)!important;
}
.v431-paste-btn:active{transform:scale(.97)!important}
.v431-paste-btn svg{width:16px!important;height:16px!important;stroke:currentColor!important;fill:none!important}

/* THE BOX — much taller and easier to hit */
.v213-import-box{
  min-height:340px!important;
  height:44vh!important;
  max-height:60vh!important;
  font-size:16px!important;          /* 16px stops iOS zoom-on-focus */
  line-height:1.5!important;
  padding:14px 15px!important;
  border-radius:16px!important;
  border:1.5px solid rgba(49,75,48,.22)!important;
  background:#fffaf0!important;
  color:#243024!important;
  resize:vertical!important;
  /* Native long-press / right-click paste menu MUST work here */
  -webkit-user-select:text!important;
  -moz-user-select:text!important;
  -ms-user-select:text!important;
  user-select:text!important;
  -webkit-touch-callout:default!important;
  touch-action:auto!important;
  pointer-events:auto!important;
  cursor:text!important;
}
/* Make sure no ancestor blocks selection/callout for this field */
.v213-import,
.v213-import .field,
.v431-paste-head + .v213-import-box{
  -webkit-user-select:auto!important;user-select:auto!important;
  -webkit-touch-callout:default!important;
}
.v213-import-box:focus{
  outline:none!important;
  border-color:#3c6f43!important;
  box-shadow:0 0 0 4px rgba(60,111,67,.14)!important;
  background:#fffdf7!important;
}
.v213-import-box::placeholder{color:#9aa694!important;opacity:1!important}

/* Small tools row under the box */
.v431-paste-tools{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  gap:10px!important;margin-top:7px!important;
}
.v431-mini{
  height:30px!important;padding:0 12px!important;border-radius:999px!important;
  border:1px solid rgba(49,75,48,.2)!important;background:#fffaf0!important;
  color:#3c6f43!important;font-size:12.5px!important;font-weight:750!important;cursor:pointer!important;
}
.v431-mini:active{transform:scale(.97)!important}
.v431-count{font-size:12px!important;color:#8a9182!important;font-weight:700!important}

/* Mobile: use more of the screen */
@media(max-width:520px){
  .v213-import-box{
    min-height:300px!important;height:46vh!important;max-height:62vh!important;
    font-size:16px!important;padding:13px 14px!important;
  }
  .v431-paste-btn{height:34px!important;padding:0 13px!important;font-size:13px!important}
}
/* Short screens (landscape / small phones) */
@media(max-height:680px){
  .v213-import-box{min-height:210px!important;height:38vh!important}
}


/* ---- inline style 98 ---- */

/* Profile-only bottom clearance.
   Keeps the existing navigation, typography, colours, icons and geometry intact.
   This gives the final Sign out control enough scroll room to rise fully above
   the fixed mobile navigation and the genuine iPhone safe area. */
@media (max-width:1023px){
  .pf2{
    padding-bottom:calc(var(--ww-nav-total, 96px) + 18px)!important;
    scroll-margin-bottom:calc(var(--ww-nav-total, 96px) + 18px)!important;
  }
  .pf2-actions{
    position:relative!important;
    z-index:1!important;
  }
}


/* ---- inline style 99 ---- */

@media (max-width:1023px){
  html,body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    overscroll-behavior-x:none!important;
    -webkit-text-size-adjust:100%!important;
    text-size-adjust:100%!important;
  }

  /* Keep every text control above iOS's automatic focus-zoom threshold. */
  input,textarea,select,[contenteditable="true"]{
    font-size:16px!important;
    max-width:100%!important;
    touch-action:manipulation!important;
    -ms-touch-action:manipulation!important;
  }
  button,a,[role="button"],[data-action],label{
    touch-action:manipulation!important;
    -ms-touch-action:manipulation!important;
  }

  /* The page behind a sheet never moves. Its height is captured before the
     keyboard opens and is not recalculated during keyboard animation. */
  body.modal-open,
  body.ww-form-sheet-open{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:var(--ww-form-stable-height,100svh)!important;
    max-height:var(--ww-form-stable-height,100svh)!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }

  #modalHost,.modal-overlay,.modal-backdrop,[role="dialog"],
  .shift-modal,.timesheet-modal,.sheet,.drawer{
    overscroll-behavior:none!important;
    -webkit-user-select:none;
    user-select:none;
  }

  /* Only the form content scrolls. No horizontal drift and no elastic transfer
     to the page behind it. `auto` avoids iOS momentum rubber-banding. */
  .modal-body,.modal-scroll,.sheet-body,.drawer-body,
  .shift-modal .modal-body,.timesheet-modal .modal-body,
  [role="dialog"] .modal-body,[role="dialog"] .modal-scroll,
  [role="dialog"] .sheet-body,[role="dialog"] .drawer-body{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    touch-action:pan-y!important;
    overscroll-behavior-x:none!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:auto!important;
    scroll-behavior:auto!important;
    overflow-anchor:none!important;
  }

  /* Inputs remain selectable and editable even though the surrounding sheet
     suppresses accidental gestures. */
  input,textarea,[contenteditable="true"]{
    -webkit-user-select:text!important;
    user-select:text!important;
    -webkit-touch-callout:default!important;
  }

  /* Stop focus/press animation from being mistaken for a page jump. */
  body.ww-form-keyboard-active #modalHost,
  body.ww-form-keyboard-active .modal-overlay,
  body.ww-form-keyboard-active [role="dialog"],
  body.ww-form-keyboard-active .shift-modal,
  body.ww-form-keyboard-active .timesheet-modal,
  body.ww-form-keyboard-active .sheet,
  body.ww-form-keyboard-active .drawer{
    animation-play-state:paused!important;
    transition-duration:0s!important;
  }
  .modal-overlay input,.modal-overlay textarea,.modal-overlay select,
  [role="dialog"] input,[role="dialog"] textarea,[role="dialog"] select{
    transform:none!important;
  }
}


/* ---- inline style 100 ---- */

/* v470 — Timesheet entry footer visibility only.
   Keep Cancel / Add entry / Save fully above the genuine iPhone safe area. */
@media (max-width:720px){
  body[data-modal-type="admin-entry"] #modalHost,
  body[data-modal-type="missed-record"] #modalHost,
  body[data-modal-type="record"] #modalHost,
  body[data-modal-type="clockout"] #modalHost{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:var(--ww-physical-height,100svh)!important;
    max-height:var(--ww-physical-height,100svh)!important;
    overflow:hidden!important;
    z-index:2000!important;
  }
  body[data-modal-type="admin-entry"] .modal-overlay,
  body[data-modal-type="missed-record"] .modal-overlay,
  body[data-modal-type="record"] .modal-overlay,
  body[data-modal-type="clockout"] .modal-overlay{
    position:absolute!important;
    inset:0!important;
    height:100%!important;
    max-height:100%!important;
    padding:0!important;
    align-items:stretch!important;
    overflow:hidden!important;
  }
  body[data-modal-type="admin-entry"] .timesheet-modal,
  body[data-modal-type="missed-record"] .timesheet-modal,
  body[data-modal-type="record"] .timesheet-modal,
  body[data-modal-type="clockout"] .timesheet-modal{
    width:100%!important;
    height:100%!important;
    max-height:100%!important;
    min-height:0!important;
    margin:0!important;
    border-radius:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }
  body[data-modal-type="admin-entry"] .timesheet-modal .modal-body,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-body,
  body[data-modal-type="record"] .timesheet-modal .modal-body,
  body[data-modal-type="clockout"] .timesheet-modal .modal-body{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding-bottom:18px!important;
  }
  body[data-modal-type="admin-entry"] .timesheet-modal .modal-foot,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-foot,
  body[data-modal-type="record"] .timesheet-modal .modal-foot,
  body[data-modal-type="clockout"] .timesheet-modal .modal-foot{
    position:relative!important;
    bottom:auto!important;
    z-index:20!important;
    flex:0 0 auto!important;
    width:100%!important;
    min-height:calc(68px + env(safe-area-inset-bottom,0px))!important;
    margin:0!important;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))!important;
    box-sizing:border-box!important;
    background:#f8f5ec!important;
    border-top:1px solid rgba(53,75,51,.12)!important;
    box-shadow:0 -8px 22px rgba(25,45,28,.08)!important;
    display:flex!important;
    align-items:flex-start!important;
    gap:10px!important;
  }
  body[data-modal-type="admin-entry"] .timesheet-modal .modal-foot>.btn,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-foot>.btn,
  body[data-modal-type="clockout"] .timesheet-modal .modal-foot>.btn{
    flex:1 1 0!important;
    min-width:0!important;
    height:48px!important;
    min-height:48px!important;
    margin:0!important;
    visibility:visible!important;
    opacity:1!important;
  }
  body[data-modal-type="record"] .record-entry-modal .modal-foot{
    min-height:calc(68px + env(safe-area-inset-bottom,0px))!important;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))!important;
    align-items:flex-start!important;
  }
  body[data-modal-type="record"] .te-footer-actions{
    width:100%!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:10px!important;
  }
  body[data-modal-type="record"] .te-footer-actions .btn{
    height:48px!important;
    min-height:48px!important;
    visibility:visible!important;
    opacity:1!important;
  }
}


/* ---- inline style 101 ---- */

/* v471 — restore normal page scrolling when no real modal is open.
   The earlier global form-stability watcher could mistake ordinary page
   elements for a sheet and leave the app shell fixed. */
@media (max-width:1023px){
  body:not(.modal-open).ww-native-form-active,
  body:not(.modal-open).ww-form-sheet-open{
    position:static!important;
    inset:auto!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    overflow-x:hidden!important;
    overflow-y:hidden!important;
    touch-action:pan-y!important;
    overscroll-behavior-x:none!important;
  }
  body:not(.modal-open).ww-native-form-active #app,
  body:not(.modal-open).ww-native-form-active .shell,
  body:not(.modal-open).ww-native-form-active .main,
  body:not(.modal-open).ww-form-sheet-open #app,
  body:not(.modal-open).ww-form-sheet-open .shell,
  body:not(.modal-open).ww-form-sheet-open .main{
    position:relative!important;
    inset:auto!important;
    height:var(--ww-physical-height,100svh)!important;
    max-height:var(--ww-physical-height,100svh)!important;
    min-height:0!important;
    overflow-x:hidden!important;
  }
  body:not(.modal-open).ww-native-form-active .main,
  body:not(.modal-open).ww-form-sheet-open .main{
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
  }
  body:not(.modal-open) .page[data-page="profile"],
  body:not(.modal-open) #profilePage,
  body:not(.modal-open) .profile-page{
    min-height:max-content!important;
    overflow:visible!important;
    padding-bottom:calc(118px + env(safe-area-inset-bottom,0px))!important;
  }
}


/* ---- inline style 102 ---- */

body.ww-chat-active .chat-thread,body.chat-thread-open .chat-thread,body.chat-thread-open .chat-shell,body.chat-thread-open #app,body.chat-thread-open .shell,body.chat-thread-open .main,body.chat-thread-open .content,body.chat-thread-open main.content{background:#edf3f7!important;background-image:none!important}
body .chat-thread .chat-thread-head,body .chat-thread .ct-head,body.chat-thread-open .chat-thread-head{display:flex!important;align-items:center!important;gap:10px!important;min-height:76px!important;padding:11px 14px!important;background:#fff!important;background-image:none!important;color:#13261a!important;border:0!important;border-bottom:1px solid #dce3e8!important;box-shadow:0 1px 6px rgba(29,44,54,.06)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
body .chat-thread .cth-back,body .chat-thread .cth-act{width:42px!important;height:42px!important;min-width:42px!important;display:grid!important;place-items:center!important;padding:0!important;margin:0!important;border:0!important;border-radius:50%!important;background:transparent!important;color:#203247!important;box-shadow:none!important;text-decoration:none!important}
body .chat-thread .cth-back:active,body .chat-thread .cth-act:active{background:#eef2f5!important;transform:scale(.96)!important}
body .chat-thread .cth-back svg,body .chat-thread .cth-act svg{width:25px!important;height:25px!important;stroke-width:1.9!important}
body .chat-thread .cth-card{flex:1 1 auto!important;min-width:0!important;display:flex!important;align-items:center!important;gap:11px!important;padding:0!important;margin:0!important;border:0!important;background:transparent!important;color:inherit!important;text-align:left!important;box-shadow:none!important}
body .chat-thread .chat-thread-head>.avatar,body .chat-thread .cth-card>.avatar{width:44px!important;height:44px!important;min-width:44px!important;border-radius:50%!important;border:0!important;box-shadow:none!important;font-size:16px!important}
body .chat-thread .cth-info{min-width:0!important;flex:1 1 auto!important}
body .chat-thread .cth-name{color:#101820!important;font-size:18px!important;font-weight:780!important;line-height:1.15!important;letter-spacing:-.015em!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body .chat-thread .cth-sub,body .chat-thread .cth-presence{color:#89939f!important;font-size:12.5px!important;font-weight:500!important;line-height:1.2!important;margin-top:3px!important}
body .chat-thread .cth-dot{background:#4da65f!important;box-shadow:none!important}
body .chat-thread .cth-actions{display:flex!important;align-items:center!important;gap:2px!important;margin-left:auto!important;flex:0 0 auto!important}
body .chat-thread .chat-scroll,body.chat-thread-open .chat-scroll{background:#edf3f7!important;background-image:none!important;padding:12px 12px 18px!important;display:flex!important;flex-direction:column!important;gap:2px!important;overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-y:contain!important;scroll-behavior:auto!important;contain:layout style!important}
body .chat-thread .chat-date-separator{width:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;margin:14px 0 9px!important;clear:both!important;flex:0 0 auto!important}
body .chat-thread .chat-date-separator:first-child{margin-top:4px!important}
body .chat-thread .chat-date-separator span{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:28px!important;padding:5px 14px!important;border-radius:999px!important;background:#aeb9c5!important;color:#fff!important;border:0!important;font-size:12px!important;font-weight:760!important;line-height:1!important;letter-spacing:.005em!important;box-shadow:none!important}
body .chat-thread .msg{width:100%!important;max-width:none!important;min-width:0!important;display:flex!important;align-items:flex-end!important;gap:8px!important;margin:0!important;padding:0!important;contain:layout style!important}
body .chat-thread .msg.mine{justify-content:flex-end!important;flex-direction:row!important;margin-left:0!important}
body .chat-thread .msg.theirs,body .chat-thread .msg:not(.mine){justify-content:flex-start!important}
body .chat-thread .msg.group-start{margin-top:8px!important}body .chat-thread .chat-date-separator+.msg.group-start{margin-top:0!important}body .chat-thread .msg.group-continuation{margin-top:1px!important}
body .chat-thread .msg-av{width:40px!important;min-width:40px!important;max-width:40px!important;height:38px!important;display:flex!important;align-items:flex-end!important;justify-content:center!important;flex:0 0 40px!important}
body .chat-thread .msg-av.is-spacer{visibility:hidden!important}
body .chat-thread .msg-av .avatar{width:38px!important;height:38px!important;min-width:38px!important;border-radius:50%!important;border:0!important;box-shadow:none!important;font-size:14px!important;font-weight:650!important;text-shadow:none!important;color:#fff!important}
body .chat-thread .bubble,body .chat-thread .msg.mine .bubble,body .chat-thread .msg:not(.mine) .bubble{width:auto!important;min-width:0!important;max-width:min(78%,650px)!important;display:flex!important;flex-direction:column!important;padding:10px 13px 8px!important;border:0!important;border-radius:20px!important;box-shadow:0 1px 2px rgba(24,39,49,.08)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;transform:none!important}
body .chat-thread .msg:not(.mine) .bubble{align-items:flex-start!important;background:#fff!important;color:#111820!important;border-bottom-left-radius:7px!important}
body .chat-thread .msg.mine .bubble{align-items:flex-start!important;background:#2f7443!important;background-image:none!important;color:#fff!important;border-bottom-right-radius:7px!important;box-shadow:0 1px 3px rgba(31,82,47,.18)!important}
body .chat-thread .msg.group-continuation:not(.mine) .bubble{border-top-left-radius:9px!important}body .chat-thread .msg.group-continuation.mine .bubble{border-top-right-radius:9px!important}
body .chat-thread .b-author{margin:0 0 4px!important;color:#2e7342!important;font-size:12px!important;font-weight:780!important;line-height:1.15!important}
body .chat-thread .b-text{display:block!important;width:auto!important;max-width:100%!important;margin:0!important;color:inherit!important;font-size:16px!important;font-weight:450!important;line-height:1.36!important;letter-spacing:-.008em!important;white-space:pre-wrap!important;word-break:normal!important;overflow-wrap:anywhere!important}
body .chat-thread .b-meta{width:auto!important;min-width:0!important;max-width:100%!important;align-self:flex-end!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:6px!important;margin:6px 0 0!important;padding:0!important;line-height:1!important}
body .chat-thread .b-meta time{display:inline-block!important;margin:0!important;padding:0!important;color:#9099a3!important;font-size:11px!important;font-weight:500!important;line-height:1!important;opacity:1!important;white-space:nowrap!important}
body .chat-thread .msg.mine .b-meta time{color:rgba(255,255,255,.72)!important}
body .chat-thread .msg-status{display:inline-flex!important;align-items:center!important;gap:3px!important;margin:0!important;padding:0!important;font-size:11px!important;font-weight:680!important;line-height:1!important;white-space:nowrap!important;letter-spacing:0!important;opacity:1!important}
body .chat-thread .msg-status.sent{color:rgba(255,255,255,.74)!important}body .chat-thread .msg-status.seen{color:#dff4e4!important}body .chat-thread .status-word{font-size:11px!important;font-weight:650!important}
body .chat-thread .msg-rx{margin-top:6px!important}body .chat-thread .rx-quickbar{z-index:30!important}
body .chat-thread .chat-composer,body.chat-thread-open .chat-composer,body.chat-thread-open .chat-shell .chat-thread .chat-composer{display:grid!important;grid-template-columns:46px minmax(0,1fr) 46px!important;align-items:end!important;gap:9px!important;width:100%!important;min-width:0!important;min-height:68px!important;margin:0!important;padding:9px 12px calc(9px + env(safe-area-inset-bottom,0px))!important;background:#fff!important;background-image:none!important;border:0!important;border-top:1px solid #dce3e8!important;box-shadow:0 -2px 10px rgba(29,44,54,.05)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
body .chat-thread .chat-composer .pending-photos{grid-column:1/-1!important}
body .chat-thread .chat-composer .cattach,body .chat-thread .chat-composer .csend{width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;margin:0!important;padding:0!important;border-radius:50%!important;display:grid!important;place-items:center!important;align-self:end!important;box-shadow:none!important}
body .chat-thread .chat-composer .cattach{background:#fff!important;color:#203247!important;border:1.5px solid #cbd4dc!important}body .chat-thread .chat-composer .csend{background:#2f7443!important;background-image:none!important;color:#fff!important;border:0!important}
body .chat-thread .chat-composer .cattach svg,body .chat-thread .chat-composer .csend svg{width:23px!important;height:23px!important;stroke-width:1.9!important}
body .chat-thread .chat-composer textarea.chat-editbox,body .chat-thread .chat-composer #chatInput,body .chat-thread .chat-composer .input,body.chat-thread-open .chat-composer textarea.chat-editbox{grid-column:2!important;width:100%!important;min-width:0!important;height:46px!important;min-height:46px!important;max-height:min(126px,32vh)!important;margin:0!important;padding:11px 16px!important;border:1px solid #e0e5e9!important;border-radius:22px!important;background:#f2f4f6!important;color:#151c22!important;caret-color:#2f7443!important;font-family:inherit!important;font-size:16px!important;font-weight:450!important;line-height:1.4!important;resize:none!important;box-shadow:none!important;outline:none!important}
body .chat-thread .chat-composer textarea.chat-editbox::placeholder,body.chat-thread-open .chat-composer textarea.chat-editbox::placeholder{color:#a2a9b0!important;opacity:1!important}body .chat-thread .chat-composer textarea.chat-editbox:focus{border-color:#bfcac2!important;box-shadow:0 0 0 3px rgba(47,116,67,.08)!important}
body .chat-thread .workphoto-banner{background:#f7faf7!important;border-bottom:1px solid #dce3e8!important;color:#213328!important}
@media(max-width:1023px){html:has(body.chat-thread-open),body.chat-thread-open,body.chat-thread-open #app,body.chat-thread-open .shell,body.chat-thread-open .main,body.chat-thread-open .content,body.chat-thread-open main.content,body.chat-thread-open .page,body.chat-thread-open .chat-shell,body.chat-thread-open .chat-thread{background:#edf3f7!important;background-image:none!important}body.chat-thread-open .shell::before,body.chat-thread-open .shell::after{display:none!important;content:none!important}body.chat-thread-open .chat-thread-head,body.chat-thread-open .ct-head{padding-top:calc(10px + env(safe-area-inset-top,0px))!important;min-height:calc(76px + env(safe-area-inset-top,0px))!important}body.chat-thread-open .chat-scroll{padding-left:10px!important;padding-right:10px!important}body .chat-thread .bubble,body .chat-thread .msg.mine .bubble,body .chat-thread .msg:not(.mine) .bubble{max-width:82%!important}body .chat-thread .cth-name{font-size:17px!important}}
@media(max-width:380px){body .chat-thread .msg-av{width:36px!important;min-width:36px!important;flex-basis:36px!important}body .chat-thread .msg-av .avatar{width:34px!important;height:34px!important;min-width:34px!important;font-size:12.5px!important}body .chat-thread .bubble,body .chat-thread .msg.mine .bubble,body .chat-thread .msg:not(.mine) .bubble{max-width:84%!important;padding:9px 12px 8px!important}body .chat-thread .b-text{font-size:15.5px!important}body .chat-thread .status-word{display:none!important}}


/* ---- inline style 103 ---- */

/* Keep the Ava-style layout, but restore EarthRoster's branded green header and composer. */
body .chat-thread .chat-thread-head,
body.chat-thread-open .chat-thread-head,
body.chat-thread-open .ct-head{
  background:linear-gradient(135deg,#214f33 0%,#173a24 58%,#0f2b1b 100%)!important;
  color:#fff8ee!important;
  border-bottom:1px solid rgba(255,248,232,.14)!important;
  box-shadow:0 8px 20px rgba(10,28,18,.18)!important;
}
body .chat-thread .cth-name,
body.chat-thread-open .chat-thread .cth-name{color:#fff8ee!important;}
body .chat-thread .cth-sub,
body .chat-thread .cth-presence,
body.chat-thread-open .chat-thread .cth-sub,
body.chat-thread-open .chat-thread .cth-presence{color:rgba(239,233,218,.78)!important;}
body .chat-thread .cth-dot,
body.chat-thread-open .chat-thread .cth-dot{background:#9ad58c!important;box-shadow:0 0 0 2px rgba(255,255,255,.12)!important;}
body .chat-thread .chat-thread-head .avatar,
body.chat-thread-open .chat-thread .chat-thread-head .avatar{
  background:linear-gradient(135deg,#7fa06f,#4a7450)!important;
  color:#fff8ee!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12)!important;
}
body .chat-thread .cth-back,
body .chat-thread .cth-act,
body.chat-thread-open .chat-thread .cth-back,
body.chat-thread-open .chat-thread .cth-act{
  background:rgba(255,255,255,.10)!important;
  color:#fff8ee!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:none!important;
}
body .chat-thread .cth-back svg,
body .chat-thread .cth-act svg,
body.chat-thread-open .chat-thread .cth-back svg,
body.chat-thread-open .chat-thread .cth-act svg{stroke:currentColor!important;}

body .chat-thread .chat-composer,
body.chat-thread-open .chat-composer,
body.chat-thread-open .chat-shell .chat-thread .chat-composer{
  background:linear-gradient(180deg,#1b472f 0%,#153826 100%)!important;
  border-top:1px solid rgba(255,248,232,.12)!important;
  box-shadow:0 -8px 24px rgba(12,28,19,.22)!important;
}
body .chat-thread .chat-composer::after,
body.chat-thread-open .chat-composer::after{
  content:""!important;position:absolute!important;left:0!important;right:0!important;top:100%!important;
  height:calc(env(safe-area-inset-bottom,0px) + 10px)!important;background:#153826!important;
}
body .chat-thread .chat-composer .cattach{
  background:rgba(255,255,255,.10)!important;
  color:#fff8ee!important;
  border:1.5px solid rgba(255,255,255,.18)!important;
}
body .chat-thread .chat-composer .csend{
  background:linear-gradient(135deg,#f6f1e5,#ece2cb)!important;
  color:#1c4a31!important;
  border:0!important;
  box-shadow:0 6px 16px rgba(7,18,11,.18)!important;
}
body .chat-thread .chat-composer .cattach svg,
body .chat-thread .chat-composer .csend svg{stroke:currentColor!important;}
body .chat-thread .chat-composer textarea.chat-editbox,
body .chat-thread .chat-composer #chatInput,
body .chat-thread .chat-composer .input,
body.chat-thread-open .chat-composer textarea.chat-editbox,
body.chat-thread-open .chat-composer #chatInput,
body.chat-thread-open .chat-composer .input{
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  color:#fff8ee!important;
  caret-color:#fff8ee!important;
}
body .chat-thread .chat-composer textarea.chat-editbox::placeholder,
body .chat-thread .chat-composer #chatInput::placeholder,
body .chat-thread .chat-composer .input::placeholder,
body.chat-thread-open .chat-composer textarea.chat-editbox::placeholder,
body.chat-thread-open .chat-composer #chatInput::placeholder,
body.chat-thread-open .chat-composer .input::placeholder{color:rgba(255,248,232,.55)!important;opacity:1!important;}
body .chat-thread .chat-composer textarea.chat-editbox:focus,
body .chat-thread .chat-composer #chatInput:focus,
body .chat-thread .chat-composer .input:focus,
body.chat-thread-open .chat-composer textarea.chat-editbox:focus,
body.chat-thread-open .chat-composer #chatInput:focus,
body.chat-thread-open .chat-composer .input:focus{border-color:rgba(255,248,232,.28)!important;box-shadow:0 0 0 3px rgba(244,238,221,.08)!important;}

@media(max-width:1023px){
  body.chat-thread-open .chat-thread-head,
  body.chat-thread-open .ct-head{padding-top:calc(10px + env(safe-area-inset-top,0px))!important;}
}


/* ---- inline style 104 ---- */

/* Premium monogram avatars for the open chat header and incoming message groups. */
body .chat-thread .chat-thread-head>.avatar,
body .chat-thread .cth-card>.avatar,
body.chat-thread-open .chat-thread .chat-thread-head>.avatar{
  position:relative!important;
  isolation:isolate!important;
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  flex:0 0 48px!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 31% 24%,rgba(255,255,255,.25),transparent 33%),
    linear-gradient(145deg,#86a675 0%,#4f7c55 48%,#264d33 100%)!important;
  border:1px solid rgba(255,248,232,.36)!important;
  box-shadow:
    0 0 0 4px rgba(255,255,255,.075),
    0 8px 18px rgba(6,25,14,.28),
    inset 0 1px 0 rgba(255,255,255,.28),
    inset 0 -8px 18px rgba(7,35,19,.16)!important;
  color:#fffaf0!important;
  font-size:17px!important;
  font-weight:850!important;
  letter-spacing:.045em!important;
  line-height:1!important;
  text-shadow:0 1px 2px rgba(6,29,16,.32)!important;
}
body .chat-thread .chat-thread-head>.avatar::before,
body .chat-thread .cth-card>.avatar::before,
body.chat-thread-open .chat-thread .chat-thread-head>.avatar::before{
  content:""!important;
  position:absolute!important;
  inset:4px!important;
  border-radius:inherit!important;
  border:1px solid rgba(255,255,255,.18)!important;
  pointer-events:none!important;
  z-index:-1!important;
}
body .chat-thread .chat-thread-head>.avatar::after,
body .chat-thread .cth-card>.avatar::after,
body.chat-thread-open .chat-thread .chat-thread-head>.avatar::after{
  content:""!important;
  position:absolute!important;
  left:9px!important;
  right:9px!important;
  top:5px!important;
  height:13px!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.24),rgba(255,255,255,0))!important;
  pointer-events:none!important;
  z-index:-1!important;
}

body .chat-thread .msg-av{
  width:42px!important;
  min-width:42px!important;
  max-width:42px!important;
  flex:0 0 42px!important;
  height:42px!important;
}
body .chat-thread .msg-av .avatar{
  position:relative!important;
  isolation:isolate!important;
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  border-radius:50%!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  border:1px solid rgba(255,255,255,.58)!important;
  box-shadow:
    0 0 0 3px rgba(46,92,54,.13),
    0 5px 13px rgba(24,55,31,.22),
    inset 0 1px 0 rgba(255,255,255,.30),
    inset 0 -7px 14px rgba(12,39,20,.13)!important;
  color:#fffaf0!important;
  font-size:14px!important;
  font-weight:850!important;
  letter-spacing:.05em!important;
  line-height:1!important;
  text-shadow:0 1px 2px rgba(7,30,16,.30)!important;
}
body .chat-thread .msg-av .avatar::before{
  content:""!important;
  position:absolute!important;
  inset:3px!important;
  border-radius:inherit!important;
  border:1px solid rgba(255,255,255,.18)!important;
  pointer-events:none!important;
  z-index:-1!important;
}
body .chat-thread .msg-av .avatar::after{
  content:""!important;
  position:absolute!important;
  left:7px!important;
  right:7px!important;
  top:4px!important;
  height:11px!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.27),rgba(255,255,255,0))!important;
  pointer-events:none!important;
  z-index:-1!important;
}
/* Refined deterministic EarthRoster palette. */
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="0"]{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.24),transparent 34%),linear-gradient(145deg,#79a66d,#386d43 58%,#214a2e)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="1"]{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.22),transparent 34%),linear-gradient(145deg,#6ca899,#367566 58%,#205247)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="2"]{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.22),transparent 34%),linear-gradient(145deg,#7598ac,#466d83 58%,#2b4f63)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="3"]{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.22),transparent 34%),linear-gradient(145deg,#8984a8,#5d587d 58%,#403b60)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="4"]{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.22),transparent 34%),linear-gradient(145deg,#a48291,#755468 58%,#553a4c)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="5"]{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.22),transparent 34%),linear-gradient(145deg,#b07b67,#82513f 58%,#60392d)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="6"]{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.24),transparent 34%),linear-gradient(145deg,#c79a55,#936a2d 58%,#6d4b1d)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="7"]{background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.22),transparent 34%),linear-gradient(145deg,#97a96b,#687742 58%,#48552d)!important}

@media(max-width:380px){
  body .chat-thread .chat-thread-head>.avatar,
  body .chat-thread .cth-card>.avatar,
  body.chat-thread-open .chat-thread .chat-thread-head>.avatar{width:44px!important;height:44px!important;min-width:44px!important;flex-basis:44px!important;font-size:15.5px!important}
  body .chat-thread .msg-av{width:38px!important;min-width:38px!important;max-width:38px!important;flex-basis:38px!important;height:38px!important}
  body .chat-thread .msg-av .avatar{width:36px!important;height:36px!important;min-width:36px!important;font-size:12.5px!important}
}


/* ---- inline style 105 ---- */

.agreement-email-chooser{display:flex;flex-direction:column;gap:14px;padding:2px 0 4px}
.aec-intro{display:flex;align-items:center;gap:13px;padding:14px;border-radius:18px;background:linear-gradient(135deg,#e8f0e3,#f7f2e8);border:1px solid rgba(36,78,48,.10)}
.aec-intro-icon{width:46px;height:46px;min-width:46px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#2d663e,#173e27);color:#fff;box-shadow:0 7px 18px rgba(24,66,38,.20)}
.aec-intro-icon svg{width:22px;height:22px}
.aec-intro div{display:flex;flex-direction:column;gap:3px;min-width:0}.aec-intro strong{font-size:15px;color:#1e3323}.aec-intro span:not(.aec-intro-icon){font-size:12.5px;line-height:1.35;color:#667165}
.aec-recipient{display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:13px;background:#f7f7f4;border:1px solid rgba(36,58,40,.10);min-width:0}.aec-recipient span{font-size:12px;color:#7b837a}.aec-recipient strong{font-size:13px;color:#26372a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.aec-options{display:flex;flex-direction:column;gap:8px}
.aec-option{width:100%;display:grid;grid-template-columns:48px minmax(0,1fr) 24px;align-items:center;gap:12px;padding:10px 11px;border-radius:17px;border:1px solid rgba(34,58,39,.11);background:#fff;text-align:left;color:#1e2d22;box-shadow:0 3px 10px rgba(29,47,32,.045);transition:transform .12s ease,background .12s ease}
.aec-option:active{transform:scale(.985);background:#f5f8f3}.aec-option>span:nth-child(2){display:flex;flex-direction:column;gap:2px;min-width:0}.aec-option strong{font-size:14px}.aec-option small{font-size:11.5px;color:#7b857c}.aec-option em{display:grid;place-items:center;color:#809084;transform:rotate(180deg)}.aec-option em svg{width:18px;height:18px}
.aec-app-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-weight:850;font-size:18px;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.20)}.aec-app-icon svg{width:22px;height:22px}
.aec-option.apple .aec-app-icon{background:linear-gradient(145deg,#3298f0,#1769ba)}.aec-option.gmail .aec-app-icon{background:linear-gradient(145deg,#ef5a4f,#c93228)}.aec-option.outlook .aec-app-icon{background:linear-gradient(145deg,#168ad0,#0866a4)}.aec-option.share .aec-app-icon{background:linear-gradient(145deg,#5e8060,#31543a)}
.aec-copy{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border-radius:14px;border:0;background:transparent;color:#2f633e;font-size:13px;font-weight:750}.aec-copy svg{width:18px;height:18px}
@media(max-width:560px){.agreement-email-chooser{gap:11px}.aec-option{grid-template-columns:44px minmax(0,1fr) 20px;padding:9px 10px}.aec-app-icon{width:42px;height:42px;border-radius:13px}}


/* ---- inline style 106 ---- */

/* Cleaner, more professional chat monogram avatars.
   Replaces the glossy multi-ring look with a modern branded style. */
body .chat-thread .chat-thread-head>.avatar,
body .chat-thread .cth-card>.avatar,
body.chat-thread-open .chat-thread .chat-thread-head>.avatar{
  position:relative!important;
  width:46px!important;height:46px!important;min-width:46px!important;flex:0 0 46px!important;
  border-radius:50%!important;
  display:grid!important;place-items:center!important;
  overflow:hidden!important;
  background:linear-gradient(145deg,#6f8f67 0%,#42674a 54%,#274832 100%)!important;
  color:#fffdf7!important;
  border:1px solid rgba(255,255,255,.22)!important;
  box-shadow:0 8px 18px rgba(10,28,18,.18), inset 0 1px 0 rgba(255,255,255,.14)!important;
  font-size:16px!important;font-weight:800!important;letter-spacing:.02em!important;line-height:1!important;
  text-shadow:none!important;isolation:isolate!important;
}
body .chat-thread .chat-thread-head>.avatar::before,
body .chat-thread .cth-card>.avatar::before,
body.chat-thread-open .chat-thread .chat-thread-head>.avatar::before{
  content:""!important;position:absolute!important;inset:4px!important;border-radius:inherit!important;
  border:1px solid rgba(255,255,255,.10)!important;pointer-events:none!important;
}
body .chat-thread .chat-thread-head>.avatar::after,
body .chat-thread .cth-card>.avatar::after,
body.chat-thread-open .chat-thread .chat-thread-head>.avatar::after{
  content:none!important;
}

body .chat-thread .msg-av{
  width:40px!important;min-width:40px!important;max-width:40px!important;flex:0 0 40px!important;height:40px!important;
}
body .chat-thread .msg-av .avatar{
  position:relative!important;
  width:36px!important;height:36px!important;min-width:36px!important;
  border-radius:50%!important;display:grid!important;place-items:center!important;overflow:hidden!important;
  color:#fffdf7!important;font-size:13px!important;font-weight:800!important;letter-spacing:.02em!important;line-height:1!important;
  border:2px solid rgba(255,255,255,.88)!important;
  box-shadow:0 3px 10px rgba(13,28,19,.14)!important;
  text-shadow:none!important;isolation:isolate!important;
}
body .chat-thread .msg-av .avatar::before{
  content:""!important;position:absolute!important;inset:3px!important;border-radius:inherit!important;
  border:1px solid rgba(255,255,255,.10)!important;pointer-events:none!important;
}
body .chat-thread .msg-av .avatar::after{content:none!important;}

/* Refined professional palette with softer depth and stronger readability. */
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="0"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="0"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="0"]{background:linear-gradient(145deg,#6e9872 0%,#4b7652 58%,#2d4d35 100%)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="1"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="1"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="1"]{background:linear-gradient(145deg,#6a9e96 0%,#47766e 58%,#2c534e 100%)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="2"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="2"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="2"]{background:linear-gradient(145deg,#6e90aa 0%,#4b6d86 58%,#314f66 100%)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="3"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="3"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="3"]{background:linear-gradient(145deg,#837ca5 0%,#615a82 58%,#433f60 100%)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="4"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="4"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="4"]{background:linear-gradient(145deg,#a17b8e 0%,#7b5969 58%,#5a4050 100%)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="5"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="5"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="5"]{background:linear-gradient(145deg,#b17b67 0%,#875a48 58%,#633f31 100%)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="6"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="6"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="6"]{background:linear-gradient(145deg,#be965d 0%,#936f37 58%,#6a4d22 100%)!important}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="7"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="7"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="7"]{background:linear-gradient(145deg,#93a166 0%,#6d7845 58%,#4e5730 100%)!important}

body .chat-thread .cth-card{gap:12px!important;align-items:center!important}
body .chat-thread .cth-name{font-size:19px!important;font-weight:820!important;letter-spacing:-.015em!important}
body .chat-thread .cth-sub,body .chat-thread .cth-presence{font-size:12px!important;font-weight:650!important}
body .chat-thread .cth-presence.is-online{color:#7fd45d!important}
body .chat-thread .cth-dot{width:8px!important;height:8px!important;box-shadow:0 0 0 3px rgba(114,205,78,.18)!important}

@media(max-width:380px){
  body .chat-thread .chat-thread-head>.avatar,
  body .chat-thread .cth-card>.avatar,
  body.chat-thread-open .chat-thread .chat-thread-head>.avatar{width:42px!important;height:42px!important;min-width:42px!important;flex-basis:42px!important;font-size:14.5px!important}
  body .chat-thread .msg-av{width:38px!important;min-width:38px!important;max-width:38px!important;flex-basis:38px!important;height:38px!important}
  body .chat-thread .msg-av .avatar{width:34px!important;height:34px!important;min-width:34px!important;font-size:12.5px!important}
}


/* ---- inline style 107 ---- */

/* Important Updates has been removed from every role and screen. */
.important-updates-panel,.updates-panel,.updates-list,.iu-pulse,.iu-count{display:none!important;}


/* ---- inline style 108 ---- */

/* v492 — Timesheet entry modal visual refresh.
   Goal: more presentable, calmer, safer header spacing, stronger hierarchy. */
body[data-modal-type="record"] .record-entry-modal,
body[data-modal-type="missed-record"] .timesheet-modal{
  background:linear-gradient(180deg,#faf7f0 0%,#f7f3eb 100%)!important;
}
body[data-modal-type="record"] .record-entry-modal .modal-head,
body[data-modal-type="missed-record"] .timesheet-modal .modal-head{
  position:relative!important;
  min-height:88px!important;
  padding:calc(22px + env(safe-area-inset-top,0px)) 20px 14px!important;
  background:linear-gradient(180deg,#fffdf8 0%,#f6f1e6 100%)!important;
  border-bottom:1px solid rgba(53,75,51,.10)!important;
}
body[data-modal-type="record"] .record-entry-modal .modal-head h2,
body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2{
  margin:0!important;
  padding-right:58px!important;
  font-size:22px!important;
  line-height:1.08!important;
  font-weight:620!important;
  letter-spacing:-.02em!important;
  color:#16261b!important;
}
body[data-modal-type="record"] .record-entry-modal .modal-x,
body[data-modal-type="missed-record"] .timesheet-modal .modal-x{
  position:absolute!important;
  top:calc(18px + env(safe-area-inset-top,0px))!important;
  right:18px!important;
  width:42px!important;height:42px!important;
  border-radius:14px!important;
  border:1px solid rgba(43,66,47,.10)!important;
  background:#ede7db!important;
  color:#6d756a!important;
  box-shadow:0 4px 10px rgba(22,36,25,.06)!important;
}
body[data-modal-type="record"] .record-entry-modal .modal-body,
body[data-modal-type="missed-record"] .timesheet-modal .modal-body{
  padding:16px 18px 14px!important;
  background:transparent!important;
}
body[data-modal-type="record"] .record-entry-modal .modal-foot,
body[data-modal-type="missed-record"] .timesheet-modal .modal-foot{
  background:rgba(249,245,236,.98)!important;
  border-top:1px solid rgba(53,75,51,.10)!important;
  box-shadow:0 -8px 20px rgba(22,37,24,.06)!important;
}

/* Common field presentation */
body[data-modal-type="record"] .record-entry-modal .field>label,
body[data-modal-type="missed-record"] .timesheet-modal .field>label,
body[data-modal-type="missed-record"] .mr2-field>label{
  font-size:12px!important;
  line-height:1.1!important;
  font-weight:900!important;
  letter-spacing:.02em!important;
  color:#34463a!important;
  text-transform:uppercase!important;
}
body[data-modal-type="record"] .record-entry-modal .input,
body[data-modal-type="record"] .record-entry-modal select.input,
body[data-modal-type="missed-record"] .timesheet-modal .input,
body[data-modal-type="missed-record"] .timesheet-modal select.input,
body[data-modal-type="missed-record"] .mr2 .input{
  height:50px!important;
  border-radius:16px!important;
  border:1px solid rgba(55,82,55,.14)!important;
  background:#fffdfa!important;
  box-shadow:0 2px 8px rgba(28,44,30,.035), inset 0 1px 0 rgba(255,255,255,.9)!important;
  font-size:15.5px!important;
  font-weight:620!important;
  color:#203126!important;
}
body[data-modal-type="record"] .record-entry-modal textarea.input,
body[data-modal-type="missed-record"] .timesheet-modal textarea.input,
body[data-modal-type="missed-record"] .mr2 textarea.mr2-notes{
  min-height:92px!important;
  border-radius:18px!important;
  padding:14px 15px!important;
  line-height:1.45!important;
  resize:none!important;
}

/* Edit existing timesheet entry */
body[data-modal-type="record"] .te-summary-card{
  border-radius:24px!important;
  min-height:128px!important;
  padding:18px 18px!important;
  gap:16px!important;
  background:radial-gradient(circle at 24% 18%,rgba(255,255,255,.12),transparent 28%),linear-gradient(135deg,#2f7344 0%,#1e5531 58%,#133f24 100%)!important;
  box-shadow:0 16px 28px rgba(16,61,32,.18), inset 0 1px 0 rgba(255,255,255,.14)!important;
}
body[data-modal-type="record"] .te-summary-eyebrow{font-size:11px!important;letter-spacing:.13em!important;color:rgba(239,245,236,.72)!important}
body[data-modal-type="record"] .te-client{font-size:21px!important;font-weight:650!important}
body[data-modal-type="record"] .te-status{
  background:rgba(246,205,96,.95)!important;
  color:#5c4300!important;
  border:1px solid rgba(255,255,255,.26)!important;
  padding:6px 12px!important;
  box-shadow:none!important;
}
body[data-modal-type="record"] .te-hours{
  min-width:110px!important;
  padding:12px 12px 10px!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.10)!important;
  border:1px solid rgba(255,255,255,.12)!important;
}
body[data-modal-type="record"] .te-hours strong{font-size:42px!important;line-height:.92!important}
body[data-modal-type="record"] .te-hours span{font-size:10.5px!important;letter-spacing:.12em!important}
body[data-modal-type="record"] .te-variance{
  border-radius:16px!important;
  padding:12px 13px!important;
  background:#fbeceb!important;
  border:1px solid #efc3bc!important;
  color:#a8453d!important;
  font-size:13px!important;
  line-height:1.35!important;
  box-shadow:none!important;
}
body[data-modal-type="record"] .ts-client-picker-compact{
  gap:10px!important;
}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{
  min-height:66px!important;
  border-radius:18px!important;
  padding:13px 14px!important;
  background:linear-gradient(180deg,#f8faf4,#f1f4eb)!important;
  border:1px solid rgba(58,93,59,.12)!important;
}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected strong{font-size:16px!important;font-weight:850!important}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected span{font-size:12px!important;color:#6d776b!important}
body[data-modal-type="record"] .ts-client-change{
  min-height:66px!important;
  width:86px!important;
  border-radius:18px!important;
  background:#edf4ea!important;
  border:1px solid rgba(50,88,52,.16)!important;
  color:#2b5831!important;
  box-shadow:none!important;
}
body[data-modal-type="record"] .te-save-hint{
  margin-top:10px!important;
  padding:11px 12px!important;
  border-radius:14px!important;
  background:#eef4eb!important;
  color:#5f6c62!important;
  border:1px solid rgba(58,93,59,.10)!important;
}
body[data-modal-type="record"] .te-footer-actions{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)!important;gap:12px!important}
body[data-modal-type="record"] .te-cancel-action{
  background:#fffdf8!important;
  border:1px solid rgba(45,72,49,.18)!important;
  color:#315039!important;
}
body[data-modal-type="record"] .te-save-action{
  background:linear-gradient(135deg,#356c47,#17472a)!important;
  box-shadow:0 10px 18px rgba(25,65,40,.14)!important;
}

/* Missed timesheet entry */
body[data-modal-type="missed-record"] .timesheet-modal .modal-head{padding-bottom:12px!important}
body[data-modal-type="missed-record"] .mr2{gap:12px!important}
body[data-modal-type="missed-record"] .mr2-banner{
  padding:16px 16px!important;
  border-radius:24px!important;
  background:radial-gradient(circle at 26% 18%,rgba(255,255,255,.11),transparent 28%),linear-gradient(135deg,#2f7344 0%,#1e5531 58%,#133f24 100%)!important;
  box-shadow:0 16px 28px rgba(16,61,32,.16)!important;
}
body[data-modal-type="missed-record"] .mr2-banner-tx strong{font-size:18px!important;font-weight:650!important;color:#fff!important}
body[data-modal-type="missed-record"] .mr2-banner-tx span{font-size:13px!important;color:rgba(235,243,234,.82)!important;font-weight:700!important}
body[data-modal-type="missed-record"] .mr2-pill{
  padding:8px 14px!important;
  border-radius:999px!important;
  font-size:11.5px!important;
  background:#f1cb63!important;
  color:#4d3801!important;
  border:1px solid rgba(255,255,255,.2)!important;
}
body[data-modal-type="missed-record"] .mr2-row2{gap:12px!important}
body[data-modal-type="missed-record"] .te-client-picker,
body[data-modal-type="missed-record"] .client-pick-wrap{
  padding:14px!important;
  border-radius:18px!important;
  border:1px solid rgba(56,89,57,.12)!important;
  background:linear-gradient(180deg,#f8faf4,#f1f4eb)!important;
}
body[data-modal-type="missed-record"] .mr2 .te-client,
body[data-modal-type="missed-record"] .client-pick-wrap .te-client,
body[data-modal-type="missed-record"] .client-picked-name{
  font-size:18px!important;
  font-weight:850!important;
  color:#1f3424!important;
}
body[data-modal-type="missed-record"] .mr2 .te-sub,
body[data-modal-type="missed-record"] .client-picked-sub{
  font-size:12.5px!important;
  color:#6a756a!important;
}
body[data-modal-type="missed-record"] .mr2 .te-addclient,
body[data-modal-type="missed-record"] .timesheet-modal .te-addclient,
body[data-modal-type="missed-record"] .timesheet-modal .add-client-btn,
body[data-modal-type="missed-record"] .timesheet-modal .ts-add-client-toggle{
  height:48px!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,#edf4e7,#f5efe0)!important;
  border:1px solid rgba(94,121,83,.16)!important;
  color:#2b5831!important;
  font-weight:850!important;
}
body[data-modal-type="missed-record"] .timesheet-modal .modal-foot>.btn{
  height:50px!important;
  border-radius:16px!important;
  font-size:14.5px!important;
  font-weight:850!important;
}
body[data-modal-type="missed-record"] .timesheet-modal .modal-foot>.btn:last-child{
  background:linear-gradient(135deg,#356c47,#17472a)!important;
  color:#fff!important;
  box-shadow:0 10px 18px rgba(25,65,40,.14)!important;
}
body[data-modal-type="missed-record"] .timesheet-modal .modal-foot>.btn:first-child{
  background:#fffdf8!important;
  color:#315039!important;
  border:1px solid rgba(45,72,49,.18)!important;
}

@media(max-width:720px){
  body[data-modal-type="record"] .record-entry-modal .modal-head,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head{
    min-height:92px!important;
    padding:calc(24px + env(safe-area-inset-top,0px)) 16px 12px!important;
  }
  body[data-modal-type="record"] .record-entry-modal .modal-x,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-x{
    top:calc(18px + env(safe-area-inset-top,0px))!important;
    right:14px!important;
    width:40px!important;height:40px!important;
  }
  body[data-modal-type="record"] .record-entry-modal .modal-head h2,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2{font-size:20px!important;padding-right:52px!important}
  body[data-modal-type="record"] .record-entry-modal .modal-body,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-body{padding:14px 14px 12px!important}
  body[data-modal-type="record"] .te-summary-card,
  body[data-modal-type="missed-record"] .mr2-banner{border-radius:22px!important}
  body[data-modal-type="record"] .te-summary-card{grid-template-columns:minmax(0,1fr) 104px!important;min-height:104px!important}
  body[data-modal-type="record"] .te-client{font-size:18px!important;white-space:normal!important}
  body[data-modal-type="record"] .te-hours strong{font-size:36px!important}
  body[data-modal-type="record"] .te-two-col,
  body[data-modal-type="missed-record"] .mr2-row2{gap:10px!important}
  body[data-modal-type="record"] .record-entry-modal textarea.input,
  body[data-modal-type="missed-record"] .mr2 textarea.mr2-notes{min-height:86px!important}
}
@media(max-width:390px){
  body[data-modal-type="record"] .te-two-col,
  body[data-modal-type="missed-record"] .mr2-row2{grid-template-columns:1fr 1fr!important}
  body[data-modal-type="record"] .te-summary-card{grid-template-columns:minmax(0,1fr) 96px!important}
  body[data-modal-type="record"] .te-status{font-size:10.5px!important;padding:5px 10px!important}
}


/* ---- inline style 109 ---- */

/* Premium, calm and mobile-safe Timesheet entry + Missed entry forms. */
body[data-modal-type="record"],
body[data-modal-type="missed-record"]{--ts-green-900:#153821;--ts-green-800:#1d4b2c;--ts-green-700:#2c6840;--ts-green-100:#e8f0e4;--ts-cream:#f6f2e8;--ts-paper:#fffdf8;--ts-line:rgba(42,68,45,.14);}

body[data-modal-type="record"] .modal-overlay,
body[data-modal-type="missed-record"] .modal-overlay{
  background:rgba(11,27,17,.72)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
}
body[data-modal-type="record"] .timesheet-modal,
body[data-modal-type="missed-record"] .timesheet-modal{
  width:min(720px,calc(100vw - 32px))!important;
  max-width:720px!important;
  max-height:min(900px,calc(100dvh - 32px))!important;
  border-radius:28px!important;
  background:var(--ts-cream)!important;
  border:1px solid rgba(255,255,255,.34)!important;
  box-shadow:0 30px 90px rgba(5,18,10,.34)!important;
  overflow:hidden!important;
}

body[data-modal-type="record"] .timesheet-modal .modal-head,
body[data-modal-type="missed-record"] .timesheet-modal .modal-head{
  position:relative!important;
  min-height:94px!important;
  padding:19px 76px 16px 24px!important;
  align-items:flex-start!important;
  background:
    radial-gradient(90% 150% at 92% 0%,rgba(126,169,112,.20),transparent 60%),
    linear-gradient(135deg,var(--ts-green-800),var(--ts-green-900))!important;
  border:0!important;
  box-shadow:0 10px 28px rgba(15,48,27,.18)!important;
}
body[data-modal-type="record"] .timesheet-modal .modal-head h2,
body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2{
  margin:0!important;
  color:#fffdf7!important;
  font-family:var(--font-display,Georgia,serif)!important;
  font-size:27px!important;
  line-height:1.04!important;
  font-weight:650!important;
  letter-spacing:-.025em!important;
}
body[data-modal-type="record"] .timesheet-modal .modal-head h2::after,
body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2::after{
  display:block!important;
  margin-top:8px!important;
  color:rgba(239,245,235,.72)!important;
  font-family:var(--font-sans,system-ui,sans-serif)!important;
  font-size:12.5px!important;
  line-height:1.3!important;
  font-weight:650!important;
  letter-spacing:0!important;
}
body[data-modal-type="record"] .timesheet-modal .modal-head h2::after{content:"Review the hours, job details and any correction notes."!important;}
body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2::after{content:"Send a clear timesheet request to your administrator."!important;}
body[data-modal-type="record"] .timesheet-modal .modal-x,
body[data-modal-type="missed-record"] .timesheet-modal .modal-x{
  position:absolute!important;
  top:18px!important;right:20px!important;
  width:44px!important;height:44px!important;min-width:44px!important;
  border-radius:15px!important;
  display:grid!important;place-items:center!important;
  background:rgba(255,255,255,.10)!important;
  color:#fffdf7!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:none!important;
  font-size:29px!important;
}
body[data-modal-type="record"] .timesheet-modal .modal-x:active,
body[data-modal-type="missed-record"] .timesheet-modal .modal-x:active{transform:scale(.96)!important;background:rgba(255,255,255,.16)!important;}

body[data-modal-type="record"] .timesheet-modal .modal-body,
body[data-modal-type="missed-record"] .timesheet-modal .modal-body{
  padding:18px!important;
  background:
    radial-gradient(120% 80% at 100% 0%,rgba(210,226,201,.34),transparent 58%),
    linear-gradient(180deg,#f3f0e7 0%,#faf8f1 100%)!important;
  scroll-padding-bottom:20px!important;
}

/* Existing record editor */
body[data-modal-type="record"] .te-summary-card{
  min-height:112px!important;
  margin:0 0 12px!important;
  padding:18px 20px!important;
  border-radius:22px!important;
  background:
    radial-gradient(120% 140% at 100% 0%,rgba(137,183,120,.22),transparent 58%),
    linear-gradient(135deg,#2b6a40 0%,#194a2b 70%,#123a21 100%)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow:0 14px 30px rgba(22,71,39,.18),inset 0 1px 0 rgba(255,255,255,.13)!important;
}
body[data-modal-type="record"] .te-summary-eyebrow{font-size:11.5px!important;color:rgba(239,247,237,.72)!important;letter-spacing:.11em!important;}
body[data-modal-type="record"] .te-client{font-size:22px!important;line-height:1.12!important;}
body[data-modal-type="record"] .te-status{
  padding:7px 11px!important;
  border:1px solid rgba(255,255,255,.24)!important;
  box-shadow:none!important;
}
body[data-modal-type="record"] .te-hours{min-width:96px!important;}
body[data-modal-type="record"] .te-hours strong{font-size:42px!important;}
body[data-modal-type="record"] .te-variance{
  margin:0 0 14px!important;
  min-height:46px!important;
  padding:11px 14px!important;
  border-radius:15px!important;
  border:1px solid rgba(171,55,47,.12)!important;
  box-shadow:none!important;
  font-size:12.7px!important;
}
body[data-modal-type="record"] .te-form-grid{
  display:grid!important;
  gap:13px!important;
  padding:17px!important;
  border-radius:22px!important;
  background:rgba(255,253,248,.93)!important;
  border:1px solid var(--ts-line)!important;
  box-shadow:0 10px 24px rgba(35,54,37,.055)!important;
}
body[data-modal-type="record"] .record-entry-modal .field>label{
  font-size:12px!important;
  color:#405044!important;
  letter-spacing:.015em!important;
}
body[data-modal-type="record"] .record-entry-modal .input,
body[data-modal-type="record"] .record-entry-modal select.input{
  height:52px!important;
  border-radius:15px!important;
  border:1px solid rgba(45,72,48,.16)!important;
  background:#fbfaf5!important;
  color:#1c2b20!important;
  font-size:15px!important;
  box-shadow:0 1px 0 rgba(255,255,255,.8),inset 0 1px 2px rgba(35,53,37,.025)!important;
}
body[data-modal-type="record"] .record-entry-modal .input:focus,
body[data-modal-type="record"] .record-entry-modal select.input:focus{
  border-color:rgba(39,101,57,.42)!important;
  box-shadow:0 0 0 4px rgba(48,112,65,.09)!important;
}
body[data-modal-type="record"] .record-entry-modal textarea.input{height:82px!important;min-height:82px!important;max-height:130px!important;padding:13px 14px!important;}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{
  min-height:64px!important;
  padding:12px 14px!important;
  border-radius:16px!important;
  background:linear-gradient(135deg,#eef4e9,#f8f4e9)!important;
}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected strong{font-size:15px!important;}
body[data-modal-type="record"] .ts-client-change{
  width:86px!important;min-height:64px!important;border-radius:16px!important;
  background:#e5efe1!important;
}
body[data-modal-type="record"] .te-save-hint{
  margin:12px 5px 0!important;
  text-align:center!important;
  color:#69746a!important;
  font-size:11.5px!important;
}

/* Missed timesheet request */
body[data-modal-type="missed-record"] .mr2{gap:14px!important;}
body[data-modal-type="missed-record"] .mr2-banner{
  display:grid!important;
  grid-template-columns:48px minmax(0,1fr) auto!important;
  gap:13px!important;
  min-height:88px!important;
  padding:16px!important;
  border-radius:21px!important;
  background:
    radial-gradient(100% 160% at 100% 0%,rgba(150,192,132,.18),transparent 62%),
    linear-gradient(135deg,#2a653d,#173f25)!important;
  border:1px solid rgba(255,255,255,.13)!important;
  box-shadow:0 12px 26px rgba(22,66,38,.15)!important;
}
body[data-modal-type="missed-record"] .mr2-banner-icon{
  width:48px!important;height:48px!important;border-radius:15px!important;
  display:grid!important;place-items:center!important;
  background:rgba(255,255,255,.10)!important;
  border:1px solid rgba(255,255,255,.15)!important;
  color:#f5dd95!important;
}
body[data-modal-type="missed-record"] .mr2-banner-icon svg{width:23px!important;height:23px!important;stroke-width:2!important;}
body[data-modal-type="missed-record"] .mr2-banner-tx strong{font-size:18px!important;line-height:1.15!important;}
body[data-modal-type="missed-record"] .mr2-banner-tx span{font-size:11.5px!important;line-height:1.35!important;}
body[data-modal-type="missed-record"] .mr2-pill{
  padding:7px 11px!important;
  border-radius:999px!important;
  background:#f0ce74!important;
  color:#43330c!important;
  font-size:10.5px!important;
  box-shadow:none!important;
}
body[data-modal-type="missed-record"] .mr2-section{
  display:grid!important;
  gap:12px!important;
  padding:16px!important;
  border-radius:21px!important;
  background:rgba(255,253,248,.94)!important;
  border:1px solid var(--ts-line)!important;
  box-shadow:0 9px 22px rgba(34,53,36,.05)!important;
}
body[data-modal-type="missed-record"] .mr2-section-head{display:grid!important;gap:3px!important;padding-bottom:2px!important;}
body[data-modal-type="missed-record"] .mr2-section-head strong{
  color:#193822!important;
  font-family:var(--font-display,Georgia,serif)!important;
  font-size:17px!important;
  line-height:1.1!important;
  font-weight:650!important;
}
body[data-modal-type="missed-record"] .mr2-section-head span{color:#758077!important;font-size:11.5px!important;line-height:1.35!important;}
body[data-modal-type="missed-record"] .mr2-field{gap:7px!important;}
body[data-modal-type="missed-record"] .mr2-field label{
  color:#435247!important;
  font-size:12px!important;
  font-weight:850!important;
}
body[data-modal-type="missed-record"] .mr2 .input{
  height:52px!important;
  border-radius:15px!important;
  border:1px solid rgba(45,72,48,.16)!important;
  background:#fbfaf5!important;
  color:#1e2d22!important;
  font-size:15px!important;
  box-shadow:none!important;
}
body[data-modal-type="missed-record"] .mr2 .input:focus{
  border-color:rgba(39,101,57,.42)!important;
  box-shadow:0 0 0 4px rgba(48,112,65,.09)!important;
}
body[data-modal-type="missed-record"] .mr2 textarea.mr2-notes{
  min-height:104px!important;height:104px!important;max-height:150px!important;
  padding:13px 14px!important;
}
body[data-modal-type="missed-record"] .ts-client-selected{
  min-height:66px!important;
  padding:12px 14px!important;
  border-radius:16px!important;
  background:linear-gradient(135deg,#eef4e9,#f8f4e9)!important;
  border:1px solid rgba(50,79,52,.13)!important;
}
body[data-modal-type="missed-record"] .ts-client-selected strong{font-size:15.5px!important;color:#1d3824!important;}
body[data-modal-type="missed-record"] .ts-client-selected span{font-size:12px!important;color:#6e796f!important;}
body[data-modal-type="missed-record"] .ts-client-search{
  height:50px!important;
  border-radius:15px!important;
  background:#fbfaf5!important;
  border:1px solid rgba(45,72,48,.16)!important;
}
body[data-modal-type="missed-record"] .ts-add-client-toggle{
  min-height:46px!important;
  border-radius:14px!important;
  background:#edf3e7!important;
  color:#2e663c!important;
}

/* Shared action bar */
body[data-modal-type="record"] .timesheet-modal .modal-foot,
body[data-modal-type="missed-record"] .timesheet-modal .modal-foot{
  min-height:76px!important;
  padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px))!important;
  background:rgba(255,253,248,.98)!important;
  border-top:1px solid rgba(43,66,45,.11)!important;
  box-shadow:0 -10px 28px rgba(31,48,33,.08)!important;
}
body[data-modal-type="record"] .te-footer-actions,
body[data-modal-type="missed-record"] .mr2-footer-actions{
  width:100%!important;
  display:grid!important;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)!important;
  gap:11px!important;
}
body[data-modal-type="record"] .te-footer-actions .btn,
body[data-modal-type="missed-record"] .mr2-footer-actions .btn{
  width:100%!important;
  height:50px!important;
  min-height:50px!important;
  margin:0!important;
  border-radius:16px!important;
  font-size:14px!important;
  font-weight:900!important;
}
body[data-modal-type="record"] .te-cancel-action,
body[data-modal-type="missed-record"] .mr2-cancel-action{
  background:#fffdf8!important;
  color:#31513a!important;
  border:1px solid rgba(46,75,50,.18)!important;
}
body[data-modal-type="record"] .te-save-action,
body[data-modal-type="missed-record"] .mr2-submit-action{
  display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;
  background:linear-gradient(135deg,#316a42,#1a482b)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.10)!important;
  box-shadow:0 8px 18px rgba(26,72,43,.18)!important;
}
body[data-modal-type="record"] .te-save-action svg,
body[data-modal-type="missed-record"] .mr2-submit-action svg{width:18px!important;height:18px!important;stroke:currentColor!important;}

@media(max-width:720px){
  body[data-modal-type="record"] .modal-overlay,
  body[data-modal-type="missed-record"] .modal-overlay{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}
  body[data-modal-type="record"] .timesheet-modal,
  body[data-modal-type="missed-record"] .timesheet-modal{
    width:100%!important;max-width:none!important;height:100%!important;max-height:100%!important;
    border-radius:0!important;border:0!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head{
    min-height:calc(104px + env(safe-area-inset-top,0px))!important;
    padding:calc(18px + env(safe-area-inset-top,0px)) 70px 15px 20px!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head h2,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2{font-size:25px!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-x,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-x{top:calc(16px + env(safe-area-inset-top,0px))!important;right:16px!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-body,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-body{padding:14px!important;}
  body[data-modal-type="record"] .te-summary-card{min-height:104px!important;padding:16px!important;}
  body[data-modal-type="record"] .te-client{font-size:20px!important;}
  body[data-modal-type="record"] .te-hours strong{font-size:37px!important;}
  body[data-modal-type="record"] .te-form-grid,
  body[data-modal-type="missed-record"] .mr2-section{padding:14px!important;border-radius:19px!important;}
  body[data-modal-type="missed-record"] .mr2-banner{grid-template-columns:44px minmax(0,1fr) auto!important;min-height:82px!important;padding:14px!important;border-radius:19px!important;}
  body[data-modal-type="missed-record"] .mr2-banner-icon{width:44px!important;height:44px!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-foot,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-foot{
    min-height:calc(76px + env(safe-area-inset-bottom,0px))!important;
    padding:11px 14px calc(11px + env(safe-area-inset-bottom,0px))!important;
  }
}
@media(max-width:390px){
  body[data-modal-type="record"] .te-two-col,
  body[data-modal-type="missed-record"] .mr2-row2{gap:9px!important;}
  body[data-modal-type="record"] .record-entry-modal .input,
  body[data-modal-type="record"] .record-entry-modal select.input,
  body[data-modal-type="missed-record"] .mr2 .input{font-size:14px!important;padding-left:11px!important;padding-right:11px!important;}
  body[data-modal-type="missed-record"] .mr2-banner-tx strong{font-size:16px!important;}
  body[data-modal-type="missed-record"] .mr2-banner-tx span{font-size:10.5px!important;}
}


/* ---- inline style 110 ---- */

/* v493 — fit Timesheet entry and Missed timesheet entry on one phone page without scrolling. */
@media (max-width: 430px){
  body[data-modal-type="record"] .timesheet-modal,
  body[data-modal-type="missed-record"] .timesheet-modal{
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    height:100dvh!important;
    max-height:100dvh!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head{
    min-height:calc(76px + env(safe-area-inset-top,0px))!important;
    padding:calc(11px + env(safe-area-inset-top,0px)) 58px 10px 16px!important;
    box-shadow:0 6px 18px rgba(15,48,27,.14)!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head h2,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2{
    font-size:20px!important;
    line-height:1.02!important;
    letter-spacing:-.02em!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head h2::after,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2::after{
    margin-top:5px!important;
    font-size:11px!important;
    line-height:1.22!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-x,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-x{
    top:calc(10px + env(safe-area-inset-top,0px))!important;
    right:14px!important;
    width:38px!important;height:38px!important;min-width:38px!important;
    border-radius:13px!important;
    font-size:25px!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-body,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-body{
    padding:10px 12px 8px!important;
    overflow:auto!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-foot,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-foot{
    min-height:calc(64px + env(safe-area-inset-bottom,0px))!important;
    padding:9px 12px calc(9px + env(safe-area-inset-bottom,0px))!important;
    box-shadow:0 -8px 18px rgba(31,48,33,.06)!important;
  }
  body[data-modal-type="record"] .te-footer-actions .btn,
  body[data-modal-type="missed-record"] .mr2-footer-actions .btn{
    height:46px!important;min-height:46px!important;border-radius:14px!important;font-size:13px!important;
  }

  /* Existing timesheet entry */
  body[data-modal-type="record"] .te-summary-card{
    min-height:88px!important;
    margin:0 0 9px!important;
    padding:12px 14px!important;
    border-radius:18px!important;
    gap:10px!important;
    grid-template-columns:minmax(0,1fr) 88px!important;
  }
  body[data-modal-type="record"] .te-summary-eyebrow{font-size:10px!important;letter-spacing:.1em!important;}
  body[data-modal-type="record"] .te-client{font-size:18px!important;line-height:1.05!important;}
  body[data-modal-type="record"] .te-status{padding:5px 9px!important;font-size:10.5px!important;}
  body[data-modal-type="record"] .te-hours{min-width:88px!important;padding:10px 10px 8px!important;border-radius:15px!important;}
  body[data-modal-type="record"] .te-hours strong{font-size:32px!important;}
  body[data-modal-type="record"] .te-hours span{font-size:9.5px!important;}
  body[data-modal-type="record"] .te-variance{
    margin:0 0 10px!important;
    min-height:40px!important;
    padding:9px 11px!important;
    border-radius:13px!important;
    font-size:11.5px!important;
    line-height:1.24!important;
  }
  body[data-modal-type="record"] .te-form-grid{
    gap:10px!important;
    padding:12px!important;
    border-radius:18px!important;
  }
  body[data-modal-type="record"] .record-entry-modal .field>label{font-size:11px!important;}
  body[data-modal-type="record"] .record-entry-modal .input,
  body[data-modal-type="record"] .record-entry-modal select.input{
    height:46px!important;
    border-radius:14px!important;
    font-size:14px!important;
  }
  body[data-modal-type="record"] .record-entry-modal textarea.input{
    height:66px!important;min-height:66px!important;max-height:66px!important;padding:11px 12px!important;
  }
  body[data-modal-type="record"] .ts-client-picker-compact{gap:9px!important;}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{min-height:56px!important;padding:10px 12px!important;border-radius:14px!important;}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected strong{font-size:14px!important;}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected span{font-size:11px!important;line-height:1.25!important;}
  body[data-modal-type="record"] .ts-client-change{min-height:56px!important;width:78px!important;border-radius:14px!important;}
  body[data-modal-type="record"] .te-save-hint{margin:8px 3px 0!important;padding:0!important;background:transparent!important;border:0!important;font-size:10.5px!important;line-height:1.25!important;}

  /* Missed timesheet request */
  body[data-modal-type="missed-record"] .mr2{gap:10px!important;}
  body[data-modal-type="missed-record"] .mr2-banner{
    min-height:66px!important;
    padding:11px 12px!important;
    gap:10px!important;
    grid-template-columns:40px minmax(0,1fr) auto!important;
    border-radius:17px!important;
    box-shadow:0 8px 20px rgba(22,66,38,.11)!important;
  }
  body[data-modal-type="missed-record"] .mr2-banner-icon{width:40px!important;height:40px!important;border-radius:12px!important;}
  body[data-modal-type="missed-record"] .mr2-banner-icon svg{width:20px!important;height:20px!important;}
  body[data-modal-type="missed-record"] .mr2-banner-tx strong{font-size:15px!important;line-height:1.06!important;}
  body[data-modal-type="missed-record"] .mr2-banner-tx span{font-size:10.5px!important;line-height:1.18!important;}
  body[data-modal-type="missed-record"] .mr2-pill{padding:6px 9px!important;font-size:10px!important;align-self:start!important;}
  body[data-modal-type="missed-record"] .mr2-section{
    gap:9px!important;
    padding:11px!important;
    border-radius:17px!important;
    box-shadow:0 6px 14px rgba(34,53,36,.04)!important;
  }
  body[data-modal-type="missed-record"] .mr2-section-head{gap:1px!important;padding-bottom:0!important;}
  body[data-modal-type="missed-record"] .mr2-section-head strong{font-size:14px!important;line-height:1.05!important;}
  body[data-modal-type="missed-record"] .mr2-section-head span{font-size:10px!important;line-height:1.18!important;}
  body[data-modal-type="missed-record"] .mr2-field{gap:5px!important;}
  body[data-modal-type="missed-record"] .mr2-field label{font-size:10.5px!important;}
  body[data-modal-type="missed-record"] .mr2 .input,
  body[data-modal-type="missed-record"] .ts-client-search{
    height:44px!important;
    border-radius:13px!important;
    font-size:14px!important;
    padding-left:11px!important;padding-right:11px!important;
  }
  body[data-modal-type="missed-record"] .mr2 textarea.mr2-notes{
    min-height:62px!important;height:62px!important;max-height:62px!important;
    border-radius:14px!important;
    padding:10px 12px!important;
    line-height:1.3!important;
  }
  body[data-modal-type="missed-record"] .mr2-row2{gap:8px!important;}
  body[data-modal-type="missed-record"] .ts-client-selected{
    min-height:52px!important;
    padding:10px 12px!important;
    border-radius:14px!important;
  }
  body[data-modal-type="missed-record"] .ts-client-selected strong{font-size:14px!important;line-height:1.08!important;}
  body[data-modal-type="missed-record"] .ts-client-selected span{font-size:11px!important;line-height:1.22!important;}
  body[data-modal-type="missed-record"] .ts-add-client-toggle,
  body[data-modal-type="missed-record"] .mr2 .te-addclient,
  body[data-modal-type="missed-record"] .timesheet-modal .te-addclient,
  body[data-modal-type="missed-record"] .timesheet-modal .add-client-btn{
    min-height:40px!important;height:40px!important;border-radius:13px!important;font-size:12.5px!important;
  }
}

@media (max-width: 390px){
  body[data-modal-type="record"] .timesheet-modal .modal-head,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head{padding-left:14px!important;padding-right:54px!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-head h2,
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2{font-size:18.5px!important;}
  body[data-modal-type="record"] .te-client{font-size:17px!important;}
  body[data-modal-type="record"] .te-hours strong{font-size:29px!important;}
  body[data-modal-type="missed-record"] .mr2-banner-tx strong{font-size:14px!important;}
}


/* ---- inline style 111 ---- */

@media (max-width:430px){
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head{min-height:calc(68px + env(safe-area-inset-top,0px))!important;padding:calc(9px + env(safe-area-inset-top,0px)) 54px 8px 14px!important;}
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2{font-size:18px!important;line-height:1!important;}
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2::after{margin-top:4px!important;font-size:10px!important;line-height:1.14!important;}
  body[data-modal-type="missed-record"] .timesheet-modal .modal-body{padding:8px 10px 6px!important;}
  body[data-modal-type="missed-record"] .mr2{gap:8px!important;}
  body[data-modal-type="missed-record"] .mr2-banner{min-height:58px!important;padding:10px 11px!important;grid-template-columns:36px minmax(0,1fr) auto!important;}
  body[data-modal-type="missed-record"] .mr2-banner-icon{width:36px!important;height:36px!important;}
  body[data-modal-type="missed-record"] .mr2-banner-tx strong{font-size:14px!important;}
  body[data-modal-type="missed-record"] .mr2-banner-tx span{font-size:9.5px!important;}
  body[data-modal-type="missed-record"] .mr2-pill{padding:5px 8px!important;font-size:9.5px!important;}
  body[data-modal-type="missed-record"] .mr2-section{gap:8px!important;padding:9px!important;border-radius:16px!important;}
  body[data-modal-type="missed-record"] .mr2-section-head strong{font-size:13px!important;}
  body[data-modal-type="missed-record"] .mr2-section-head span{font-size:9.5px!important;line-height:1.12!important;}
  body[data-modal-type="missed-record"] .mr2-field{gap:4px!important;}
  body[data-modal-type="missed-record"] .mr2 .input,
  body[data-modal-type="missed-record"] .ts-client-search{height:40px!important;border-radius:12px!important;font-size:13.5px!important;}
  body[data-modal-type="missed-record"] .ts-client-selected{min-height:46px!important;padding:8px 10px!important;}
  body[data-modal-type="missed-record"] .ts-client-selected strong{font-size:13px!important;}
  body[data-modal-type="missed-record"] .ts-client-selected span{font-size:10.5px!important;}
  body[data-modal-type="missed-record"] .ts-add-client-toggle,
  body[data-modal-type="missed-record"] .te-addclient,
  body[data-modal-type="missed-record"] .timesheet-modal .add-client-btn{min-height:36px!important;height:36px!important;font-size:12px!important;}
  body[data-modal-type="missed-record"] .mr2 textarea.mr2-notes{min-height:52px!important;height:52px!important;max-height:52px!important;padding:9px 10px!important;font-size:13.5px!important;}
  body[data-modal-type="missed-record"] .timesheet-modal .modal-foot{min-height:calc(58px + env(safe-area-inset-bottom,0px))!important;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px))!important;}
  body[data-modal-type="missed-record"] .mr2-footer-actions .btn{height:42px!important;min-height:42px!important;font-size:12.5px!important;}
}


/* ---- inline style 112 ---- */

/* Employee timesheet summary actions */
.ets-summary-actions{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:10px;margin:14px 0 16px}
.ets-summary-actions button{min-height:54px;border-radius:16px;font:800 14px/1.1 var(--font-body,Arial,sans-serif);display:flex;align-items:center;justify-content:center;gap:8px;padding:0 13px}
.ets-summary-actions svg{width:18px;height:18px;stroke:currentColor}
.ets-summary-actions .ets-download{margin:0!important;width:auto!important;background:#fffdf8!important;border:1px solid rgba(102,62,39,.22)!important;color:#875137!important;box-shadow:0 7px 16px rgba(39,50,39,.07)!important}
.ets-email-summary{border:1px solid rgba(255,255,255,.14);background:linear-gradient(135deg,#2f6b42,#174829);color:#fff;box-shadow:0 8px 18px rgba(23,72,41,.18)}

/* Weekly summary preview */
.ww494-wsum .wsum2-hero{padding-bottom:18px!important}
.ww494-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 15px}
.ww494-status-grid>div{display:grid;gap:2px;padding:11px 10px;border-radius:14px;border:1px solid transparent;min-width:0}
.ww494-status-grid b{font-size:21px;line-height:1;font-weight:900}
.ww494-status-grid span{font-size:10px;line-height:1.15;font-weight:900;text-transform:uppercase;letter-spacing:.035em}
.ww494-status-grid em{font-size:9.5px;line-height:1.25;font-style:normal;font-weight:720;opacity:.78}
.ww494-status-grid .pending{background:#fff4d5;color:#74540d;border-color:#eedaa3}
.ww494-status-grid .flagged{background:#fde8e5;color:#9c3e35;border-color:#f0cbc6}
.ww494-status-grid .paid{background:#e6eef4;color:#34586f;border-color:#ccdce7}
.ww494-wsum .wsum-shift{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;width:100%!important}
.wsum-status{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:999px;padding:4px 7px;font-size:8.5px;line-height:1;font-weight:900}
.wsum-status.approved{background:#dff0df;color:#2d6339}.wsum-status.pending{background:#fff0c4;color:#79570d}.wsum-status.flagged{background:#f8dcda;color:#9c3b34}.wsum-status.paid{background:#dfe9f1;color:#34576e}
.ww494-wsum .wsum2-foot{background:#fff5dc!important;border:1px solid #eddbac!important;border-radius:12px!important;padding:10px 11px!important;color:#6b531b!important;line-height:1.35!important}
.ww494-summary-foot{width:100%;display:grid;grid-template-columns:1fr 1fr .76fr;gap:8px}
.ww494-summary-foot .btn{width:100%;height:48px;min-height:48px;margin:0!important;border-radius:14px;font-size:12.5px;padding:0 8px}
.ww494-summary-foot svg{width:16px;height:16px}

/* Admin weekly email settings card */
.ww494-weekly-card{display:grid;gap:13px;padding:16px;border-radius:22px;background:linear-gradient(145deg,#f7f4e9,#eaf2e7);border:1px solid rgba(45,75,49,.13);box-shadow:0 8px 22px rgba(30,52,34,.06)}
.ww494-weekly-top{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px}
.ww494-weekly-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#2f7044,#19492a);color:#fff;box-shadow:0 7px 14px rgba(24,71,41,.17)}
.ww494-weekly-icon svg{width:22px;height:22px;stroke:currentColor}
.ww494-weekly-top>span:nth-child(2){display:grid;gap:4px;min-width:0}.ww494-weekly-top strong{font-size:15.5px;color:#1b3c25}.ww494-weekly-top small{font-size:11px;line-height:1.3;color:#6e7b70}
.ww494-weekly-chip{padding:7px 9px;border-radius:999px;font-size:10px;font-weight:950;letter-spacing:.06em}.ww494-weekly-chip.on{background:#dcefdc;color:#276237}.ww494-weekly-chip.off{background:#eeeae1;color:#737168}
.ww494-weekly-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ww494-weekly-stats span{display:grid;gap:2px;padding:10px 12px;border-radius:13px;background:rgba(255,255,255,.73);border:1px solid rgba(45,75,49,.09)}.ww494-weekly-stats b{font-size:18px;color:#254f31}.ww494-weekly-stats em{font-style:normal;font-size:10px;font-weight:780;color:#748075}
.ww494-weekly-card>.btn{width:100%;height:48px;border-radius:14px}

/* Weekly email settings modal */
.ww494-settings{display:grid;gap:13px}
.ww494-settings-hero{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;padding:15px;border-radius:18px;background:linear-gradient(135deg,#285f3b,#153c24);color:#fff}
.ww494-settings-hero>span{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16)}.ww494-settings-hero svg{width:23px;height:23px}.ww494-settings-hero div{display:grid;gap:4px}.ww494-settings-hero strong{font-family:var(--font-display,Georgia,serif);font-size:18px}.ww494-settings-hero small{font-size:11px;line-height:1.35;color:rgba(244,248,241,.78)}
.ww494-toggle{display:grid;grid-template-columns:minmax(0,1fr) 52px;align-items:center;gap:12px;padding:13px 14px;border-radius:16px;background:#f5f4ec;border:1px solid rgba(47,72,49,.12)}.ww494-toggle>span{display:grid;gap:3px}.ww494-toggle strong{font-size:14px;color:#243f2b}.ww494-toggle small{font-size:10.5px;color:#788178}.ww494-toggle input{position:absolute;opacity:0;pointer-events:none}.ww494-toggle i{position:relative;width:52px;height:30px;border-radius:999px;background:#c9cec7;transition:.18s}.ww494-toggle i:after{content:"";position:absolute;width:24px;height:24px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.18);transition:.18s}.ww494-toggle input:checked+i{background:#2f7044}.ww494-toggle input:checked+i:after{transform:translateX(22px)}
.ww494-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ww494-settings-grid .field{margin:0}.ww494-settings-grid .input{height:50px;border-radius:14px}
.ww494-recipient-card{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ww494-recipient-card>div{display:grid;gap:3px;padding:12px;border-radius:14px;background:#e8f1e5;color:#2a5e38}.ww494-recipient-card .warn{background:#fff1df;color:#8b5b20}.ww494-recipient-card b{font-size:22px}.ww494-recipient-card span{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.035em}
.ww494-missing{margin:0;padding:9px 11px;border-radius:12px;background:#fff5e9;color:#885a24;font-size:11px;line-height:1.35;font-weight:720}
.ww494-email-note{display:grid;gap:4px;padding:12px 13px;border-radius:14px;background:#edf3ea;border:1px solid rgba(43,75,47,.10)}.ww494-email-note strong{font-size:12px;color:#285536}.ww494-email-note span{font-size:10.5px;line-height:1.4;color:#6f7b70}

@media(max-width:430px){
  .ets-summary-actions{gap:8px}.ets-summary-actions button{min-height:50px;font-size:12px;padding:0 9px}
  .ww494-status-grid{gap:6px}.ww494-status-grid>div{padding:9px 7px}.ww494-status-grid b{font-size:18px}.ww494-status-grid span{font-size:8.8px}.ww494-status-grid em{font-size:8.5px}
  .ww494-summary-foot{grid-template-columns:1fr 1fr .68fr;gap:6px}.ww494-summary-foot .btn{font-size:11px;height:44px;min-height:44px}
  .ww494-settings-grid{gap:8px}.ww494-settings-grid .input{height:46px}
}
@media(max-width:365px){.ww494-status-grid{grid-template-columns:1fr}.ww494-summary-foot{grid-template-columns:1fr 1fr}.ww494-summary-foot .btn:last-child{grid-column:1/-1}.ets-summary-actions{grid-template-columns:1fr}}


/* ---- inline style 113 ---- */

@media(max-width:430px){
  .ww494-wsum .wsum-day{align-items:flex-start!important;padding:10px!important;gap:9px!important}
  .ww494-wsum .wsum-info{padding-top:1px!important}
  .ww494-wsum .wsum-shift{grid-template-columns:1fr!important;gap:5px!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.28!important}
  .ww494-wsum .wsum-shift>span:first-child{display:block!important;white-space:normal!important;overflow:visible!important;word-break:normal!important}
  .ww494-wsum .wsum-status{justify-self:start!important;font-size:8px!important;padding:4px 6px!important}
  .ww494-wsum .wsum-hrs{padding-top:4px!important;font-size:12.5px!important}
}


/* ---- inline style 114 ---- */

/* Desktop/tablet Messages list: remove job titles from personal chats and
   allow names, dates and message previews to use the space properly. */
body .chat-list.cv-list .cv-type-dm .cv-sub,
body .chat-list.cv-list .cv-person .cv-sub{display:none!important}
body .chat-list.cv-list .cv-person-hint{
  display:block!important;min-width:0!important;color:#7d8981!important;
  font-size:12px!important;line-height:1.25!important;font-weight:650!important;
  white-space:normal!important;overflow:visible!important;text-overflow:clip!important;
}
@media (min-width:768px){
  body .chat-list.cv-list .cv-row,
  body .chat-list.cv-list .cv-row.cv-pinned,
  body .chat-list.cv-list .cv-row.cv-person{
    height:auto!important;min-height:82px!important;
    padding:12px 14px!important;gap:13px!important;
    overflow:visible!important;align-items:center!important;
  }
  body .chat-list.cv-list .cv-row.cv-type-group,
  body .chat-list.cv-list .cv-row.cv-type-team,
  body .chat-list.cv-list .cv-row.cv-type-workphotos,
  body .chat-list.cv-list .cv-row.cv-type-announcement{min-height:92px!important}
  body .chat-list.cv-list .cv-body{
    min-width:0!important;height:auto!important;overflow:visible!important;gap:4px!important;
    justify-content:center!important;
  }
  body .chat-list.cv-list .cv-top{
    display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
    align-items:start!important;gap:9px!important;width:100%!important;height:auto!important;min-width:0!important;
  }
  body .chat-list.cv-list .cv-name{
    min-width:0!important;max-width:none!important;font-size:16px!important;line-height:1.14!important;
    white-space:normal!important;overflow:visible!important;text-overflow:clip!important;word-break:normal!important;
  }
  body .chat-list.cv-list .cv-meta-right{
    display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:6px!important;
    min-width:max-content!important;max-width:44%!important;
  }
  body .chat-list.cv-list .cv-time{
    font-size:11.5px!important;line-height:1.2!important;white-space:nowrap!important;
    overflow:visible!important;text-overflow:clip!important;
  }
  body .chat-list.cv-list .cv-sub{
    display:block!important;height:auto!important;min-height:0!important;
    font-size:12px!important;line-height:1.25!important;
    white-space:normal!important;overflow:visible!important;text-overflow:clip!important;
  }
  body .chat-list.cv-list .cv-type-dm .cv-sub{display:none!important}
  body .chat-list.cv-list .cv-last{
    display:-webkit-box!important;height:auto!important;max-height:none!important;
    font-size:13px!important;line-height:1.28!important;
    white-space:normal!important;overflow:hidden!important;text-overflow:clip!important;
    -webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;
    word-break:break-word!important;
  }
  body .chat-list.cv-list .cv-av,
  body .chat-list.cv-list .cv-av .avatar{width:48px!important;height:48px!important;flex-basis:48px!important}
}
@media (min-width:1024px){
  .chat-shell{grid-template-columns:minmax(420px,440px) minmax(0,1fr)!important}
  body .chat-list.cv-list{width:auto!important;min-width:0!important;padding:14px!important}
}
@media (min-width:1024px) and (max-width:1180px){
  .chat-shell{grid-template-columns:minmax(390px,410px) minmax(0,1fr)!important}
}


/* ---- inline style 115 ---- */

.gps-app-chooser .gps-primary{border-color:rgba(66,133,244,.34);box-shadow:0 8px 20px rgba(31,95,189,.10),inset 0 0 0 1px rgba(66,133,244,.08)}
.gps-app-chooser .gps-android .aec-app-icon{background:linear-gradient(145deg,#71a95c,#386f3d)}
.gps-app-chooser.is-android .aec-options{grid-template-columns:1fr}


/* ---- inline style 116 ---- */

.gps-app-chooser .gps-primary strong::after{content:none!important;display:none!important}


/* ---- inline style 117 ---- */

.v499-clock-tabs{max-width:760px;margin:0 auto 12px!important;padding:5px!important;border-radius:22px!important;box-shadow:0 8px 24px rgba(29,58,34,.09)!important}
.v499-clock-tabs button{height:46px!important;border-radius:16px!important;font-size:13px!important;gap:8px!important}
.v499-clock-page{max-width:760px;margin:0 auto;padding:0 0 18px;display:grid;gap:16px}
.v499-ready-card,.v499-active-card{position:relative;overflow:hidden;border-radius:28px}
.v499-ready-card{padding:18px;background:linear-gradient(145deg,#143d25 0%,#245a36 48%,#153421 100%);color:#fff;box-shadow:0 18px 42px rgba(18,52,30,.24),inset 0 1px 0 rgba(255,255,255,.12)}
.v499-ready-pattern{position:absolute;inset:0;pointer-events:none;opacity:.48}
.v499-ready-pattern i{position:absolute;border:1px solid rgba(223,194,117,.18);border-radius:50%}
.v499-ready-pattern i:nth-child(1){width:250px;height:250px;right:-95px;top:-135px}.v499-ready-pattern i:nth-child(2){width:178px;height:178px;right:-55px;top:-96px}.v499-ready-pattern i:nth-child(3){width:118px;height:118px;right:-25px;top:-65px;background:radial-gradient(circle,rgba(229,194,106,.12),transparent 70%)}
.v499-ready-top,.v499-active-top{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px}
.v499-ready-status,.v499-live-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.09);font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#e8efd9;border:1px solid rgba(255,255,255,.08)}
.v499-ready-status i,.v499-live-pill i{width:8px;height:8px;border-radius:50%;background:#72d67f;box-shadow:0 0 0 4px rgba(114,214,127,.17)}
.v499-ready-top>em,.v499-active-date{font-style:normal;font-size:11px;font-weight:750;color:rgba(255,255,255,.62)}
.v499-ready-main{position:relative;z-index:2;display:grid;grid-template-columns:122px minmax(0,1fr);gap:18px;align-items:center;margin:18px 0}
.v499-time-orb{position:relative;width:122px;height:122px;border-radius:50%;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 38% 32%,#fffdf4 0%,#edf2df 52%,#c6d6bd 100%);box-shadow:0 12px 26px rgba(3,20,10,.28),inset 0 0 0 7px rgba(255,255,255,.34),inset 0 0 0 8px rgba(54,89,51,.16);color:#173923}
.v499-time-orb::before{content:"";position:absolute;inset:-7px;border-radius:inherit;border:1px solid rgba(229,195,110,.46)}
.v499-time-orb span{display:block;font-size:27px;font-weight:950;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}.v499-time-orb em{position:absolute;bottom:28px;font-style:normal;font-size:8.5px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;color:#657563}
.v499-ready-copy>span{font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:#dfc273}.v499-ready-copy h2{font-family:var(--font-display,Georgia,serif);font-size:24px;line-height:1.05;margin:6px 0 6px;color:#fff;font-weight:650}.v499-ready-copy p{font-size:13px;line-height:1.4;margin:0;color:rgba(255,255,255,.7)}
.v499-ready-stats{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:2px}.v499-ready-stats>div{padding:11px 9px;border-radius:15px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.08)}.v499-ready-stats span{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.5);font-weight:850}.v499-ready-stats strong{display:block;margin-top:3px;font-size:18px;color:#fff;font-weight:900}
.v499-timesheet-link{position:relative;z-index:2;margin-top:11px;width:100%;height:46px;border:0;border-radius:15px;background:rgba(255,255,255,.94);color:#21472b;display:grid;grid-template-columns:20px 1fr 20px;align-items:center;gap:8px;padding:0 15px;font-size:13px;font-weight:900;box-shadow:0 8px 18px rgba(5,22,12,.18)}.v499-timesheet-link svg{width:18px;height:18px}.v499-timesheet-link svg:last-child{transform:rotate(180deg)}
.v499-schedule-head{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:3px 4px 0}.v499-schedule-head span{display:block;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#a2603d}.v499-schedule-head h3{font-family:var(--font-display,Georgia,serif);font-size:22px;margin:3px 0 0;color:#19301f}.v499-schedule-head>strong{font-size:11px;color:#55705a;background:#edf3e8;border:1px solid rgba(54,91,55,.1);padding:6px 10px;border-radius:999px}
.v499-shift-list{display:grid;gap:10px}.v499-shift-card{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;overflow:hidden;padding:13px;border-radius:20px;background:linear-gradient(135deg,#fffdf7,#f4f5eb);border:1px solid rgba(37,66,39,.1);box-shadow:0 8px 22px rgba(25,45,28,.07)}.v499-shift-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,var(--shift-accent),var(--shift-deep))}.v499-shift-card::after{content:"";position:absolute;right:-30px;top:-42px;width:110px;height:110px;border-radius:50%;background:color-mix(in srgb,var(--shift-accent) 10%,transparent)}
.v499-shift-index{position:relative;z-index:1;width:43px;height:43px;border-radius:14px;background:color-mix(in srgb,var(--shift-accent) 16%,#fff);color:var(--shift-deep);display:grid;place-items:center;font-size:12px;font-weight:950;letter-spacing:.05em;border:1px solid color-mix(in srgb,var(--shift-accent) 24%,transparent)}
.v499-shift-copy{position:relative;z-index:1;min-width:0}.v499-shift-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.v499-shift-meta span{font-size:12.5px;color:var(--shift-deep);font-weight:900}.v499-shift-meta em{font-style:normal;font-size:9.5px;font-weight:900;color:var(--shift-deep);padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--shift-accent) 14%,#fff)}.v499-shift-copy h4{font-family:var(--font-display,Georgia,serif);font-size:18px;line-height:1.05;margin:5px 0 5px;color:#1a2d1e}.v499-shift-address{width:100%;padding:0;border:0;background:transparent;color:#687269;display:flex;align-items:center;gap:6px;text-align:left;font-size:11.5px;min-width:0}.v499-shift-address svg{width:13px;height:13px;flex:0 0 13px;color:var(--shift-deep)}.v499-shift-address span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v499-shift-actions{display:flex;gap:8px;margin-top:10px}.v499-shift-actions button,.v499-shift-state{min-height:39px;border-radius:12px;border:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:900}.v499-shift-actions button svg,.v499-shift-state svg{width:15px;height:15px}.v499-shift-start,.v499-shift-accept{flex:1;background:linear-gradient(140deg,var(--shift-accent),var(--shift-deep));color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--shift-accent) 24%,transparent)}.v499-shift-reject{flex:0 0 92px;background:#fff2ef;color:#a6463d;border:1px solid rgba(166,70,61,.13)!important}.v499-shift-state{width:100%}.v499-shift-state.done{background:#e6f2e5;color:#2f6c3a}.v499-shift-state.declined{background:#fff0ed;color:#a4463c}.v499-shift-card.done{opacity:.76}.v499-shift-card.declined{opacity:.68}
.v499-empty-state{text-align:center;padding:28px 18px;border-radius:22px;background:#fffdf8;border:1px solid rgba(38,67,40,.09);box-shadow:0 8px 24px rgba(24,43,27,.06)}.v499-empty-icon{width:54px;height:54px;margin:0 auto 10px;border-radius:17px;background:linear-gradient(145deg,#dcebd7,#f4eedc);display:grid;place-items:center;color:#387045}.v499-empty-icon svg{width:25px;height:25px}.v499-empty-state strong{display:block;font-family:var(--font-display,Georgia,serif);font-size:20px;color:#19301f}.v499-empty-state p{font-size:12.5px;color:#748075;margin:5px 0 13px}.v499-empty-state button{height:40px;border:0;border-radius:12px;background:#e8efe4;color:#2e5b37;padding:0 14px;font-weight:850;display:inline-flex;align-items:center;gap:6px}.v499-empty-state button svg{width:15px;height:15px}
.v499-active-card{padding:18px;background:linear-gradient(155deg,#0e2d1b,#1b5130 56%,#123923);color:#fff;box-shadow:0 20px 44px rgba(9,35,18,.3)}.v499-active-glow{position:absolute;inset:0;background:radial-gradient(circle at 50% 18%,rgba(103,214,132,.22),transparent 42%),radial-gradient(circle at 95% 90%,rgba(224,188,93,.13),transparent 40%);pointer-events:none}.v499-live-pill{position:relative;z-index:2}.v499-timer-orbit{position:relative;z-index:2;width:190px;height:190px;margin:18px auto 12px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(from 15deg,rgba(229,195,112,.95),rgba(112,203,126,.8),rgba(255,255,255,.15),rgba(229,195,112,.95));padding:7px;box-shadow:0 18px 36px rgba(0,0,0,.25)}.v499-timer-orbit::before,.v499-timer-orbit::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.1)}.v499-timer-orbit::before{inset:-9px}.v499-timer-orbit::after{inset:-18px;border-color:rgba(229,195,112,.14)}.v499-timer-ring{width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 42% 34%,#224f31,#102e1c 70%);display:grid;place-items:center;text-align:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.v499-timer-ring span{font-size:34px;font-weight:950;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.v499-timer-ring em{position:absolute;margin-top:49px;font-style:normal;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.5);font-weight:850}
.v499-progress{position:relative;z-index:2;height:7px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden}.v499-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e4be65,#73cf86);transition:width .8s ease}.v499-progress-labels{position:relative;z-index:2;display:flex;justify-content:space-between;gap:8px;margin-top:6px;font-size:9.5px;color:rgba(255,255,255,.55);font-weight:750}.v499-active-job{position:relative;z-index:2;margin-top:15px;padding:13px;border-radius:17px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.09);display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px}.v499-active-job-icon{width:42px;height:42px;border-radius:13px;background:rgba(222,193,111,.16);color:#e5c06a;display:grid;place-items:center}.v499-active-job-icon svg{width:21px;height:21px}.v499-active-job>div:last-child>span{font-size:8.5px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.48)}.v499-active-job h2{font-family:var(--font-display,Georgia,serif);font-size:19px;margin:2px 0 4px;color:#fff}.v499-active-job button{padding:0;border:0;background:transparent;color:rgba(255,255,255,.67);font-size:10.5px;display:flex;align-items:center;gap:5px;text-align:left}.v499-active-job button svg{width:12px;height:12px;flex:0 0 12px;color:#8fd79c}
.v499-active-stats{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.v499-active-stats>div{padding:10px 8px;border-radius:13px;background:rgba(255,255,255,.065);text-align:center}.v499-active-stats span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.44);font-weight:850}.v499-active-stats strong{display:block;margin-top:3px;font-size:15px;color:#fff}.v499-clockout{position:relative;z-index:2;width:100%;min-height:56px;margin-top:12px;border:0;border-radius:16px;background:linear-gradient(135deg,#fffdf6,#edf2e4);color:#183c24;display:grid;grid-template-columns:22px 1fr;align-items:center;gap:10px;padding:9px 15px;text-align:left;box-shadow:0 10px 22px rgba(0,0,0,.22)}.v499-clockout>svg{width:21px;height:21px}.v499-clockout span{display:grid}.v499-clockout strong{font-size:14px}.v499-clockout em{font-style:normal;font-size:9.5px;color:#687768;font-weight:650;margin-top:1px}
@media(min-width:760px){.v499-clock-page{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:start}.v499-clock-page>.v499-ready-card,.v499-clock-page>.v499-active-card{grid-column:1}.v499-clock-page>.v499-schedule-head,.v499-clock-page>.v499-shift-list,.v499-clock-page>.v499-empty-state{grid-column:2}.v499-clock-page>.v499-schedule-head{margin-top:4px}.v499-shift-list{max-height:620px;overflow:auto;padding-right:3px}.v499-ready-card,.v499-active-card{position:sticky;top:14px}}
@media(max-width:430px){.v499-clock-tabs{margin-bottom:9px!important}.v499-clock-tabs button{height:42px!important;font-size:12px!important}.v499-clock-page{gap:13px}.v499-ready-card,.v499-active-card{border-radius:24px;padding:15px}.v499-ready-main{grid-template-columns:104px minmax(0,1fr);gap:14px;margin:15px 0}.v499-time-orb{width:104px;height:104px}.v499-time-orb span{font-size:23px}.v499-time-orb em{bottom:23px;font-size:7.5px}.v499-ready-copy h2{font-size:21px}.v499-ready-copy p{font-size:11.5px}.v499-ready-stats>div{padding:9px 7px}.v499-ready-stats strong{font-size:16px}.v499-timesheet-link{height:43px}.v499-schedule-head h3{font-size:19px}.v499-shift-card{grid-template-columns:42px minmax(0,1fr);gap:10px;padding:11px;border-radius:18px}.v499-shift-index{width:38px;height:38px;border-radius:12px}.v499-shift-copy h4{font-size:16.5px}.v499-shift-actions button,.v499-shift-state{min-height:36px;font-size:11px}.v499-shift-reject{flex-basis:82px}.v499-timer-orbit{width:168px;height:168px}.v499-timer-ring span{font-size:31px}.v499-active-stats strong{font-size:14px}}
@media(max-width:360px){.v499-ready-main{grid-template-columns:90px minmax(0,1fr);gap:11px}.v499-time-orb{width:90px;height:90px}.v499-time-orb span{font-size:20px}.v499-time-orb em{bottom:19px}.v499-ready-copy h2{font-size:18px}.v499-ready-copy p{font-size:10.5px}.v499-ready-stats span{font-size:7.5px}}


/* ---- inline style 118 ---- */

body[data-modal-type="clockout"] .timesheet-modal{
  background:linear-gradient(180deg,#f8f5eb 0%,#f2f1e8 100%)!important;
}
body[data-modal-type="clockout"] .timesheet-modal .modal-head{
  min-height:calc(94px + env(safe-area-inset-top,0px))!important;
  padding:calc(17px + env(safe-area-inset-top,0px)) 70px 15px 22px!important;
  background:linear-gradient(145deg,#12351f 0%,#1d4c2c 60%,#153a23 100%)!important;
  border-bottom:0!important;
  box-shadow:0 10px 26px rgba(19,54,31,.18)!important;
  color:#fff!important;
}
body[data-modal-type="clockout"] .timesheet-modal .modal-head::after{
  content:""!important;position:absolute!important;inset:0!important;pointer-events:none!important;
  background:radial-gradient(circle at 86% 18%,rgba(222,194,115,.16),transparent 32%),linear-gradient(120deg,transparent 64%,rgba(255,255,255,.04));
}
body[data-modal-type="clockout"] .timesheet-modal .modal-head h2{
  position:relative!important;z-index:2!important;margin:0!important;
  color:#fffdf7!important;font-family:var(--font-display,Georgia,serif)!important;
  font-size:30px!important;line-height:1!important;letter-spacing:-.03em!important;font-weight:650!important;
}
body[data-modal-type="clockout"] .timesheet-modal .modal-head h2::after{
  content:"Finish your shift and add any final details."!important;
  display:block!important;margin-top:8px!important;color:rgba(255,255,255,.66)!important;
  font-family:var(--font-body,system-ui,sans-serif)!important;font-size:12px!important;line-height:1.25!important;letter-spacing:0!important;font-weight:650!important;
}
body[data-modal-type="clockout"] .timesheet-modal .modal-x{
  z-index:3!important;top:calc(18px + env(safe-area-inset-top,0px))!important;right:18px!important;
  width:46px!important;height:46px!important;min-width:46px!important;border-radius:16px!important;
  color:#fff!important;background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12)!important;
}
body[data-modal-type="clockout"] .timesheet-modal .modal-body{
  padding:14px 16px 12px!important;background:transparent!important;
}
body[data-modal-type="clockout"] .co500{max-width:720px;margin:0 auto;display:grid;gap:12px;}
body[data-modal-type="clockout"] .co500-summary{
  position:relative;overflow:hidden;display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:13px;
  min-height:112px;padding:16px;border-radius:24px;
  background:linear-gradient(135deg,#fffdf8 0%,#eef4e9 100%);
  border:1px solid rgba(46,82,47,.14);box-shadow:0 10px 28px rgba(25,49,29,.08),inset 0 1px 0 #fff;
}
body[data-modal-type="clockout"] .co500-summary::after{
  content:"";position:absolute;right:-42px;bottom:-55px;width:170px;height:170px;border-radius:50%;
  border:24px solid rgba(58,103,61,.045);box-shadow:0 0 0 18px rgba(202,180,112,.035);pointer-events:none;
}
body[data-modal-type="clockout"] .co500-summary-icon{
  width:54px;height:54px;border-radius:18px;display:grid;place-items:center;color:#285b36;
  background:linear-gradient(145deg,#dfead7,#f6f1df);border:1px solid rgba(53,88,52,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.9);
}
body[data-modal-type="clockout"] .co500-summary-icon svg{width:26px;height:26px;}
body[data-modal-type="clockout"] .co500-summary-copy{position:relative;z-index:1;min-width:0;}
body[data-modal-type="clockout"] .co500-summary-copy>span{font-size:9.5px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:#8c6a36;}
body[data-modal-type="clockout"] .co500-summary-copy h3{margin:4px 0 5px;font-family:var(--font-display,Georgia,serif);font-size:23px;line-height:1.02;color:#172c1b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
body[data-modal-type="clockout"] .co500-summary-copy p{display:flex;align-items:center;gap:6px;margin:0;color:#68736a;font-size:12px;font-weight:700;}
body[data-modal-type="clockout"] .co500-summary-copy p svg{width:15px;height:15px;color:#396a45;flex:0 0 15px;}
body[data-modal-type="clockout"] .co500-summary-copy p b{margin-left:2px;color:#235a34;font-size:14px;}
body[data-modal-type="clockout"] .co500-worked{position:relative;z-index:1;align-self:start;display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;background:#e2edd9;color:#2d6339;font-size:10.5px;font-weight:900;white-space:nowrap;}
body[data-modal-type="clockout"] .co500-worked svg{width:14px;height:14px;}
body[data-modal-type="clockout"] .co500-panel{
  padding:14px;border-radius:22px;background:#fffdf8;border:1px solid rgba(49,72,50,.11);
  box-shadow:0 8px 22px rgba(31,51,33,.055),inset 0 1px 0 #fff;
}
body[data-modal-type="clockout"] .co500-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;}
body[data-modal-type="clockout"] .co500-panel-head>div{display:grid;gap:2px;}
body[data-modal-type="clockout"] .co500-panel-head span,body[data-modal-type="clockout"] .co500-field>span{font-size:12.5px;font-weight:900;color:#223826;}
body[data-modal-type="clockout"] .co500-panel-head small{font-size:10.5px;color:#7b857c;font-weight:650;}
body[data-modal-type="clockout"] .co500-panel-head em{font-style:normal;font-size:9.5px;font-weight:850;color:#4e724f;background:#edf3e9;padding:5px 8px;border-radius:999px;}
body[data-modal-type="clockout"] .co500-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:9px;margin:0!important;}
body[data-modal-type="clockout"] .co500-photo-add{
  width:auto!important;height:78px!important;min-width:0!important;grid-column:span 3;border-radius:16px!important;padding:0 13px!important;
  display:grid!important;grid-template-columns:42px minmax(0,1fr) 22px!important;align-items:center!important;justify-items:stretch!important;gap:10px!important;
  background:linear-gradient(135deg,#f2f7ee,#faf6e9)!important;border:1.5px dashed rgba(59,95,60,.30)!important;color:#285c36!important;text-align:left!important;
}
body[data-modal-type="clockout"] .co500-photo-icon{width:42px;height:42px;border-radius:14px;background:#dfead8;display:grid;place-items:center;}
body[data-modal-type="clockout"] .co500-photo-icon svg{width:21px!important;height:21px!important;}
body[data-modal-type="clockout"] .co500-photo-copy{display:grid;gap:2px;min-width:0;}
body[data-modal-type="clockout"] .co500-photo-copy strong{font-size:13px;line-height:1.1;}
body[data-modal-type="clockout"] .co500-photo-copy em{font-style:normal;font-size:10px;color:#758076;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
body[data-modal-type="clockout"] .co500-photo-plus{display:grid;place-items:center;color:#426c48;}
body[data-modal-type="clockout"] .co500-photo-plus svg{width:19px!important;height:19px!important;}
body[data-modal-type="clockout"] .co500-thumb{width:78px!important;height:78px!important;border-radius:16px!important;}
body[data-modal-type="clockout"] .co500-form-grid{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,.58fr);gap:12px;}
body[data-modal-type="clockout"] .co500-field{display:grid;gap:7px;padding:14px;border-radius:20px;background:#fffdf8;border:1px solid rgba(49,72,50,.11);box-shadow:0 8px 22px rgba(31,51,33,.045);}
body[data-modal-type="clockout"] .co500-field>span small{margin-left:4px;color:#889087;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;}
body[data-modal-type="clockout"] .co500-input-wrap,body[data-modal-type="clockout"] .co500-textarea-wrap{
  display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid rgba(52,78,51,.14);border-radius:15px;background:#f9f7f0;min-height:52px;padding:0 12px;
}
body[data-modal-type="clockout"] .co500-input-wrap svg,body[data-modal-type="clockout"] .co500-textarea-wrap>svg{width:19px;height:19px;color:#3e7048;}
body[data-modal-type="clockout"] .co500-input-wrap input{width:100%;height:50px;border:0;background:transparent;outline:0;font-size:15px;font-weight:800;color:#203324;min-width:0;}
body[data-modal-type="clockout"] .co500-input-wrap em{font-style:normal;font-size:11px;color:#818981;font-weight:750;}
body[data-modal-type="clockout"] .co500-textarea-wrap{grid-template-columns:24px minmax(0,1fr);align-items:start;min-height:86px;padding-top:13px;}
body[data-modal-type="clockout"] .co500-textarea-wrap textarea{width:100%;height:68px;resize:none;border:0;background:transparent;outline:0;font-family:inherit;font-size:13px;line-height:1.35;color:#203324;}
body[data-modal-type="clockout"] .co500-info{display:flex;align-items:center;gap:8px;color:#6e796f;font-size:10.5px;font-weight:650;padding:0 4px;}
body[data-modal-type="clockout"] .co500-info svg{width:16px;height:16px;color:#3c6b44;flex:0 0 16px;}
body[data-modal-type="clockout"] .timesheet-modal .modal-foot{background:#f8f5ec!important;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px))!important;}
body[data-modal-type="clockout"] .co500-footer-actions{width:100%;max-width:720px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,.58fr);gap:10px;}
body[data-modal-type="clockout"] .co500-footer-actions .btn{height:50px!important;min-height:50px!important;border-radius:16px!important;font-size:13px!important;font-weight:900!important;margin:0!important;}
body[data-modal-type="clockout"] .co500-footer-actions .btn-primary{display:flex;align-items:center;justify-content:center;gap:7px;background:linear-gradient(135deg,#2b683b,#174626)!important;box-shadow:0 9px 18px rgba(22,68,36,.24)!important;}
body[data-modal-type="clockout"] .co500-footer-actions .btn-primary svg{width:17px;height:17px;}
@media(max-width:560px){
  body[data-modal-type="clockout"] .timesheet-modal .modal-head{min-height:calc(84px + env(safe-area-inset-top,0px))!important;padding:calc(13px + env(safe-area-inset-top,0px)) 62px 12px 16px!important;}
  body[data-modal-type="clockout"] .timesheet-modal .modal-head h2{font-size:25px!important;}
  body[data-modal-type="clockout"] .timesheet-modal .modal-head h2::after{font-size:10.5px!important;margin-top:6px!important;}
  body[data-modal-type="clockout"] .timesheet-modal .modal-x{top:calc(12px + env(safe-area-inset-top,0px))!important;right:14px!important;width:42px!important;height:42px!important;min-width:42px!important;border-radius:14px!important;}
  body[data-modal-type="clockout"] .timesheet-modal .modal-body{padding:10px 12px 8px!important;}
  body[data-modal-type="clockout"] .co500{gap:9px;}
  body[data-modal-type="clockout"] .co500-summary{grid-template-columns:45px minmax(0,1fr) auto;gap:10px;min-height:92px;padding:12px;border-radius:20px;}
  body[data-modal-type="clockout"] .co500-summary-icon{width:45px;height:45px;border-radius:15px;}
  body[data-modal-type="clockout"] .co500-summary-icon svg{width:22px;height:22px;}
  body[data-modal-type="clockout"] .co500-summary-copy h3{font-size:19px;}
  body[data-modal-type="clockout"] .co500-summary-copy p{font-size:10.5px;gap:4px;}
  body[data-modal-type="clockout"] .co500-summary-copy p b{font-size:12px;}
  body[data-modal-type="clockout"] .co500-worked{padding:6px 8px;font-size:9.5px;}
  body[data-modal-type="clockout"] .co500-panel,body[data-modal-type="clockout"] .co500-field{padding:11px;border-radius:18px;}
  body[data-modal-type="clockout"] .co500-panel-head{margin-bottom:8px;}
  body[data-modal-type="clockout"] .co500-photo-add{grid-column:1/-1;height:68px!important;grid-template-columns:38px minmax(0,1fr) 20px!important;padding:0 10px!important;}
  body[data-modal-type="clockout"] .co500-photo-icon{width:38px;height:38px;border-radius:12px;}
  body[data-modal-type="clockout"] .co500-form-grid{grid-template-columns:1fr;gap:9px;}
  body[data-modal-type="clockout"] .co500-input-wrap{min-height:46px;}
  body[data-modal-type="clockout"] .co500-input-wrap input{height:44px;font-size:14px;}
  body[data-modal-type="clockout"] .co500-textarea-wrap{min-height:72px;padding-top:10px;}
  body[data-modal-type="clockout"] .co500-textarea-wrap textarea{height:54px;font-size:12.5px;}
  body[data-modal-type="clockout"] .co500-info{font-size:9.5px;line-height:1.25;}
  body[data-modal-type="clockout"] .timesheet-modal .modal-foot{padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px))!important;}
  body[data-modal-type="clockout"] .co500-footer-actions .btn{height:46px!important;min-height:46px!important;border-radius:14px!important;font-size:12px!important;}
}
@media(max-width:370px){
  body[data-modal-type="clockout"] .co500-summary{grid-template-columns:42px minmax(0,1fr);}
  body[data-modal-type="clockout"] .co500-worked{position:absolute;right:10px;top:10px;}
  body[data-modal-type="clockout"] .co500-summary-copy{padding-right:65px;}
  body[data-modal-type="clockout"] .co500-summary-copy h3{font-size:17px;}
  body[data-modal-type="clockout"] .co500-photo-copy em{font-size:9px;}
}


/* ---- inline style 119 ---- */

/* v502 — give the active clock header, timer and schedule progress their own clean zones. */
.v499-active-card{
  padding:20px!important;
}
.v499-active-top{
  min-height:36px;
  margin-bottom:22px!important;
}
.v499-live-pill{
  flex:0 1 auto;
  max-width:70%;
  white-space:nowrap;
}
.v499-active-date{
  flex:0 0 auto;
  white-space:nowrap;
}
.v499-timer-orbit{
  width:176px!important;
  height:176px!important;
  margin:0 auto!important;
  padding:6px!important;
  box-shadow:0 14px 28px rgba(0,0,0,.22)!important;
}
.v499-timer-orbit::before{inset:-7px!important;}
.v499-timer-orbit::after{inset:-13px!important;}
.v499-timer-ring span{font-size:32px!important;}
.v499-timer-ring em{margin-top:47px!important;}
.v502-progress-block{
  position:relative;
  z-index:2;
  margin-top:30px;
  padding:12px 13px 11px;
  border-radius:15px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.075);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.v502-progress-block .v499-progress{
  height:7px!important;
  margin:0!important;
  background:rgba(255,255,255,.13)!important;
}
.v502-progress-block .v499-progress-labels{
  align-items:center;
  margin-top:9px!important;
  min-height:18px;
  color:rgba(255,255,255,.64)!important;
}
.v502-progress-block .v499-progress-labels span:nth-child(2){
  padding:3px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.075);
  color:rgba(255,255,255,.78);
  white-space:nowrap;
}
.v499-active-job{
  margin-top:14px!important;
}
@media(max-width:430px){
  .v499-active-card{padding:16px!important;}
  .v499-active-top{margin-bottom:20px!important;}
  .v499-timer-orbit{width:160px!important;height:160px!important;}
  .v499-timer-ring span{font-size:29px!important;}
  .v499-timer-ring em{margin-top:43px!important;}
  .v502-progress-block{margin-top:27px;padding:11px 10px 10px;}
  .v502-progress-block .v499-progress-labels{font-size:9px!important;gap:5px!important;}
  .v502-progress-block .v499-progress-labels span:nth-child(2){padding:3px 6px;}
}
@media(max-width:360px){
  .v499-active-top{gap:8px!important;}
  .v499-live-pill{font-size:9px!important;padding:6px 9px!important;}
  .v499-active-date{font-size:10px!important;}
  .v499-timer-orbit{width:150px!important;height:150px!important;}
  .v499-timer-ring span{font-size:27px!important;}
  .v502-progress-block .v499-progress-labels{font-size:8.4px!important;}
}


/* ---- inline style 120 ---- */

/* v506 — clean, modern identity treatment for an open conversation.
   Removes the glossy multi-ring avatars and gives the header and message
   monograms one restrained, professional visual system. */
body .chat-thread .chat-thread-head,
body .chat-thread .ct-head,
body.chat-thread-open .chat-thread-head{
  gap:12px!important;
}

body .chat-thread .cth-card{
  gap:12px!important;
  min-height:52px!important;
  align-items:center!important;
}

/* Header monogram: a single refined tile — no rings, halos or gloss. */
body .chat-thread .chat-thread-head>.avatar,
body .chat-thread .cth-card>.avatar,
body.chat-thread-open .chat-thread .chat-thread-head>.avatar{
  position:relative!important;
  isolation:isolate!important;
  width:50px!important;
  height:50px!important;
  min-width:50px!important;
  flex:0 0 50px!important;
  border-radius:17px!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  background:linear-gradient(145deg,#78936f 0%,#55745a 52%,#36543e 100%)!important;
  border:1px solid rgba(255,255,255,.26)!important;
  box-shadow:0 6px 16px rgba(6,28,16,.18),inset 0 1px 0 rgba(255,255,255,.18)!important;
  color:#fffdf7!important;
  font-size:17px!important;
  font-weight:850!important;
  letter-spacing:.025em!important;
  line-height:1!important;
  text-shadow:none!important;
}
body .chat-thread .chat-thread-head>.avatar::before,
body .chat-thread .cth-card>.avatar::before,
body.chat-thread-open .chat-thread .chat-thread-head>.avatar::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:inherit!important;
  background:linear-gradient(155deg,rgba(255,255,255,.16),transparent 45%)!important;
  pointer-events:none!important;
}
body .chat-thread .chat-thread-head>.avatar::after,
body .chat-thread .cth-card>.avatar::after,
body.chat-thread-open .chat-thread .chat-thread-head>.avatar::after{content:none!important;}

body .chat-thread .cth-info{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:3px!important;
  min-width:0!important;
}
body .chat-thread .cth-name{
  margin:0!important;
  font-size:18px!important;
  line-height:1.08!important;
  font-weight:800!important;
  letter-spacing:-.015em!important;
  color:inherit!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
body .chat-thread .cth-sub,
body .chat-thread .cth-presence{
  margin:0!important;
  font-size:12.5px!important;
  line-height:1.2!important;
  font-weight:650!important;
  letter-spacing:0!important;
  opacity:.76!important;
}
body .chat-thread .cth-presence.is-online{opacity:1!important;}
body .chat-thread .cth-dot{
  width:7px!important;
  height:7px!important;
  margin-right:6px!important;
  box-shadow:0 0 0 3px rgba(117,207,89,.15)!important;
}

/* Incoming-message monogram: compact, flat and aligned with the bubble. */
body .chat-thread .msg-av{
  width:40px!important;
  min-width:40px!important;
  max-width:40px!important;
  flex:0 0 40px!important;
  height:34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
body .chat-thread .msg-av.is-spacer{visibility:hidden!important;}
body .chat-thread .msg-av .avatar{
  position:relative!important;
  isolation:isolate!important;
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
  border-radius:11px!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  color:#fffdf8!important;
  font-size:11.5px!important;
  font-weight:850!important;
  letter-spacing:.025em!important;
  line-height:1!important;
  border:1px solid rgba(255,255,255,.78)!important;
  box-shadow:0 3px 8px rgba(19,39,25,.13)!important;
  text-shadow:none!important;
}
body .chat-thread .msg-av .avatar::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:inherit!important;
  background:linear-gradient(150deg,rgba(255,255,255,.13),transparent 46%)!important;
  pointer-events:none!important;
}
body .chat-thread .msg-av .avatar::after{content:none!important;}

/* Calm professional palette for the open conversation. */
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="0"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="0"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="0"]{background:linear-gradient(145deg,#718f6d,#466b4d)!important;}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="1"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="1"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="1"]{background:linear-gradient(145deg,#668f86,#3f6b63)!important;}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="2"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="2"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="2"]{background:linear-gradient(145deg,#668297,#405f75)!important;}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="3"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="3"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="3"]{background:linear-gradient(145deg,#77738f,#514e6d)!important;}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="4"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="4"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="4"]{background:linear-gradient(145deg,#8f7180,#694b5b)!important;}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="5"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="5"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="5"]{background:linear-gradient(145deg,#9b725f,#744d3c)!important;}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="6"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="6"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="6"]{background:linear-gradient(145deg,#a48655,#79612f)!important;}
body .chat-thread .msg-av .avatar.chat-hue-av[data-c="7"],
body .chat-thread .cth-card>.avatar.chat-hue-av[data-c="7"],
body .chat-thread .chat-thread-head>.avatar.chat-hue-av[data-c="7"]{background:linear-gradient(145deg,#829066,#5d6943)!important;}

@media(max-width:380px){
  body .chat-thread .chat-thread-head>.avatar,
  body .chat-thread .cth-card>.avatar,
  body.chat-thread-open .chat-thread .chat-thread-head>.avatar{
    width:46px!important;height:46px!important;min-width:46px!important;flex-basis:46px!important;border-radius:15px!important;font-size:15.5px!important;
  }
  body .chat-thread .cth-name{font-size:17px!important;}
  body .chat-thread .msg-av{width:37px!important;min-width:37px!important;max-width:37px!important;flex-basis:37px!important;}
  body .chat-thread .msg-av .avatar{width:30px!important;height:30px!important;min-width:30px!important;border-radius:10px!important;font-size:11px!important;}
}


/* ---- inline style 121 ---- */

/* v507 — keep the live timer value and its caption in separate, stable rows. */
.v499-timer-ring{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:9px!important;
  padding:20px 10px!important;
  box-sizing:border-box!important;
}
.v499-timer-ring span{
  display:block!important;
  position:static!important;
  margin:0!important;
  line-height:.92!important;
  white-space:nowrap!important;
  flex:0 0 auto!important;
}
.v499-timer-ring em{
  display:block!important;
  position:static!important;
  margin:0!important;
  line-height:1!important;
  min-height:10px!important;
  white-space:nowrap!important;
  flex:0 0 auto!important;
  transform:none!important;
}
@media(max-width:430px){
  .v499-timer-ring{gap:10px!important;padding:19px 8px!important;}
  .v499-timer-ring span{font-size:28px!important;}
  .v499-timer-ring em{font-size:8.5px!important;letter-spacing:.14em!important;}
}
@media(max-width:360px){
  .v499-timer-ring{gap:8px!important;padding:18px 7px!important;}
  .v499-timer-ring span{font-size:26px!important;}
  .v499-timer-ring em{font-size:8px!important;}
}


/* ---- inline style 122 ---- */

/* v508 — fully round, clearly defined chat initials with a restrained premium ring. */
body .chat-thread .chat-thread-head>.avatar,
body .chat-thread .cth-card>.avatar,
body.chat-thread-open .chat-thread .chat-thread-head>.avatar{
  width:56px!important;
  height:56px!important;
  min-width:56px!important;
  flex:0 0 56px!important;
  border-radius:50%!important;
  border:2px solid rgba(255,255,255,.64)!important;
  box-shadow:
    0 0 0 3px rgba(211,224,205,.24),
    0 8px 20px rgba(5,25,14,.28),
    inset 0 1px 0 rgba(255,255,255,.30)!important;
  font-size:18px!important;
  font-weight:900!important;
  letter-spacing:.03em!important;
}
body .chat-thread .chat-thread-head>.avatar::before,
body .chat-thread .cth-card>.avatar::before,
body.chat-thread-open .chat-thread .chat-thread-head>.avatar::before{
  content:""!important;
  position:absolute!important;
  inset:3px!important;
  border-radius:50%!important;
  border:1px solid rgba(255,255,255,.18)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.13),transparent 48%)!important;
  pointer-events:none!important;
}
body .chat-thread .chat-thread-head>.avatar::after,
body .chat-thread .cth-card>.avatar::after,
body.chat-thread-open .chat-thread .chat-thread-head>.avatar::after{content:none!important;}

body .chat-thread .msg-av{
  width:46px!important;
  min-width:46px!important;
  max-width:46px!important;
  flex:0 0 46px!important;
  height:40px!important;
}
body .chat-thread .msg-av .avatar{
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  border-radius:50%!important;
  border:2px solid rgba(255,255,255,.84)!important;
  box-shadow:
    0 0 0 2px rgba(71,101,80,.18),
    0 5px 12px rgba(15,36,22,.20),
    inset 0 1px 0 rgba(255,255,255,.22)!important;
  font-size:13px!important;
  font-weight:900!important;
  letter-spacing:.025em!important;
}
body .chat-thread .msg-av .avatar::before{
  content:""!important;
  position:absolute!important;
  inset:2px!important;
  border-radius:50%!important;
  border:1px solid rgba(255,255,255,.13)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.12),transparent 50%)!important;
  pointer-events:none!important;
}
body .chat-thread .msg-av .avatar::after{content:none!important;}

@media(max-width:380px){
  body .chat-thread .chat-thread-head>.avatar,
  body .chat-thread .cth-card>.avatar,
  body.chat-thread-open .chat-thread .chat-thread-head>.avatar{
    width:52px!important;height:52px!important;min-width:52px!important;flex-basis:52px!important;font-size:17px!important;
  }
  body .chat-thread .msg-av{width:42px!important;min-width:42px!important;max-width:42px!important;flex-basis:42px!important;}
  body .chat-thread .msg-av .avatar{width:35px!important;height:35px!important;min-width:35px!important;font-size:12px!important;}
}


/* ---- inline style 123 ---- */

/* v509 — requested only: professional Timesheet entry and a crisp, non-washed-out open chat. */

/* ==========================================================
   TIMESHEET ENTRY — refined hierarchy, calmer body, stronger
   field grouping and an always-visible action footer.
   ========================================================== */
body[data-modal-type="record"]{--v509-ink:#18251d;--v509-muted:#69766c;--v509-green:#194b2d;--v509-green-2:#2a6640;--v509-paper:#fffefa;--v509-canvas:#f2efe6;--v509-line:rgba(35,63,42,.14);}
body[data-modal-type="record"] .modal-overlay{
  background:rgba(8,24,14,.74)!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
body[data-modal-type="record"] .timesheet-modal{
  width:min(720px,calc(100vw - 28px))!important;
  max-width:720px!important;
  max-height:calc(100dvh - 28px)!important;
  border-radius:26px!important;
  overflow:hidden!important;
  background:var(--v509-canvas)!important;
  border:1px solid rgba(255,255,255,.32)!important;
  box-shadow:0 30px 84px rgba(3,18,8,.34)!important;
}
body[data-modal-type="record"] .timesheet-modal .modal-head{
  min-height:88px!important;
  padding:18px 74px 15px 22px!important;
  background:
    radial-gradient(120% 180% at 96% -20%,rgba(145,184,127,.25),transparent 56%),
    linear-gradient(135deg,#214f31 0%,#123820 76%,#0f2d1b 100%)!important;
  box-shadow:0 8px 24px rgba(12,45,24,.20)!important;
}
body[data-modal-type="record"] .timesheet-modal .modal-head h2{
  font-family:var(--font-display,Georgia,serif)!important;
  font-size:26px!important;font-weight:690!important;line-height:1.04!important;
  letter-spacing:-.025em!important;color:#fffef9!important;
}
body[data-modal-type="record"] .timesheet-modal .modal-head h2::before{
  content:"TIMESHEET REVIEW"!important;display:block!important;margin:0 0 7px!important;
  font-family:var(--font-body,Arial,sans-serif)!important;font-size:9.5px!important;
  line-height:1!important;font-weight:900!important;letter-spacing:.15em!important;
  color:#e8cc86!important;
}
body[data-modal-type="record"] .timesheet-modal .modal-head h2::after{
  content:"Review the entry and save any corrections."!important;
  margin-top:6px!important;font-size:11.5px!important;line-height:1.25!important;
  color:rgba(246,250,243,.72)!important;font-weight:620!important;
}
body[data-modal-type="record"] .timesheet-modal .modal-x{
  top:17px!important;right:18px!important;width:42px!important;height:42px!important;min-width:42px!important;
  border-radius:14px!important;background:rgba(255,255,255,.10)!important;
  border:1px solid rgba(255,255,255,.18)!important;color:#fff!important;
}
body[data-modal-type="record"] .timesheet-modal .modal-body{
  padding:15px!important;overflow:auto!important;
  background:
    radial-gradient(100% 70% at 100% 0%,rgba(212,226,202,.27),transparent 58%),
    linear-gradient(180deg,#efede4 0%,#f7f5ef 100%)!important;
}
body[data-modal-type="record"] .te-record-shell{display:grid!important;gap:11px!important;}
body[data-modal-type="record"] .te-summary-card{
  position:relative!important;display:grid!important;grid-template-columns:minmax(0,1fr) 112px!important;
  align-items:stretch!important;gap:13px!important;min-height:110px!important;margin:0!important;padding:14px!important;
  border-radius:20px!important;background:var(--v509-paper)!important;border:1px solid var(--v509-line)!important;
  box-shadow:0 10px 24px rgba(26,49,30,.065)!important;overflow:hidden!important;
}
body[data-modal-type="record"] .te-summary-card::before{
  content:""!important;position:absolute!important;left:0!important;top:0!important;bottom:0!important;width:5px!important;
  background:linear-gradient(180deg,#347a4d,#174529)!important;
}
body[data-modal-type="record"] .te-summary-main{display:flex!important;flex-direction:column!important;justify-content:center!important;min-width:0!important;padding-left:5px!important;}
body[data-modal-type="record"] .te-summary-eyebrow{
  margin:0 0 6px!important;color:#718074!important;font-size:10px!important;font-weight:900!important;
  line-height:1!important;letter-spacing:.12em!important;text-transform:uppercase!important;
}
body[data-modal-type="record"] .te-client{
  color:var(--v509-ink)!important;font-family:var(--font-display,Georgia,serif)!important;
  font-size:21px!important;font-weight:620!important;line-height:1.08!important;letter-spacing:-.018em!important;
  white-space:normal!important;overflow-wrap:anywhere!important;
}
body[data-modal-type="record"] .te-summary-meta{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:8px!important;margin-top:10px!important;}
body[data-modal-type="record"] .te-status{
  margin:0!important;padding:6px 10px!important;border-radius:999px!important;font-size:10.5px!important;
  line-height:1!important;font-weight:900!important;box-shadow:none!important;
}
body[data-modal-type="record"] .te-review-label{font-size:10.5px!important;font-weight:760!important;color:#78837a!important;}
body[data-modal-type="record"] .te-hours{
  min-width:0!important;padding:12px 10px!important;border-radius:17px!important;display:flex!important;
  flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;
  background:linear-gradient(150deg,#234f32,#153a23)!important;border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:0 8px 18px rgba(18,59,33,.16),inset 0 1px 0 rgba(255,255,255,.12)!important;
}
body[data-modal-type="record"] .te-hours-kicker{font-size:8.5px!important;line-height:1!important;font-weight:900!important;letter-spacing:.11em!important;text-transform:uppercase!important;color:#c8d9ca!important;}
body[data-modal-type="record"] .te-hours strong{margin:6px 0 3px!important;color:#fff!important;font-size:38px!important;line-height:.92!important;font-weight:860!important;letter-spacing:-.045em!important;font-variant-numeric:tabular-nums!important;}
body[data-modal-type="record"] .te-hours>span:last-child{font-size:9.5px!important;line-height:1!important;font-weight:820!important;letter-spacing:.09em!important;text-transform:uppercase!important;color:rgba(242,248,240,.68)!important;}
body[data-modal-type="record"] .te-variance{
  display:flex!important;align-items:flex-start!important;gap:10px!important;min-height:0!important;margin:0!important;
  padding:10px 12px!important;border-radius:15px!important;font-size:11.5px!important;line-height:1.32!important;font-weight:760!important;
  box-shadow:none!important;
}
body[data-modal-type="record"] .te-variance-icon{flex:0 0 24px!important;width:24px!important;height:24px!important;border-radius:8px!important;display:grid!important;place-items:center!important;background:rgba(255,255,255,.54)!important;}
body[data-modal-type="record"] .te-variance-icon svg{width:14px!important;height:14px!important;}
body[data-modal-type="record"] .te-form-grid{
  display:grid!important;gap:10px!important;padding:14px!important;border-radius:20px!important;
  background:var(--v509-paper)!important;border:1px solid var(--v509-line)!important;
  box-shadow:0 10px 24px rgba(27,48,31,.055)!important;
}
body[data-modal-type="record"] .te-section-heading{display:flex!important;align-items:center!important;gap:10px!important;min-width:0!important;padding:1px 1px 0!important;}
body[data-modal-type="record"] .te-section-icon{flex:0 0 34px!important;width:34px!important;height:34px!important;border-radius:11px!important;display:grid!important;place-items:center!important;background:#e7efe4!important;color:#2d6340!important;}
body[data-modal-type="record"] .te-section-icon svg{width:17px!important;height:17px!important;}
body[data-modal-type="record"] .te-section-heading>span:last-child{display:grid!important;gap:2px!important;min-width:0!important;}
body[data-modal-type="record"] .te-section-heading strong{color:#26372b!important;font-size:13px!important;line-height:1.05!important;font-weight:860!important;}
body[data-modal-type="record"] .te-section-heading em{color:#829086!important;font-size:10.5px!important;line-height:1.18!important;font-style:normal!important;font-weight:620!important;}
body[data-modal-type="record"] .te-section-divider{height:1px!important;margin:1px 0!important;background:linear-gradient(90deg,transparent,rgba(36,64,42,.13),transparent)!important;}
body[data-modal-type="record"] .record-entry-modal .field{gap:6px!important;margin:0!important;min-width:0!important;}
body[data-modal-type="record"] .record-entry-modal .field>label{
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;
  color:#4a5b4e!important;font-size:10.5px!important;line-height:1!important;font-weight:900!important;letter-spacing:.055em!important;text-transform:uppercase!important;
}
body[data-modal-type="record"] .record-entry-modal .field>label span{font-size:9.5px!important;font-weight:720!important;letter-spacing:0!important;text-transform:none!important;color:#9aa39c!important;}
body[data-modal-type="record"] .record-entry-modal .input,
body[data-modal-type="record"] .record-entry-modal select.input{
  height:48px!important;border-radius:14px!important;border:1px solid rgba(39,67,45,.16)!important;
  background:#faf9f4!important;color:#1b2b20!important;font-size:14px!important;font-weight:720!important;
  padding:0 12px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.88)!important;
}
body[data-modal-type="record"] .record-entry-modal .input:focus,
body[data-modal-type="record"] .record-entry-modal select.input:focus{
  background:#fff!important;border-color:rgba(38,101,57,.44)!important;box-shadow:0 0 0 4px rgba(41,107,62,.09)!important;
}
body[data-modal-type="record"] .record-entry-modal textarea.input{
  height:72px!important;min-height:72px!important;max-height:100px!important;padding:11px 12px!important;line-height:1.35!important;font-weight:600!important;resize:none!important;
}
body[data-modal-type="record"] .te-two-col{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important;}
body[data-modal-type="record"] .ts-client-picker-compact{display:grid!important;grid-template-columns:minmax(0,1fr) 76px!important;gap:9px!important;}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{
  min-height:58px!important;padding:10px 12px!important;border-radius:15px!important;background:#f4f3ec!important;border:1px solid rgba(41,70,47,.12)!important;
}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected strong{color:#25382b!important;font-size:14px!important;line-height:1.08!important;}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected span{margin-top:4px!important;color:#768077!important;font-size:10.5px!important;line-height:1.2!important;}
body[data-modal-type="record"] .ts-client-change{
  width:auto!important;min-height:58px!important;border-radius:15px!important;background:#e3eee0!important;border:1px solid rgba(43,94,54,.14)!important;color:#245c38!important;font-weight:840!important;
}
body[data-modal-type="record"] .te-save-hint{
  display:flex!important;align-items:flex-start!important;justify-content:center!important;gap:7px!important;margin:0!important;padding:1px 4px!important;
  color:#6e796f!important;font-size:10.5px!important;line-height:1.3!important;text-align:center!important;
}
body[data-modal-type="record"] .te-save-hint svg{flex:0 0 13px!important;width:13px!important;height:13px!important;margin-top:1px!important;}
body[data-modal-type="record"] .timesheet-modal .modal-foot{
  min-height:70px!important;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))!important;
  background:rgba(255,254,250,.98)!important;border-top:1px solid rgba(34,61,40,.10)!important;
  box-shadow:0 -10px 24px rgba(25,45,29,.065)!important;
}
body[data-modal-type="record"] .te-footer-actions{display:grid!important;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr)!important;gap:10px!important;width:100%!important;}
body[data-modal-type="record"] .te-footer-actions .btn{height:48px!important;min-height:48px!important;border-radius:14px!important;font-size:13px!important;font-weight:860!important;}
body[data-modal-type="record"] .te-cancel-action{background:#fffefa!important;border:1px solid rgba(44,70,49,.18)!important;color:#38513f!important;}
body[data-modal-type="record"] .te-save-action{background:linear-gradient(135deg,#2f7147,#174929)!important;color:#fff!important;box-shadow:0 9px 18px rgba(23,72,41,.18)!important;}
body[data-modal-type="record"] .te-save-action svg{width:16px!important;height:16px!important;}

@media(max-width:600px){
  body[data-modal-type="record"] .timesheet-modal{position:fixed!important;inset:0!important;width:100vw!important;max-width:none!important;max-height:100dvh!important;height:100dvh!important;border:0!important;border-radius:0!important;display:flex!important;flex-direction:column!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-head{min-height:calc(78px + env(safe-area-inset-top,0px))!important;padding:calc(12px + env(safe-area-inset-top,0px)) 58px 10px 14px!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-head h2{font-size:21px!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-head h2::before{font-size:8.5px!important;margin-bottom:5px!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-head h2::after{font-size:10.5px!important;margin-top:4px!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-x{top:calc(10px + env(safe-area-inset-top,0px))!important;right:12px!important;width:38px!important;height:38px!important;min-width:38px!important;border-radius:13px!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-body{padding:10px!important;}
  body[data-modal-type="record"] .te-record-shell{gap:8px!important;}
  body[data-modal-type="record"] .te-summary-card{grid-template-columns:minmax(0,1fr) 92px!important;min-height:88px!important;padding:11px!important;border-radius:17px!important;gap:9px!important;}
  body[data-modal-type="record"] .te-summary-eyebrow{font-size:8.8px!important;margin-bottom:4px!important;}
  body[data-modal-type="record"] .te-client{font-size:17px!important;}
  body[data-modal-type="record"] .te-summary-meta{margin-top:7px!important;gap:6px!important;}
  body[data-modal-type="record"] .te-status{padding:5px 8px!important;font-size:9.5px!important;}
  body[data-modal-type="record"] .te-review-label{font-size:9.5px!important;}
  body[data-modal-type="record"] .te-hours{padding:8px!important;border-radius:14px!important;}
  body[data-modal-type="record"] .te-hours-kicker{font-size:7.4px!important;}
  body[data-modal-type="record"] .te-hours strong{font-size:29px!important;margin:5px 0 2px!important;}
  body[data-modal-type="record"] .te-hours>span:last-child{font-size:8px!important;}
  body[data-modal-type="record"] .te-variance{padding:8px 10px!important;border-radius:13px!important;font-size:10.5px!important;gap:8px!important;}
  body[data-modal-type="record"] .te-variance-icon{width:21px!important;height:21px!important;flex-basis:21px!important;border-radius:7px!important;}
  body[data-modal-type="record"] .te-form-grid{gap:8px!important;padding:10px!important;border-radius:17px!important;}
  body[data-modal-type="record"] .te-section-icon{width:29px!important;height:29px!important;flex-basis:29px!important;border-radius:9px!important;}
  body[data-modal-type="record"] .te-section-icon svg{width:15px!important;height:15px!important;}
  body[data-modal-type="record"] .te-section-heading strong{font-size:11.5px!important;}
  body[data-modal-type="record"] .te-section-heading em{font-size:9px!important;}
  body[data-modal-type="record"] .record-entry-modal .field{gap:4px!important;}
  body[data-modal-type="record"] .record-entry-modal .field>label{font-size:9.4px!important;}
  body[data-modal-type="record"] .record-entry-modal .input,
  body[data-modal-type="record"] .record-entry-modal select.input{height:42px!important;border-radius:12px!important;font-size:13px!important;padding:0 10px!important;}
  body[data-modal-type="record"] .record-entry-modal textarea.input{height:56px!important;min-height:56px!important;max-height:56px!important;padding:9px 10px!important;font-size:12.5px!important;}
  body[data-modal-type="record"] .te-two-col{gap:8px!important;}
  body[data-modal-type="record"] .ts-client-picker-compact{grid-template-columns:minmax(0,1fr) 68px!important;gap:7px!important;}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{min-height:50px!important;padding:8px 10px!important;border-radius:13px!important;}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected strong{font-size:12.5px!important;}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected span{font-size:9.5px!important;margin-top:3px!important;}
  body[data-modal-type="record"] .ts-client-change{min-height:50px!important;border-radius:13px!important;font-size:11px!important;}
  body[data-modal-type="record"] .te-save-hint{font-size:9.5px!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-foot{min-height:calc(62px + env(safe-area-inset-bottom,0px))!important;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px))!important;}
  body[data-modal-type="record"] .te-footer-actions .btn{height:44px!important;min-height:44px!important;border-radius:13px!important;font-size:12px!important;}
}
@media(max-width:370px){
  body[data-modal-type="record"] .te-summary-card{grid-template-columns:minmax(0,1fr) 84px!important;}
  body[data-modal-type="record"] .te-client{font-size:16px!important;}
  body[data-modal-type="record"] .te-hours strong{font-size:27px!important;}
}

/* ==========================================================
   OPEN CHAT — restore the chosen modern-dark presentation and
   explicitly remove opacity/filter effects that made it pale.
   ========================================================== */
@media(max-width:1023px){
  html:has(body.chat-thread-open),body.chat-thread-open,body.chat-thread-open #app,
  body.chat-thread-open .shell,body.chat-thread-open .main,body.chat-thread-open .content,
  body.chat-thread-open .chat-shell,body.chat-thread-open .chat-thread{
    background:#0e1418!important;background-color:#0e1418!important;background-image:none!important;
    filter:none!important;-webkit-filter:none!important;opacity:1!important;mix-blend-mode:normal!important;
  }
  body.chat-thread-open .chat-shell,body.chat-thread-open .chat-thread{
    box-shadow:none!important;border:0!important;
  }
  body.chat-thread-open .chat-thread-head{
    background:linear-gradient(180deg,#171f24 0%,#11181c 100%)!important;
    border-bottom:1px solid rgba(255,255,255,.08)!important;
    color:#f7f8f5!important;box-shadow:0 7px 22px rgba(0,0,0,.22)!important;
    filter:none!important;opacity:1!important;
  }
  body.chat-thread-open .cth-name{color:#f7f8f5!important;}
  body.chat-thread-open .cth-sub,body.chat-thread-open .cth-presence{color:#aeb9b2!important;opacity:1!important;}
  body.chat-thread-open .cth-back,body.chat-thread-open .cth-act{
    background:#222c31!important;border:1px solid rgba(255,255,255,.10)!important;color:#eef3ef!important;
    box-shadow:none!important;opacity:1!important;
  }
  body.chat-thread-open .chat-scroll{
    background:
      radial-gradient(520px 340px at 105% 0%,rgba(61,104,76,.12),transparent 65%),
      linear-gradient(180deg,#10171b 0%,#0c1216 100%)!important;
    filter:none!important;-webkit-filter:none!important;opacity:1!important;
  }
  body.chat-thread-open .chat-scroll::before,body.chat-thread-open .chat-scroll::after{content:none!important;display:none!important;}
  body.chat-thread-open .chat-date-separator span{
    background:#28333a!important;color:#cbd4d8!important;border:1px solid rgba(255,255,255,.08)!important;
    box-shadow:0 3px 10px rgba(0,0,0,.16)!important;opacity:1!important;
  }
  body.chat-thread-open .msg,body.chat-thread-open .bubble,body.chat-thread-open .b-text,
  body.chat-thread-open .msg-av,body.chat-thread-open .msg-av .avatar{filter:none!important;-webkit-filter:none!important;opacity:1!important;}
  body.chat-thread-open .msg:not(.mine) .bubble{
    background:linear-gradient(180deg,#273139 0%,#202930 100%)!important;
    color:#f4f7f8!important;border:1px solid rgba(173,194,207,.14)!important;
    box-shadow:0 5px 14px rgba(0,0,0,.20)!important;
  }
  body.chat-thread-open .msg.mine .bubble{
    background:linear-gradient(180deg,#356848 0%,#29543a 100%)!important;
    color:#fff!important;border:1px solid rgba(169,220,178,.18)!important;
    box-shadow:0 5px 14px rgba(0,0,0,.22)!important;
  }
  body.chat-thread-open .b-text{color:inherit!important;font-size:15px!important;font-weight:500!important;line-height:1.36!important;}
  body.chat-thread-open .bubble time{color:#aeb8be!important;opacity:1!important;}
  body.chat-thread-open .msg.mine .bubble time{color:#c7d8cc!important;opacity:1!important;}
  body.chat-thread-open .msg.mine .msg-status{color:#d7eadb!important;opacity:1!important;}
  body.chat-thread-open .chat-composer{
    background:linear-gradient(180deg,#171f24,#11181c)!important;
    border-top:1px solid rgba(255,255,255,.08)!important;box-shadow:0 -8px 22px rgba(0,0,0,.18)!important;
    filter:none!important;opacity:1!important;
  }
  body.chat-thread-open .chat-composer .input,body.chat-thread-open .chat-composer textarea,
  body.chat-thread-open #chatInput{
    background:#222c31!important;color:#f4f7f5!important;border:1px solid rgba(255,255,255,.10)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.03)!important;opacity:1!important;
  }
  body.chat-thread-open .chat-composer .input::placeholder,body.chat-thread-open #chatInput::placeholder{color:#8f9b94!important;opacity:1!important;}
  body.chat-thread-open .chat-composer .csend{
    background:#f2efe5!important;color:#1f5a38!important;border:1px solid rgba(255,255,255,.26)!important;
    box-shadow:0 5px 14px rgba(0,0,0,.22)!important;opacity:1!important;
  }
  body.chat-thread-open .chat-attach,body.chat-thread-open .chat-composer [data-action="attach-chat"]{
    background:#222c31!important;color:#c7d3cd!important;border:1px solid rgba(255,255,255,.10)!important;opacity:1!important;
  }
  body.chat-thread-open .chat-thread-head>.avatar,
  body.chat-thread-open .cth-card>.avatar{
    border-color:rgba(255,255,255,.70)!important;
    box-shadow:0 0 0 3px rgba(108,151,116,.22),0 8px 18px rgba(0,0,0,.32)!important;
    filter:none!important;opacity:1!important;
  }
  body.chat-thread-open .msg-av .avatar{
    border-color:rgba(255,255,255,.70)!important;
    box-shadow:0 0 0 2px rgba(97,133,106,.18),0 5px 12px rgba(0,0,0,.28)!important;
  }
}


/* ---- inline style 124 ---- */

/* Raise specificity above the older light/terra themes so the chosen dark chat is definitive. */
@media(max-width:1023px){
  html body.ww-chat-active.chat-thread-open,
  html body.ww-chat-active.chat-thread-open #app,
  html body.ww-chat-active.chat-thread-open .shell,
  html body.ww-chat-active.chat-thread-open .main,
  html body.ww-chat-active.chat-thread-open main.content,
  html body.ww-chat-active.chat-thread-open .chat-shell,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread{
    background:#0e1418!important;background-color:#0e1418!important;background-image:none!important;
    filter:none!important;-webkit-filter:none!important;opacity:1!important;mix-blend-mode:normal!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-thread-head,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .ct-head{
    background:linear-gradient(180deg,#171f24 0%,#11181c 100%)!important;background-image:linear-gradient(180deg,#171f24 0%,#11181c 100%)!important;
    color:#f7f8f5!important;border-bottom:1px solid rgba(255,255,255,.08)!important;box-shadow:0 7px 22px rgba(0,0,0,.22)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-name{color:#f7f8f5!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-sub,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-presence{color:#aeb9b2!important;opacity:1!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-back,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-act{
    background:#222c31!important;color:#eef3ef!important;border:1px solid rgba(255,255,255,.10)!important;box-shadow:none!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-scroll{
    background:radial-gradient(520px 340px at 105% 0%,rgba(61,104,76,.12),transparent 65%),linear-gradient(180deg,#10171b 0%,#0c1216 100%)!important;
    background-image:radial-gradient(520px 340px at 105% 0%,rgba(61,104,76,.12),transparent 65%),linear-gradient(180deg,#10171b 0%,#0c1216 100%)!important;
    color:#eef2f3!important;filter:none!important;-webkit-filter:none!important;opacity:1!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-date-separator span{
    background:#28333a!important;color:#cbd4d8!important;border:1px solid rgba(255,255,255,.08)!important;box-shadow:0 3px 10px rgba(0,0,0,.16)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine) .bubble{
    background:linear-gradient(180deg,#273139 0%,#202930 100%)!important;background-image:linear-gradient(180deg,#273139 0%,#202930 100%)!important;
    color:#f4f7f8!important;border:1px solid rgba(173,194,207,.14)!important;box-shadow:0 5px 14px rgba(0,0,0,.20)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine) .bubble .b-text{color:#f4f7f8!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble{
    background:linear-gradient(180deg,#356848 0%,#29543a 100%)!important;background-image:linear-gradient(180deg,#356848 0%,#29543a 100%)!important;
    color:#fff!important;border:1px solid rgba(169,220,178,.18)!important;box-shadow:0 5px 14px rgba(0,0,0,.22)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble .b-text{color:#fff!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .bubble time{color:#aeb8be!important;opacity:1!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble time{color:#c7d8cc!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .msg-status{color:#d7eadb!important;opacity:1!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer{
    background:linear-gradient(180deg,#171f24,#11181c)!important;background-image:linear-gradient(180deg,#171f24,#11181c)!important;
    border-top:1px solid rgba(255,255,255,.08)!important;box-shadow:0 -8px 22px rgba(0,0,0,.18)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer textarea.chat-editbox,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer #chatInput,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .input{
    background:#222c31!important;color:#f4f7f5!important;border:1px solid rgba(255,255,255,.10)!important;caret-color:#8ecf9a!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer textarea.chat-editbox::placeholder,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer #chatInput::placeholder{color:#8f9b94!important;opacity:1!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .cattach{
    background:#222c31!important;color:#c7d3cd!important;border:1px solid rgba(255,255,255,.10)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .csend{
    background:#f2efe5!important;background-image:none!important;color:#1f5a38!important;border:1px solid rgba(255,255,255,.26)!important;box-shadow:0 5px 14px rgba(0,0,0,.22)!important;
  }
}

/* Small cleanup on the redesigned summary card. */
body[data-modal-type="record"] .te-summary-main{align-items:flex-start!important;text-align:left!important;}
body[data-modal-type="record"] .te-client{position:static!important;grid-column:auto!important;grid-row:auto!important;text-align:left!important;width:100%!important;}
body[data-modal-type="record"] .te-summary-meta{justify-content:flex-start!important;}
body[data-modal-type="record"] .ts-client-change{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;line-height:1!important;overflow:hidden!important;}
body[data-modal-type="record"] .ts-client-change svg{width:16px!important;height:16px!important;flex:0 0 auto!important;}


/* ---- inline style 125 ---- */

@media(max-width:600px){
  body[data-modal-type="record"] .te-summary-card{grid-template-columns:minmax(0,1fr) 88px!important;}
  body[data-modal-type="record"] .te-summary-main{padding-left:1px!important;}
  body[data-modal-type="record"] .te-client{
    font-size:16.5px!important;
    line-height:1.12!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
}


/* ---- inline style 126 ---- */

/* v510 — compact professional Timesheet entry rebuild. */
body[data-modal-type="record"]{--v510-ink:#1c2b21;--v510-muted:#6f7b72;--v510-green:#1d5835;--v510-line:rgba(32,66,42,.13);--v510-card:#fff;--v510-page:#f3f3ee}
body[data-modal-type="record"] .timesheet-modal{background:var(--v510-page)!important}
body[data-modal-type="record"] .timesheet-modal .modal-head{min-height:74px!important;padding:15px 60px 13px 18px!important;background:linear-gradient(135deg,#1e5633,#123c24)!important;box-shadow:0 5px 16px rgba(17,52,30,.18)!important}
body[data-modal-type="record"] .timesheet-modal .modal-head h2{font-family:var(--font-body,Arial,sans-serif)!important;font-size:21px!important;line-height:1.1!important;font-weight:850!important;letter-spacing:-.02em!important}
body[data-modal-type="record"] .timesheet-modal .modal-head h2::before{content:"TIMESHEET"!important;margin-bottom:5px!important;font-size:8px!important;letter-spacing:.16em!important;color:#d8c486!important}
body[data-modal-type="record"] .timesheet-modal .modal-head h2::after{content:"Review and correct this entry"!important;margin-top:4px!important;font-size:10px!important;font-weight:570!important;color:rgba(255,255,255,.70)!important}
body[data-modal-type="record"] .timesheet-modal .modal-x{top:15px!important;right:14px!important;width:38px!important;height:38px!important;min-width:38px!important;border-radius:12px!important}
body[data-modal-type="record"] .timesheet-modal .modal-body{padding:10px!important;background:var(--v510-page)!important}
body[data-modal-type="record"] .te-record-shell{gap:8px!important}
body[data-modal-type="record"] .te-summary-card{min-height:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:12px!important;padding:12px 13px!important;border-radius:15px!important;background:var(--v510-card)!important;border:1px solid var(--v510-line)!important;box-shadow:0 3px 10px rgba(24,47,31,.045)!important}
body[data-modal-type="record"] .te-summary-card::before{display:none!important}
body[data-modal-type="record"] .te-summary-main{justify-content:flex-start!important;padding:0!important}
body[data-modal-type="record"] .te-summary-eyebrow{margin:0 0 4px!important;font-size:9px!important;line-height:1!important;letter-spacing:.10em!important;color:#7a857c!important}
body[data-modal-type="record"] .te-client{font-family:var(--font-body,Arial,sans-serif)!important;font-size:15px!important;line-height:1.18!important;font-weight:850!important;letter-spacing:-.01em!important;color:var(--v510-ink)!important}
body[data-modal-type="record"] .te-summary-meta{margin-top:7px!important;gap:7px!important}
body[data-modal-type="record"] .te-status{padding:4px 8px!important;font-size:9px!important}
body[data-modal-type="record"] .te-review-label{font-size:9.5px!important;font-weight:620!important;color:#7a847c!important}
body[data-modal-type="record"] .te-hours{min-width:72px!important;height:auto!important;padding:8px 9px!important;border-radius:12px!important;background:#edf4ee!important;border:1px solid rgba(39,91,54,.12)!important;box-shadow:none!important;color:#204f31!important}
body[data-modal-type="record"] .te-hours-kicker{font-size:7px!important;color:#6b7f70!important;letter-spacing:.09em!important}
body[data-modal-type="record"] .te-hours strong{margin:3px 0 1px!important;font-size:22px!important;line-height:1!important;font-weight:900!important;letter-spacing:-.025em!important;color:#1e5835!important}
body[data-modal-type="record"] .te-hours>span:last-child{font-size:7px!important;color:#738077!important;letter-spacing:.08em!important}
body[data-modal-type="record"] .te-variance{align-items:center!important;gap:8px!important;padding:8px 10px!important;border-radius:12px!important;font-size:10.5px!important;line-height:1.25!important;font-weight:720!important}
body[data-modal-type="record"] .te-variance-icon{width:20px!important;height:20px!important;flex-basis:20px!important;border-radius:6px!important}
body[data-modal-type="record"] .te-variance-icon svg{width:12px!important;height:12px!important}
body[data-modal-type="record"] .te-form-grid{gap:8px!important;padding:11px!important;border-radius:15px!important;background:var(--v510-card)!important;border:1px solid var(--v510-line)!important;box-shadow:0 3px 10px rgba(24,47,31,.04)!important}
body[data-modal-type="record"] .te-section-heading{gap:8px!important;padding:0!important}
body[data-modal-type="record"] .te-section-icon{width:26px!important;height:26px!important;flex-basis:26px!important;border-radius:8px!important;background:#edf3eb!important}
body[data-modal-type="record"] .te-section-icon svg{width:13px!important;height:13px!important}
body[data-modal-type="record"] .te-section-heading strong{font-size:11.5px!important}
body[data-modal-type="record"] .te-section-heading em{display:none!important}
body[data-modal-type="record"] .te-section-divider{margin:1px 0!important;background:rgba(39,67,45,.10)!important}
body[data-modal-type="record"] .record-entry-modal .field{gap:4px!important}
body[data-modal-type="record"] .record-entry-modal .field>label{font-size:9px!important;letter-spacing:.045em!important;color:#59675d!important}
body[data-modal-type="record"] .record-entry-modal .input,body[data-modal-type="record"] .record-entry-modal select.input{height:42px!important;border-radius:11px!important;background:#fafaf7!important;border:1px solid rgba(39,67,45,.13)!important;font-size:13px!important;font-weight:720!important;padding:0 10px!important;box-shadow:none!important}
body[data-modal-type="record"] .record-entry-modal textarea.input{height:54px!important;min-height:54px!important;max-height:74px!important;padding:9px 10px!important;font-size:12.5px!important}
body[data-modal-type="record"] .te-two-col{gap:8px!important}
body[data-modal-type="record"] .ts-client-picker-compact{display:block!important;width:100%!important}
body[data-modal-type="record"] .ts-client-compact-head{position:relative!important;display:block!important;width:100%!important}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{width:100%!important;min-height:52px!important;padding:9px 76px 9px 10px!important;border-radius:11px!important;background:#fafaf7!important;border:1px solid rgba(39,67,45,.13)!important;box-shadow:none!important}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected strong{font-size:12.5px!important;line-height:1.15!important;font-weight:800!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected span{margin-top:3px!important;font-size:9.5px!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body[data-modal-type="record"] .ts-client-change{position:absolute!important;top:50%!important;right:8px!important;transform:translateY(-50%)!important;width:59px!important;min-width:59px!important;min-height:30px!important;height:30px!important;padding:0 8px!important;border-radius:9px!important;display:flex!important;flex-direction:row!important;gap:5px!important;background:#eaf2e9!important;border:1px solid rgba(41,89,52,.14)!important;color:#275b39!important;font-size:9.5px!important;font-weight:850!important;line-height:1!important;box-shadow:none!important}
body[data-modal-type="record"] .ts-client-change svg{width:12px!important;height:12px!important}
body[data-modal-type="record"] .ts-client-change-panel{margin-top:7px!important;padding:8px!important;border-radius:11px!important}
body[data-modal-type="record"] .te-save-hint{margin:0!important;padding:0 3px!important;font-size:9px!important;color:#7b857e!important}
body[data-modal-type="record"] .timesheet-modal .modal-foot{min-height:62px!important;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px))!important;box-shadow:0 -5px 15px rgba(25,45,29,.05)!important}
body[data-modal-type="record"] .te-footer-actions{grid-template-columns:.78fr 1.22fr!important;gap:8px!important}
body[data-modal-type="record"] .te-footer-actions .btn{height:44px!important;min-height:44px!important;border-radius:12px!important;font-size:12px!important}
body[data-modal-type="record"] .te-save-action{box-shadow:none!important}
@media(max-width:600px){
body[data-modal-type="record"] .timesheet-modal .modal-head{min-height:calc(70px + env(safe-area-inset-top,0px))!important;padding:calc(13px + env(safe-area-inset-top,0px)) 56px 11px 14px!important}
body[data-modal-type="record"] .timesheet-modal .modal-head h2{font-size:19px!important}
body[data-modal-type="record"] .timesheet-modal .modal-head h2::after{font-size:9.5px!important}
body[data-modal-type="record"] .timesheet-modal .modal-x{top:calc(13px + env(safe-area-inset-top,0px))!important;right:12px!important;width:34px!important;height:34px!important;min-width:34px!important}
body[data-modal-type="record"] .timesheet-modal .modal-body{padding:8px!important}
body[data-modal-type="record"] .te-record-shell{gap:7px!important}
body[data-modal-type="record"] .te-summary-card{padding:10px 11px!important;border-radius:13px!important;gap:9px!important}
body[data-modal-type="record"] .te-client{font-size:14px!important}
body[data-modal-type="record"] .te-hours{min-width:66px!important;padding:7px 8px!important;border-radius:10px!important}
body[data-modal-type="record"] .te-hours strong{font-size:20px!important}
body[data-modal-type="record"] .te-variance{padding:7px 9px!important;font-size:9.7px!important}
body[data-modal-type="record"] .te-form-grid{padding:9px!important;border-radius:13px!important;gap:7px!important}
body[data-modal-type="record"] .te-section-icon{width:24px!important;height:24px!important;flex-basis:24px!important}
body[data-modal-type="record"] .te-section-heading strong{font-size:11px!important}
body[data-modal-type="record"] .record-entry-modal .input,body[data-modal-type="record"] .record-entry-modal select.input{height:40px!important;font-size:12.5px!important}
body[data-modal-type="record"] .record-entry-modal textarea.input{height:50px!important;min-height:50px!important;max-height:60px!important}
body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{min-height:48px!important}
body[data-modal-type="record"] .timesheet-modal .modal-foot{min-height:calc(58px + env(safe-area-inset-bottom,0px))!important}
body[data-modal-type="record"] .te-footer-actions .btn{height:42px!important;min-height:42px!important}
}


/* ---- inline style 127 ---- */

body[data-modal-type="shift"] .ww511-shift-builder{display:flex!important;flex-direction:column!important}
body[data-modal-type="shift"] .ww511-shift-builder>.client-search-panel{order:1!important}
body[data-modal-type="shift"] .ww511-shift-builder>.ww511-job-setup{order:2!important}
body[data-modal-type="shift"] .ww511-shift-builder>.ww511-billing-panel{order:3!important}
body[data-modal-type="shift"] .ww511-shift-builder>.emp-field{order:4!important}
body[data-modal-type="shift"] .ww511-shift-builder>.ww511-split-panel{order:5!important}
body[data-modal-type="shift"] .ww511-shift-builder>.recurrence-section{order:6!important}
body[data-modal-type="shift"] .ww511-shift-builder>.shift-colour-section{order:7!important}
body[data-modal-type="shift"] .ww511-shift-builder>.visibility-section{order:8!important}
body[data-modal-type="shift"] .ww511-shift-builder>.shift-notes-section{order:9!important}
body .ww511-admin-job .ww511-card-split{background:rgba(255,255,255,.16)!important;color:#fff!important;border:1px solid rgba(255,255,255,.20)!important}


/* ---- inline style 128 ---- */

/* Only the mobile roster cards and roster summary are changed here. */
@media(max-width:1023px){
  .ww512-hero-foot{grid-template-columns:1fr 1fr!important;gap:7px!important}
  .ww512-hero-foot .rst-hs{height:40px!important;min-height:40px!important;border-radius:12px!important}
  .ww512-hero-foot .rst-hs strong{font-size:17px!important}
  .ww512-hero-foot .rst-hs em{font-size:7.8px!important}
  .ww512-hero-foot .rst-hero-add{grid-column:1/-1!important;height:38px!important;min-height:38px!important}

  .roster-mobile .ww512-roster-card,
  .home-roster-list .ww512-roster-card{
    position:relative!important;
    display:grid!important;
    grid-template-columns:54px minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:9px!important;
    min-height:64px!important;
    padding:7px 10px!important;
    padding-left:10px!important;
    margin:0 0 6px!important;
    border-radius:13px!important;
    overflow:hidden!important;
    background:linear-gradient(135deg,var(--solid),var(--deep))!important;
    border:1px solid rgba(255,255,255,.18)!important;
    box-shadow:0 4px 11px color-mix(in srgb,var(--deep) 32%,transparent)!important;
  }
  .roster-mobile .ww512-roster-card::before,
  .roster-mobile .ww512-roster-card::after,
  .home-roster-list .ww512-roster-card::before,
  .home-roster-list .ww512-roster-card::after{display:none!important;content:none!important}
  .ww512-roster-card .rc-main,
  .ww512-roster-card .rc-badge,
  .ww512-roster-card .rc-info,
  .ww512-roster-card .rc-meta,
  .ww512-roster-card .ww511-card-split,
  .ww512-roster-card .rc-reject-stamp{display:none!important}

  .ww512-hours-badge{
    width:54px!important;height:48px!important;min-width:54px!important;
    display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
    border-radius:11px!important;
    background:rgba(255,255,255,.94)!important;
    color:var(--deep)!important;
    border:1px solid rgba(255,255,255,.55)!important;
    box-shadow:0 2px 6px rgba(0,0,0,.14)!important;
    line-height:1!important;
  }
  .ww512-hours-badge strong{font-family:inherit!important;font-size:14px!important;font-weight:900!important;letter-spacing:-.02em!important;white-space:nowrap!important;color:var(--deep)!important;text-shadow:none!important}
  .ww512-hours-badge span{margin-top:4px!important;font-size:7px!important;font-weight:900!important;letter-spacing:.09em!important;text-transform:uppercase!important;color:color-mix(in srgb,var(--deep) 72%,#788078)!important}

  .ww512-card-copy{min-width:0!important;display:flex!important;flex-direction:column!important;justify-content:center!important;gap:4px!important}
  .ww512-title-row{display:flex!important;align-items:center!important;gap:6px!important;min-width:0!important}
  .ww512-title-row h3{min-width:0!important;max-width:100%!important;margin:0!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important;color:#fff!important;font-family:inherit!important;font-size:14px!important;font-weight:900!important;line-height:1.15!important;letter-spacing:0!important;text-shadow:none!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .ww512-state-pill{flex:0 0 auto!important;display:inline-flex!important;align-items:center!important;height:18px!important;padding:0 6px!important;border-radius:999px!important;background:#fff2d6!important;color:#835d14!important;font-size:7.5px!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:.04em!important}
  .ww512-state-pill.is-accepted{background:#e8f6e9!important;color:#226035!important}
  .ww512-state-pill.is-rejected{background:#fbe5e1!important;color:#9f352b!important}
  .ww512-admin-line,.ww512-time-line{display:flex!important;align-items:center!important;gap:5px!important;min-width:0!important;color:rgba(255,255,255,.92)!important;font-size:10px!important;font-weight:750!important;line-height:1.15!important;white-space:nowrap!important;overflow:hidden!important}
  .ww512-admin-line span:last-child,.ww512-time-line span:last-child{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .ww512-admin-line b,.ww512-time-line b{font-weight:900!important;opacity:.55!important}

  .ww512-card-chevron{display:grid!important;place-items:center!important;width:24px!important;height:24px!important;border-radius:8px!important;background:rgba(255,255,255,.13)!important;color:#fff!important;transform:rotate(180deg)!important}
  .ww512-card-chevron svg{width:12px!important;height:12px!important;stroke:currentColor!important;fill:none!important}

  .ww512-employee-job{grid-template-columns:54px minmax(0,1fr) auto!important}
  .ww512-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:4px!important;min-width:0!important;margin:0!important}
  .ww512-employee-job .ww512-actions{grid-column:3!important;grid-row:1!important;align-self:center!important;width:auto!important}
  .ww512-actions .rc-act,.ww512-actions .rc-emp-state{
    display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:3px!important;
    width:auto!important;min-width:0!important;height:27px!important;min-height:27px!important;
    padding:0 7px!important;margin:0!important;border-radius:8px!important;
    font-size:9px!important;font-weight:900!important;line-height:1!important;white-space:nowrap!important;
    box-shadow:none!important;border:1px solid rgba(255,255,255,.55)!important;
  }
  .ww512-actions .rc-act svg,.ww512-actions .rc-emp-state svg{width:11px!important;height:11px!important;display:block!important}
  .ww512-actions .rc-reject{background:rgba(255,255,255,.95)!important;color:#b13a2d!important}
  .ww512-actions .rc-accept,.ww512-actions .rc-start,.ww512-actions .rc-emp-state{background:#fff!important;color:var(--deep)!important}

  .ww512-roster-card.is-draft{opacity:1!important}
  .ww512-roster-card.is-admin.is-draft{background:#fff!important;border:1px dashed color-mix(in srgb,var(--solid) 55%,#fff)!important}
  .ww512-roster-card.is-admin.is-draft .ww512-title-row h3{color:#25372a!important}
  .ww512-roster-card.is-admin.is-draft .ww512-admin-line{color:#5d6d62!important}
  .ww512-roster-card.is-admin.is-draft .ww512-hours-badge{background:linear-gradient(135deg,var(--solid),var(--deep))!important;color:#fff!important}
  .ww512-roster-card.is-admin.is-draft .ww512-hours-badge strong,.ww512-roster-card.is-admin.is-draft .ww512-hours-badge span{color:#fff!important}
  .ww512-roster-card.is-admin.is-draft .ww512-card-chevron{background:#edf1eb!important;color:var(--deep)!important}

  .ww512-roster-card.is-rejected{filter:none!important;opacity:.72!important;background:linear-gradient(135deg,#7a7775,#5f5c5a)!important;border:1px solid rgba(255,255,255,.22)!important}
  .ww512-roster-card.is-rejected .ww512-title-row h3,.ww512-roster-card.is-rejected .ww512-time-line{text-decoration:none!important}

  .rst-day-head{margin-bottom:7px!important}
  .rst-day-head h2{font-size:20px!important}
  .rst-day-head span{font-size:10.5px!important}
}
@media(max-width:390px){
  .roster-mobile .ww512-roster-card,.home-roster-list .ww512-roster-card{grid-template-columns:50px minmax(0,1fr) auto!important;gap:7px!important;min-height:60px!important;padding:6px 8px!important;margin-bottom:5px!important}
  .ww512-hours-badge{width:50px!important;min-width:50px!important;height:46px!important}
  .ww512-hours-badge strong{font-size:13px!important}
  .ww512-title-row h3{font-size:12.8px!important}
  .ww512-admin-line,.ww512-time-line{font-size:9.4px!important}
  .ww512-actions .rc-act,.ww512-actions .rc-emp-state{height:27px!important;min-height:27px!important;padding:0 6px!important;font-size:8.5px!important}
}


/* ---- inline style 129 ---- */

/* Requested-only change: make the job/client name easier to notice without increasing the skinny card height. */
@media(max-width:1023px){
  .ww512-roster-card .ww512-title-row h3{
    font-size:14.4px!important;
    font-weight:950!important;
    line-height:1.08!important;
    letter-spacing:-.018em!important;
    color:#fff!important;
    text-shadow:0 1px 2px rgba(0,0,0,.34)!important;
  }
  .ww512-roster-card.is-admin.is-draft .ww512-title-row h3{
    color:#1d3022!important;
    text-shadow:0 1px 0 rgba(255,255,255,.8)!important;
  }
}
@media(max-width:390px){
  .ww512-roster-card .ww512-title-row h3{font-size:13.7px!important;}
}


/* ---- inline style 130 ---- */

/* Requested-only change: make employee rejected shifts unmistakable while preserving the skinny roster-card size. */
@media(max-width:1023px){
  .roster-mobile .ww512-roster-card.is-rejected,
  .home-roster-list .ww512-roster-card.is-rejected{
    opacity:1!important;
    filter:none!important;
    background:linear-gradient(135deg,#fff9f8 0%,#fde9e7 100%)!important;
    border:1.5px solid #e2696e!important;
    box-shadow:inset 4px 0 0 #c92f38,0 5px 14px rgba(153,39,46,.18)!important;
  }
  .ww512-roster-card.is-rejected .ww512-hours-badge{
    background:#fff!important;
    border:1px solid rgba(201,47,56,.18)!important;
    box-shadow:0 2px 7px rgba(154,37,44,.12)!important;
    color:#a91f28!important;
  }
  .ww512-roster-card.is-rejected .ww512-hours-badge strong{
    color:#a91f28!important;
    text-shadow:none!important;
  }
  .ww512-roster-card.is-rejected .ww512-hours-badge span{
    color:#b43c43!important;
  }
  .ww512-roster-card.is-rejected .ww512-title-row h3{
    color:#a91f28!important;
    text-shadow:none!important;
  }
  .ww512-roster-card.is-rejected .ww512-time-line{
    color:#b52c34!important;
    font-weight:850!important;
  }
  .ww512-roster-card.is-rejected .ww512-time-line b{
    color:#db6c71!important;
    opacity:1!important;
  }
  .ww512-roster-card.is-rejected .ww512-state-pill.is-rejected{
    background:linear-gradient(135deg,#d53b44,#b9202a)!important;
    color:#fff!important;
    border:1px solid rgba(139,20,29,.22)!important;
    box-shadow:0 2px 6px rgba(152,29,37,.18)!important;
  }
  .ww512-roster-card.is-rejected .ww512-actions .ww514-rejected-mark{
    width:30px!important;
    min-width:30px!important;
    height:30px!important;
    min-height:30px!important;
    padding:0!important;
    border-radius:50%!important;
    background:#fff8f7!important;
    color:#c92f38!important;
    border:2px solid #d53b44!important;
    box-shadow:0 2px 7px rgba(152,29,37,.15)!important;
  }
  .ww512-roster-card.is-rejected .ww512-actions .ww514-rejected-mark svg{
    width:14px!important;
    height:14px!important;
    stroke-width:3!important;
  }
}
@media(max-width:390px){
  .ww512-roster-card.is-rejected .ww512-actions .ww514-rejected-mark{
    width:27px!important;min-width:27px!important;height:27px!important;min-height:27px!important;
  }
}


/* ---- inline style 131 ---- */

body[data-modal-type="shift"] .ww515-shift-builder{
  display:grid!important;gap:10px!important;padding:1px 0 6px!important;
}
body[data-modal-type="shift"] .ww515-step,
body[data-modal-type="shift"] .ww515-more-settings{
  margin:0!important;padding:13px!important;border:1px solid rgba(37,73,45,.13)!important;
  border-radius:18px!important;background:#fffef9!important;box-shadow:0 5px 16px rgba(30,58,35,.045)!important;
  overflow:visible!important;order:initial!important;
}
body[data-modal-type="shift"] .ww515-step-head{
  display:flex!important;align-items:center!important;gap:10px!important;margin:0 0 11px!important;min-width:0!important;
}
body[data-modal-type="shift"] .ww515-step-number{
  display:grid!important;place-items:center!important;width:28px!important;height:28px!important;flex:0 0 28px!important;
  border-radius:9px!important;background:#e5efe4!important;color:#245c37!important;font-size:12px!important;font-weight:950!important;
}
body[data-modal-type="shift"] .ww515-step-head>span:nth-child(2){display:flex!important;flex-direction:column!important;min-width:0!important;gap:1px!important}
body[data-modal-type="shift"] .ww515-step-head strong{font-size:15px!important;line-height:1.15!important;color:#1c3022!important;font-weight:900!important}
body[data-modal-type="shift"] .ww515-step-head small{font-size:10.5px!important;line-height:1.25!important;color:#778179!important;font-weight:600!important}
body[data-modal-type="shift"] .ww515-admin-badge{
  margin-left:auto!important;padding:5px 8px!important;border-radius:999px!important;background:#e8f1e6!important;color:#245d38!important;
  font-size:8px!important;font-weight:950!important;letter-spacing:.08em!important;white-space:nowrap!important;
}

/* Remove the older card-inside-card appearance. */
body[data-modal-type="shift"] .ww515-client-step>.client-search-panel,
body[data-modal-type="shift"] .ww515-hours-team-step>.emp-field{
  margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;overflow:visible!important;
}
body[data-modal-type="shift"] .ww515-client-step>.client-search-panel>.panel-title{display:none!important}
body[data-modal-type="shift"] .ww515-client-step .client-search-box{height:48px!important;border-radius:13px!important;background:#f5f8f1!important;border:1.5px solid #80a487!important}
body[data-modal-type="shift"] .ww515-client-step .client-search-box input{font-size:15.5px!important;font-weight:850!important;color:#1c2e21!important}
body[data-modal-type="shift"] .ww515-client-step .add-client-block{margin-top:8px!important}
body[data-modal-type="shift"] .ww515-client-step .add-client-toggle{min-height:40px!important;border-radius:12px!important;padding:0 12px!important;font-size:13px!important}

body[data-modal-type="shift"] .ww515-date-start-grid{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:9px!important}
body[data-modal-type="shift"] .ww515-date-start-grid .field{margin:0!important;min-width:0!important}
body[data-modal-type="shift"] .ww515-date-start-grid label{font-size:10.5px!important;margin-bottom:5px!important;color:#536158!important;font-weight:850!important}
body[data-modal-type="shift"] .ww515-date-start-grid .input,
body[data-modal-type="shift"] .ww515-date-start-grid .time-select{height:45px!important;border-radius:12px!important;background:#fbfcf8!important;border:1px solid rgba(54,83,59,.17)!important;font-size:15px!important}
body[data-modal-type="shift"] .ww515-finish-line{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:2px 8px!important;margin-top:9px!important;padding:9px 11px!important;
  border-radius:12px!important;background:#f2f6ef!important;border:1px solid rgba(40,86,51,.10)!important;
}
body[data-modal-type="shift"] .ww515-finish-line>span{display:flex!important;align-items:center!important;gap:6px!important;font-size:10.5px!important;font-weight:850!important;color:#516258!important}
body[data-modal-type="shift"] .ww515-finish-line svg{width:14px!important;height:14px!important;color:#337047!important}
body[data-modal-type="shift"] .ww515-finish-line strong{font-size:13.5px!important;color:#205b35!important;font-weight:950!important}
body[data-modal-type="shift"] .ww515-finish-line small{grid-column:1/-1!important;font-size:9.5px!important;color:#849087!important}

/* Compact invoice editor: no large dark-green block. */
body[data-modal-type="shift"] .ww515-invoice-row{
  display:grid!important;grid-template-columns:34px minmax(0,1fr) auto!important;align-items:center!important;gap:9px!important;
  min-height:58px!important;padding:9px 10px!important;border-radius:14px!important;background:#f5f8f2!important;border:1.5px solid rgba(53,105,65,.20)!important;
}
body[data-modal-type="shift"] .ww515-invoice-icon{display:grid!important;place-items:center!important;width:34px!important;height:34px!important;border-radius:10px!important;background:#e2eee1!important;color:#2b6a40!important}
body[data-modal-type="shift"] .ww515-invoice-icon svg{width:17px!important;height:17px!important}
body[data-modal-type="shift"] .ww515-invoice-copy{display:flex!important;flex-direction:column!important;min-width:0!important;gap:2px!important}
body[data-modal-type="shift"] .ww515-invoice-copy strong{font-size:13.5px!important;color:#213528!important;font-weight:900!important}
body[data-modal-type="shift"] .ww515-invoice-copy small{font-size:9.5px!important;color:#7a867d!important}
body[data-modal-type="shift"] .ww515-hours-editor{
  display:grid!important;grid-template-columns:auto auto!important;align-items:baseline!important;gap:4px!important;min-width:92px!important;padding:7px 9px!important;
  border-radius:11px!important;background:#fff!important;border:1.5px solid #78a182!important;box-shadow:0 2px 7px rgba(35,75,44,.06)!important;
}
body[data-modal-type="shift"] .ww515-hours-editor input{
  width:52px!important;min-width:0!important;padding:0!important;border:0!important;outline:0!important;background:transparent!important;text-align:right!important;
  color:#174e2c!important;font-size:18px!important;font-weight:950!important;line-height:1.1!important;font-variant-numeric:tabular-nums!important;
}
body[data-modal-type="shift"] .ww515-hours-editor span{font-size:9px!important;color:#617268!important;font-weight:850!important}
body[data-modal-type="shift"] .ww515-hours-editor:focus-within{
  border-color:#1f6b39!important;box-shadow:0 0 0 4px rgba(39,111,58,.13),0 5px 14px rgba(31,78,42,.12)!important;background:#fff!important;
}
body[data-modal-type="shift"] .ww515-invoice-help{
  display:grid!important;grid-template-columns:auto 1fr!important;align-items:center!important;gap:1px 7px!important;margin:7px 0 11px!important;padding:0 2px!important;
}
body[data-modal-type="shift"] .ww515-invoice-help span{font-size:9px!important;text-transform:uppercase!important;letter-spacing:.06em!important;color:#7f8981!important;font-weight:850!important}
body[data-modal-type="shift"] .ww515-invoice-help strong{font-size:11.5px!important;color:#2b633d!important}
body[data-modal-type="shift"] .ww515-invoice-help small{grid-column:1/-1!important;font-size:9.5px!important;color:#7e8981!important}

/* Employee picker integrated into the Hours & team card. */
body[data-modal-type="shift"] .ww515-hours-team-step .shift-section-label{
  display:flex!important;align-items:center!important;gap:7px!important;margin:0 0 6px!important;font-size:12.5px!important;color:#23372a!important;font-weight:900!important;
}
body[data-modal-type="shift"] .ww515-hours-team-step .shift-section-label svg{width:16px!important;height:16px!important;color:#347148!important}
body[data-modal-type="shift"] .ww515-hours-team-step .emp-count-badge{margin-left:auto!important;font-size:9px!important;padding:4px 8px!important}
body[data-modal-type="shift"] .ww515-hours-team-step .emp-collapsed{min-height:46px!important;padding:8px 10px!important;border-radius:12px!important;background:#fbfcf8!important}
body[data-modal-type="shift"] .ww515-hours-team-step .emp-collapsed-copy strong{font-size:13px!important}
body[data-modal-type="shift"] .ww515-hours-team-step .emp-inline-static{border-radius:13px!important}

body[data-modal-type="shift"] .ww515-empty-team{
  display:flex!important;align-items:center!important;gap:9px!important;margin-top:9px!important;padding:10px!important;border-radius:12px!important;background:#f5f6f1!important;color:#526159!important;
}
body[data-modal-type="shift"] .ww515-empty-team-icon{display:grid!important;place-items:center!important;width:30px!important;height:30px!important;border-radius:9px!important;background:#e7ede4!important;color:#39704a!important}
body[data-modal-type="shift"] .ww515-empty-team-icon svg{width:15px!important;height:15px!important}
body[data-modal-type="shift"] .ww515-empty-team>span:last-child{display:flex!important;flex-direction:column!important;gap:1px!important}
body[data-modal-type="shift"] .ww515-empty-team strong{font-size:11.5px!important}.ww515-empty-team small{font-size:9.5px!important;color:#7a857d!important}

/* Native details summaries keep the form compact without removing any inputs. */
body[data-modal-type="shift"] .ww515-staff-details,
body[data-modal-type="shift"] .ww515-more-settings{margin-top:9px!important}
body[data-modal-type="shift"] .ww515-staff-details>summary,
body[data-modal-type="shift"] .ww515-more-settings>summary{
  list-style:none!important;display:grid!important;grid-template-columns:32px minmax(0,1fr) auto 18px!important;align-items:center!important;gap:8px!important;
  min-height:48px!important;cursor:pointer!important;user-select:none!important;-webkit-user-select:none!important;
}
body[data-modal-type="shift"] .ww515-staff-details>summary::-webkit-details-marker,
body[data-modal-type="shift"] .ww515-more-settings>summary::-webkit-details-marker{display:none!important}
body[data-modal-type="shift"] .ww515-summary-icon{display:grid!important;place-items:center!important;width:32px!important;height:32px!important;border-radius:10px!important;background:#e7f0e5!important;color:#2f6b43!important}
body[data-modal-type="shift"] .ww515-summary-icon svg{width:16px!important;height:16px!important}
body[data-modal-type="shift"] .ww515-summary-copy{display:flex!important;flex-direction:column!important;min-width:0!important;gap:2px!important}
body[data-modal-type="shift"] .ww515-summary-copy strong{font-size:13px!important;color:#23372a!important;font-weight:900!important}
body[data-modal-type="shift"] .ww515-summary-copy small{font-size:9.5px!important;color:#78847b!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body[data-modal-type="shift"] .ww515-summary-pill{padding:5px 7px!important;border-radius:999px!important;background:#eaf2e7!important;color:#2a633d!important;font-size:9px!important;font-weight:900!important;white-space:nowrap!important}
body[data-modal-type="shift"] .ww515-summary-chevron{display:grid!important;place-items:center!important;transform:rotate(-90deg)!important;color:#839086!important}
body[data-modal-type="shift"] details[open]>.ww515-summary-chevron,
body[data-modal-type="shift"] details[open]>summary .ww515-summary-chevron{transform:rotate(90deg)!important}
body[data-modal-type="shift"] .ww515-summary-chevron svg{width:16px!important;height:16px!important}
body[data-modal-type="shift"] .ww515-staff-body{padding-top:9px!important;border-top:1px solid rgba(45,78,51,.09)!important}
body[data-modal-type="shift"] .ww515-split-explain{padding:9px 10px!important;border-radius:11px!important;background:#f3f7ef!important;border:1px solid rgba(49,96,59,.09)!important}
body[data-modal-type="shift"] .ww515-split-explain strong,.ww515-split-explain span{display:block!important}
body[data-modal-type="shift"] .ww515-split-explain strong{font-size:11.5px!important;color:#285d39!important}
body[data-modal-type="shift"] .ww515-split-explain span{margin-top:2px!important;font-size:9.5px!important;line-height:1.35!important;color:#738078!important}
body[data-modal-type="shift"] .ww515-split-toggle{margin:8px 0!important;padding:3px!important;border-radius:11px!important}
body[data-modal-type="shift"] .ww515-split-toggle button{height:31px!important;font-size:9.5px!important}
body[data-modal-type="shift"] .ww515-allocation-list{gap:5px!important}
body[data-modal-type="shift"] .ww515-allocation-row{min-height:48px!important;padding:6px 8px!important;border-radius:11px!important;background:#fbfcf8!important}
body[data-modal-type="shift"] .ww515-allocation-row .ww511-allocation-av{width:30px!important;height:30px!important;border-radius:9px!important;font-size:9px!important}
body[data-modal-type="shift"] .ww515-allocation-row .ww511-allocation-copy strong{font-size:10.8px!important}
body[data-modal-type="shift"] .ww515-allocation-row .ww511-allocation-copy small{font-size:8.8px!important}
body[data-modal-type="shift"] .ww515-row-hours{font-size:11.5px!important}
body[data-modal-type="shift"] .ww515-custom-input{padding:4px 6px!important}.ww515-custom-input input{width:42px!important;font-size:11.5px!important}
body[data-modal-type="shift"] .ww515-allocation-total{margin-top:7px!important;padding:7px 9px!important;border-radius:10px!important}
body[data-modal-type="shift"] .ww515-allocation-total span{font-size:8px!important}.ww515-allocation-total strong{font-size:10.5px!important}.ww515-allocation-total em{font-size:8px!important}

body[data-modal-type="shift"] .ww515-more-settings{padding:0 13px!important;background:#fffdf8!important}
body[data-modal-type="shift"] .ww515-more-settings>summary{grid-template-columns:32px minmax(0,1fr) 18px!important;padding:10px 0!important}
body[data-modal-type="shift"] .ww515-more-body{display:grid!important;gap:8px!important;padding:0 0 12px!important;border-top:1px solid rgba(45,78,51,.09)!important}
body[data-modal-type="shift"] .ww515-more-body>.shift-panel,
body[data-modal-type="shift"] .ww515-more-body>.shift-section{margin:8px 0 0!important;padding:10px!important;border-radius:13px!important;background:#f8f9f4!important;border:1px solid rgba(39,76,47,.09)!important;box-shadow:none!important;order:initial!important}
body[data-modal-type="shift"] .ww515-more-body .panel-title{font-size:12px!important;margin-bottom:7px!important}
body[data-modal-type="shift"] .ww515-more-body .row2{gap:7px!important}
body[data-modal-type="shift"] .ww515-more-body .input{min-height:41px!important;border-radius:11px!important}

/* Keep the invoice field inside the visible viewport when iOS opens a keyboard. */
@media(max-width:720px){
  body[data-modal-type="shift"] .shift-modal .modal-head{padding-left:15px!important;padding-right:58px!important}
  body[data-modal-type="shift"] .shift-modal .modal-head h2{font-size:21px!important}
  body[data-modal-type="shift"] .shift-modal .modal-body{padding:8px 11px 10px!important}
  body[data-modal-type="shift"] .shift-modal .modal-foot{padding:8px 11px calc(8px + env(safe-area-inset-bottom))!important}
  body[data-modal-type="shift"] .shift-modal .modal-foot .sft-btn{height:44px!important}
  body[data-modal-type="shift"] .ww515-step{padding:11px!important;border-radius:16px!important}
  body[data-modal-type="shift"] .ww515-step-head{margin-bottom:9px!important}
  body[data-modal-type="shift"].ww515-invoice-editing #modalHost,
  body[data-modal-type="shift"].ww515-invoice-editing .modal-overlay{
    height:var(--ww515-visual-height,100dvh)!important;max-height:var(--ww515-visual-height,100dvh)!important;min-height:0!important;align-items:flex-start!important;
  }
  body[data-modal-type="shift"].ww515-invoice-editing .shift-modal{
    height:var(--ww515-visual-height,100dvh)!important;max-height:var(--ww515-visual-height,100dvh)!important;min-height:0!important;
  }
  body[data-modal-type="shift"].ww515-invoice-editing .shift-modal .modal-body{padding-bottom:86px!important;scroll-padding-top:78px!important;scroll-padding-bottom:92px!important}
  body[data-modal-type="shift"].ww515-invoice-editing #ww515InvoiceCard{position:relative!important;z-index:4!important;background:#fff!important;border-color:#2f7a46!important;box-shadow:0 8px 24px rgba(29,76,40,.18)!important}
}
@media(max-width:390px){
  body[data-modal-type="shift"] .ww515-date-start-grid{grid-template-columns:1fr 1fr!important}
  body[data-modal-type="shift"] .ww515-step-head small{font-size:9.5px!important}
  body[data-modal-type="shift"] .ww515-invoice-row{grid-template-columns:31px minmax(0,1fr) auto!important;gap:7px!important;padding:8px!important}
  body[data-modal-type="shift"] .ww515-invoice-icon{width:31px!important;height:31px!important}
  body[data-modal-type="shift"] .ww515-hours-editor{min-width:84px!important;padding:7px!important}.ww515-hours-editor input{width:47px!important;font-size:17px!important}
}


/* ---- inline style 132 ---- */

body[data-modal-type="shift"] .ww515-shift-builder{
  width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;
}
body[data-modal-type="shift"] .ww515-shift-builder>.ww515-step,
body[data-modal-type="shift"] .ww515-shift-builder>.ww515-more-settings{
  width:auto!important;max-width:100%!important;min-width:0!important;align-self:stretch!important;box-sizing:border-box!important;
}
body[data-modal-type="shift"] .ww515-step *,
body[data-modal-type="shift"] .ww515-more-settings *{min-width:0}
body[data-modal-type="shift"] .ww515-hours-head .ww515-admin-badge{flex:0 0 auto!important}
body[data-modal-type="shift"] .ww515-invoice-row,
body[data-modal-type="shift"] .ww515-finish-line,
body[data-modal-type="shift"] .ww515-staff-details,
body[data-modal-type="shift"] .ww515-more-settings>summary{width:100%!important;max-width:100%!important;box-sizing:border-box!important}


/* ---- inline style 133 ---- */

/* Desktop-only refinement. Mobile remains the v515 layout the user approved. */
@media (min-width:1024px){
  body[data-modal-type="shift"] .modal-overlay{
    padding:18px!important;
    background:rgba(10,29,17,.72)!important;
  }
  body[data-modal-type="shift"] .shift-modal{
    width:min(94vw,1180px)!important;
    max-width:1180px!important;
    height:min(90dvh,860px)!important;
    max-height:min(90dvh,860px)!important;
    border-radius:24px!important;
    background:#f3f6f1!important;
    border:1px solid rgba(255,255,255,.7)!important;
    box-shadow:0 30px 90px rgba(4,24,11,.36),0 2px 0 rgba(255,255,255,.75) inset!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-head{
    min-height:72px!important;
    padding:16px 24px 13px!important;
    background:linear-gradient(180deg,#fffefb 0%,#f8faf6 100%)!important;
    border-bottom:1px solid rgba(32,69,41,.11)!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-head h2{
    display:flex!important;
    flex-direction:column!important;
    gap:3px!important;
    font-size:25px!important;
    line-height:1.05!important;
    color:#14281b!important;
    letter-spacing:-.025em!important;
    font-weight:620!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-head h2::before{
    content:"ROSTER JOB";
    font-family:var(--font-ui,Arial,sans-serif)!important;
    font-size:9px!important;
    line-height:1!important;
    letter-spacing:.17em!important;
    color:#5e7865!important;
    font-weight:900!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-x{
    width:40px!important;height:40px!important;border-radius:12px!important;
    background:#eef2ea!important;color:#496053!important;
    border:1px solid rgba(47,78,55,.08)!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-x:hover{
    background:#e2eadf!important;color:#1f5b34!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-body{
    padding:18px 22px 16px!important;
    background:
      radial-gradient(circle at 90% 0%,rgba(217,234,215,.42),transparent 34%),
      #f3f6f1!important;
    scrollbar-gutter:stable!important;
  }
  body[data-modal-type="shift"] .ww515-shift-builder{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-areas:
      "client schedule"
      "hours hours"
      "more more"!important;
    gap:14px!important;
    align-items:start!important;
    padding:0!important;
  }
  body[data-modal-type="shift"] .ww515-client-step{grid-area:client!important}
  body[data-modal-type="shift"] .ww515-schedule-step{grid-area:schedule!important}
  body[data-modal-type="shift"] .ww515-hours-team-step{grid-area:hours!important}
  body[data-modal-type="shift"] .ww515-more-settings{grid-area:more!important}
  body[data-modal-type="shift"] .ww515-shift-builder>.ww515-step,
  body[data-modal-type="shift"] .ww515-shift-builder>.ww515-more-settings{
    align-self:start!important;
  }
  body[data-modal-type="shift"] .ww515-step,
  body[data-modal-type="shift"] .ww515-more-settings{
    border-radius:18px!important;
    border:1px solid rgba(34,72,43,.12)!important;
    background:rgba(255,255,252,.94)!important;
    box-shadow:0 8px 24px rgba(20,49,28,.055),0 1px 0 rgba(255,255,255,.86) inset!important;
  }
  body[data-modal-type="shift"] .ww515-step{padding:15px 16px!important}
  body[data-modal-type="shift"] .ww515-step-head{
    margin-bottom:13px!important;
    padding-bottom:10px!important;
    border-bottom:1px solid rgba(38,76,46,.08)!important;
  }
  body[data-modal-type="shift"] .ww515-step-number{
    width:32px!important;height:32px!important;flex-basis:32px!important;
    border-radius:10px!important;
    background:linear-gradient(145deg,#dcebdd,#edf5ea)!important;
    color:#1f6638!important;
    border:1px solid rgba(43,103,58,.09)!important;
    font-size:12px!important;
  }
  body[data-modal-type="shift"] .ww515-step-head strong{
    font-size:15.5px!important;color:#183021!important;
  }
  body[data-modal-type="shift"] .ww515-step-head small{
    font-size:10.5px!important;color:#748079!important;
  }
  body[data-modal-type="shift"] .ww515-admin-badge{
    padding:6px 9px!important;
    background:#e6f0e3!important;
    border:1px solid rgba(39,96,52,.09)!important;
    font-size:8px!important;
  }

  /* Top row fields: clear and balanced. */
  body[data-modal-type="shift"] .ww515-client-step .client-search-box,
  body[data-modal-type="shift"] .ww515-date-start-grid .input,
  body[data-modal-type="shift"] .ww515-date-start-grid .time-select{
    min-height:48px!important;height:48px!important;
    border-radius:13px!important;
    background:#fbfcf9!important;
    border:1px solid rgba(53,85,59,.18)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.9) inset!important;
  }
  body[data-modal-type="shift"] .ww515-client-step .client-search-box:focus-within,
  body[data-modal-type="shift"] .ww515-date-start-grid .input:focus,
  body[data-modal-type="shift"] .ww515-date-start-grid .time-select:focus-within{
    border-color:#4b8a5b!important;
    box-shadow:0 0 0 3px rgba(48,122,67,.11)!important;
  }
  body[data-modal-type="shift"] .ww515-client-step .add-client-toggle{
    min-height:39px!important;
    background:#fbfcf8!important;
  }
  body[data-modal-type="shift"] .ww515-finish-line{
    margin-top:10px!important;
    min-height:42px!important;
    padding:9px 11px!important;
    background:#eef5ec!important;
  }

  /* Step 3 becomes a proper desktop workspace instead of a tall single column. */
  body[data-modal-type="shift"] .ww515-hours-team-step{
    display:grid!important;
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)!important;
    grid-template-areas:
      "head head"
      "invoice employees"
      "help employees"
      "staff staff"!important;
    column-gap:16px!important;
    row-gap:0!important;
    align-items:start!important;
  }
  body[data-modal-type="shift"] .ww515-hours-team-step>.ww515-step-head{grid-area:head!important}
  body[data-modal-type="shift"] .ww515-hours-team-step>.ww515-invoice-row{grid-area:invoice!important}
  body[data-modal-type="shift"] .ww515-hours-team-step>.ww515-invoice-help{grid-area:help!important}
  body[data-modal-type="shift"] .ww515-hours-team-step>.emp-field{grid-area:employees!important}
  body[data-modal-type="shift"] .ww515-hours-team-step>.ww515-staff-details,
  body[data-modal-type="shift"] .ww515-hours-team-step>.ww515-empty-team{grid-area:staff!important}
  body[data-modal-type="shift"] .ww515-invoice-row{
    min-height:64px!important;
    padding:10px 11px!important;
    border-radius:14px!important;
    background:linear-gradient(135deg,#f0f7ee,#f8fbf5)!important;
    border:1px solid rgba(54,112,67,.20)!important;
  }
  body[data-modal-type="shift"] .ww515-invoice-icon{
    width:38px!important;height:38px!important;border-radius:11px!important;
  }
  body[data-modal-type="shift"] .ww515-invoice-copy strong{font-size:13.5px!important}
  body[data-modal-type="shift"] .ww515-invoice-copy small{font-size:9.5px!important}
  body[data-modal-type="shift"] .ww515-hours-editor{
    min-width:112px!important;
    padding:8px 10px!important;
    border-radius:11px!important;
    background:#fff!important;
  }
  body[data-modal-type="shift"] .ww515-hours-editor input{
    width:61px!important;font-size:19px!important;
  }
  body[data-modal-type="shift"] .ww515-invoice-help{
    margin:7px 2px 0!important;
  }
  body[data-modal-type="shift"] .ww515-hours-team-step .shift-section-label{
    margin:0 0 7px!important;
  }
  body[data-modal-type="shift"] .ww515-hours-team-step .emp-collapsed{
    min-height:64px!important;
    padding:10px 12px!important;
    border-radius:14px!important;
    background:#fbfcf9!important;
    border:1px solid rgba(53,85,59,.18)!important;
  }
  body[data-modal-type="shift"] .ww515-hours-team-step .emp-collapsed-ic{
    width:34px!important;height:34px!important;border-radius:10px!important;
  }
  body[data-modal-type="shift"] .ww515-hours-team-step .emp-collapsed-copy{
    align-items:center!important;
  }
  body[data-modal-type="shift"] .ww515-hours-team-step .emp-collapsed-copy strong{
    font-size:13.5px!important;
  }
  body[data-modal-type="shift"] .ww515-hours-team-step .emp-collapsed-copy small{
    font-size:10.5px!important;
  }
  body[data-modal-type="shift"] .ww515-empty-team,
  body[data-modal-type="shift"] .ww515-staff-details{
    margin-top:13px!important;
    border-top:1px solid rgba(39,76,47,.08)!important;
    padding-top:12px!important;
  }
  body[data-modal-type="shift"] .ww515-staff-details>summary{
    min-height:54px!important;
    padding:0 2px!important;
  }
  body[data-modal-type="shift"] .ww515-summary-icon{
    width:36px!important;height:36px!important;border-radius:11px!important;
  }
  body[data-modal-type="shift"] .ww515-summary-copy strong{font-size:13.5px!important}
  body[data-modal-type="shift"] .ww515-summary-copy small{font-size:10px!important}
  body[data-modal-type="shift"] .ww515-summary-pill{font-size:9px!important;padding:6px 9px!important}
  body[data-modal-type="shift"] .ww515-staff-body{
    display:grid!important;
    grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr)!important;
    grid-template-areas:
      "explain list"
      "toggle list"
      "total total"!important;
    gap:8px 14px!important;
    padding-top:12px!important;
  }
  body[data-modal-type="shift"] .ww515-split-explain{grid-area:explain!important;margin:0!important}
  body[data-modal-type="shift"] .ww515-split-toggle{grid-area:toggle!important;margin:0!important;align-self:start!important}
  body[data-modal-type="shift"] .ww515-allocation-list{grid-area:list!important}
  body[data-modal-type="shift"] .ww515-allocation-total{grid-area:total!important}
  body[data-modal-type="shift"] .ww515-allocation-row{
    min-height:50px!important;
    border:1px solid rgba(45,82,51,.09)!important;
  }

  /* Advanced settings is now a compact full-width accordion, not a blank second card. */
  body[data-modal-type="shift"] .ww515-more-settings{
    padding:0 15px!important;
    background:#fffefb!important;
  }
  body[data-modal-type="shift"] .ww515-more-settings>summary{
    min-height:54px!important;
    padding:10px 0!important;
  }
  body[data-modal-type="shift"] .ww515-more-settings[open] .ww515-more-body{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px 12px!important;
    padding:12px 0 14px!important;
  }
  body[data-modal-type="shift"] .ww515-more-body>.shift-panel,
  body[data-modal-type="shift"] .ww515-more-body>.shift-section{
    margin:0!important;
    min-height:0!important;
  }
  body[data-modal-type="shift"] .ww515-more-body>.shift-notes-section{
    grid-column:1/-1!important;
  }

  /* Professional desktop action bar. */
  body[data-modal-type="shift"] .shift-modal .modal-foot{
    min-height:66px!important;
    padding:10px 22px!important;
    justify-content:flex-end!important;
    gap:10px!important;
    background:rgba(255,254,250,.97)!important;
    border-top:1px solid rgba(35,71,43,.11)!important;
    box-shadow:0 -8px 24px rgba(22,48,29,.07)!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-foot .sft-btn{
    flex:0 0 auto!important;
    height:44px!important;
    border-radius:12px!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-foot .sft-cancel{
    width:126px!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-foot .sft-save{
    width:226px!important;
    box-shadow:0 8px 18px rgba(32,102,51,.19)!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-foot .sft-del{
    width:46px!important;
    margin-right:auto!important;
  }
}
@media (min-width:1024px) and (max-height:760px){
  body[data-modal-type="shift"] .shift-modal{
    height:calc(100dvh - 20px)!important;
    max-height:calc(100dvh - 20px)!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-head{min-height:62px!important;padding-top:12px!important;padding-bottom:10px!important}
  body[data-modal-type="shift"] .shift-modal .modal-body{padding-top:12px!important;padding-bottom:12px!important}
  body[data-modal-type="shift"] .ww515-step{padding:12px 13px!important}
  body[data-modal-type="shift"] .ww515-step-head{margin-bottom:10px!important;padding-bottom:8px!important}
}


/* ---- inline style 134 ---- */

@media(max-width:1023px){
  body:not(.chat-thread-open) .main,body:not(.chat-thread-open) .content{
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    overflow-anchor:none!important;
    scroll-behavior:auto!important;
  }
  .roster-mobile{contain:none!important;transform:none!important;overflow-anchor:none!important;}
  .roster-mobile .rcard,.roster-mobile .ww512-roster-card{
    content-visibility:visible!important;
    contain:none!important;
    contain-intrinsic-size:none!important;
    transform:none!important;
    transition:none!important;
    animation:none!important;
    backface-visibility:visible!important;
    -webkit-backface-visibility:visible!important;
    will-change:auto!important;
    touch-action:pan-y!important;
    box-shadow:0 6px 14px rgba(19,42,26,.18),inset 0 1px 0 rgba(255,255,255,.14)!important;
  }
  .roster-mobile .rcard:active,.roster-mobile .ww512-roster-card:active{transform:none!important;}
}


/* ---- inline style 135 ---- */

/* One calm, contained roster control surface on mobile. The same day-picker
   structure is used for admin and employee accounts. */
@media(max-width:1023px){
  .ww521-roster-controls{
    position:relative!important;
    display:block!important;
    margin:0 0 14px!important;
    padding:12px!important;
    border:1px solid rgba(35,71,43,.12)!important;
    border-radius:22px!important;
    background:linear-gradient(180deg,rgba(255,255,252,.96),rgba(249,251,246,.94))!important;
    box-shadow:0 10px 28px rgba(25,55,34,.08),inset 0 1px 0 rgba(255,255,255,.9)!important;
    overflow:visible!important;
    isolation:isolate!important;
  }
  .ww521-control-search{
    display:block!important;
    margin:0 0 11px!important;
    padding:0 0 11px!important;
    border-bottom:1px solid rgba(35,71,43,.10)!important;
  }
  .ww521-control-search-label{
    display:flex!important;
    align-items:baseline!important;
    justify-content:space-between!important;
    gap:10px!important;
    margin:0 2px 7px!important;
  }
  .ww521-control-search-label strong{
    color:#213b2b!important;
    font-size:12.5px!important;
    font-weight:850!important;
    letter-spacing:.01em!important;
  }
  .ww521-control-search-label span{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    color:#7a857d!important;
    font-size:10.5px!important;
    font-weight:650!important;
  }
  .ww521-roster-controls .rwg-search-top{
    height:47px!important;
    min-height:47px!important;
    margin:0!important;
    padding:0 13px!important;
    border:1px solid rgba(47,107,62,.17)!important;
    border-radius:15px!important;
    background:#f5f8f2!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.9)!important;
  }
  .ww521-roster-controls .rwg-search-top:focus-within{
    border-color:rgba(47,107,62,.48)!important;
    box-shadow:0 0 0 3px rgba(47,107,62,.10)!important;
    background:#fff!important;
  }
  .ww521-roster-controls .rwg-search-ic{
    width:20px!important;height:20px!important;color:#54725e!important;
  }
  .ww521-roster-controls .rwg-search-top input{
    min-width:0!important;height:45px!important;padding:0 4px!important;
    color:#1d2e22!important;font-size:14px!important;font-weight:620!important;
  }
  .ww521-roster-controls .rwg-search-top input::placeholder{color:#9aa39c!important;font-weight:600!important;}
  .ww521-results{
    position:relative!important;
    z-index:3!important;
    margin:8px 0 0!important;
    border:1px solid rgba(35,71,43,.11)!important;
    border-radius:14px!important;
    overflow:hidden!important;
    background:#fff!important;
    box-shadow:0 10px 24px rgba(24,52,32,.10)!important;
  }
  .ww521-picker-head{
    display:flex!important;
    align-items:flex-end!important;
    justify-content:space-between!important;
    gap:10px!important;
    margin:0 2px 9px!important;
  }
  .ww521-picker-head>div{display:flex!important;flex-direction:column!important;min-width:0!important;gap:1px!important;}
  .ww521-picker-head span{
    color:#7b887f!important;font-size:9.5px!important;font-weight:850!important;
    letter-spacing:.10em!important;text-transform:uppercase!important;
  }
  .ww521-picker-head strong{
    color:#1d3526!important;font-size:14px!important;font-weight:850!important;line-height:1.2!important;
  }
  .ww521-picker-head small{
    flex:0 0 auto!important;color:#7a867e!important;font-size:9.5px!important;font-weight:750!important;
  }
  .ww521-roster-controls .rst-days,
  .ww521-roster-controls .rst-days-admin{
    display:grid!important;
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:6px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    background:none!important;
  }
  .ww521-roster-controls .rst-days::before,
  .ww521-roster-controls .rst-days-admin::before{display:none!important;content:none!important;}
  .ww521-roster-controls .rst-day,
  .ww521-roster-controls .rst-days-admin .rst-day{
    position:relative!important;
    min-width:0!important;
    width:100%!important;
    min-height:64px!important;
    margin:0!important;
    padding:7px 1px 6px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:2px!important;
    border:1px solid rgba(36,68,43,.11)!important;
    border-radius:15px!important;
    background:#f9faf7!important;
    box-shadow:0 2px 7px rgba(24,49,31,.045),inset 0 1px 0 rgba(255,255,255,.95)!important;
    transform:none!important;
    transition:background .14s ease,border-color .14s ease,box-shadow .14s ease!important;
    overflow:hidden!important;
    touch-action:manipulation!important;
  }
  .ww521-roster-controls .rst-day:active,
  .ww521-roster-controls .rst-days-admin .rst-day:active{transform:none!important;filter:none!important;}
  .ww521-roster-controls .rd-dow{
    color:#78837b!important;font-size:8.5px!important;font-weight:900!important;line-height:1!important;letter-spacing:.03em!important;
  }
  .ww521-roster-controls .rd-num{
    color:#1b281e!important;font-size:18px!important;font-weight:900!important;line-height:1.05!important;letter-spacing:-.035em!important;
  }
  .ww521-roster-controls .rst-day.today{
    border-color:rgba(49,113,67,.30)!important;
    box-shadow:inset 0 0 0 1px rgba(49,113,67,.13),0 2px 7px rgba(24,49,31,.045)!important;
  }
  .ww521-roster-controls .rst-day.sel,
  .ww521-roster-controls .rst-days-admin .rst-day.sel{
    border-color:#2f7545!important;
    background:linear-gradient(165deg,#438e58 0%,#27663d 100%)!important;
    box-shadow:0 6px 13px rgba(36,99,57,.22),inset 0 1px 0 rgba(255,255,255,.16)!important;
  }
  .ww521-roster-controls .rst-day.sel .rd-dow{color:rgba(255,255,255,.78)!important;}
  .ww521-roster-controls .rst-day.sel .rd-num{color:#fff!important;}
  .ww521-roster-controls .rd-stats,
  .ww521-roster-controls .rst-days-admin .rd-stats{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    min-width:35px!important;
    max-width:100%!important;
    height:16px!important;
    padding:0 4px!important;
    border:0!important;
    border-radius:999px!important;
    background:#eee7da!important;
    box-shadow:none!important;
    white-space:nowrap!important;
    line-height:1!important;
  }
  .ww521-roster-controls .rd-stats b,
  .ww521-roster-controls .rst-days-admin .rd-stats b{
    min-width:auto!important;height:auto!important;padding:0!important;border:0!important;border-radius:0!important;
    background:transparent!important;color:#9a653c!important;font-size:8px!important;font-weight:900!important;line-height:1!important;
  }
  .ww521-roster-controls .rd-stats em,
  .ww521-roster-controls .rst-days-admin .rd-stats em{
    color:#657068!important;font-size:7.8px!important;font-weight:850!important;line-height:1!important;
  }
  .ww521-roster-controls .rd-stats.empty{background:#f0f0eb!important;opacity:.66!important;}
  .ww521-roster-controls .rst-day.sel .rd-stats{
    background:rgba(255,255,255,.20)!important;border:0!important;
  }
  .ww521-roster-controls .rst-day.sel .rd-stats b,
  .ww521-roster-controls .rst-day.sel .rd-stats em{color:#fff!important;background:transparent!important;}
  .ww521-roster-controls .rd-cnt{
    min-width:17px!important;height:17px!important;padding:0 5px!important;border-radius:999px!important;
    display:grid!important;place-items:center!important;background:#b87942!important;color:#fff!important;
    font-size:8.5px!important;font-weight:900!important;box-shadow:none!important;
  }
  .ww521-roster-controls .rst-day.sel .rd-cnt{background:rgba(255,255,255,.22)!important;color:#fff!important;}
  .ww521-roster-controls .rd-empty{width:5px!important;height:5px!important;margin-top:3px!important;background:#d8ddd7!important;}
  .ww521-selected-day{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    width:100%!important;
    margin:10px 0 0!important;
    padding:10px 2px 0!important;
    border-top:1px solid rgba(35,71,43,.10)!important;
  }
  .ww521-selected-copy{display:flex!important;flex-direction:column!important;gap:1px!important;min-width:0!important;}
  .ww521-selected-copy>span{
    color:#7b887f!important;font-size:8.5px!important;font-weight:900!important;letter-spacing:.10em!important;text-transform:uppercase!important;
  }
  .ww521-selected-day h2{
    min-width:0!important;margin:0!important;color:#17291e!important;
    font-family:var(--font-display,Georgia,serif)!important;font-size:20px!important;font-weight:650!important;
    line-height:1.15!important;letter-spacing:-.02em!important;white-space:nowrap!important;
  }
  .ww521-selected-meta{
    flex:0 0 auto!important;
    max-width:48%!important;
    padding:6px 9px!important;
    border:1px solid rgba(47,107,62,.10)!important;
    border-radius:999px!important;
    background:#edf4eb!important;
    color:#44614d!important;
    font-size:9.5px!important;
    font-weight:850!important;
    line-height:1.1!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
  .roster-mobile{margin-top:0!important;padding-top:0!important;}
  .roster-mobile>.ww512-roster-card:first-child,
  .roster-mobile>.rcard:first-child{margin-top:0!important;}
}
@media(max-width:370px){
  .ww521-roster-controls{padding:10px!important;border-radius:19px!important;}
  .ww521-roster-controls .rst-days,.ww521-roster-controls .rst-days-admin{gap:4px!important;}
  .ww521-roster-controls .rst-day,.ww521-roster-controls .rst-days-admin .rst-day{min-height:61px!important;border-radius:13px!important;}
  .ww521-roster-controls .rd-dow{font-size:8px!important;}
  .ww521-roster-controls .rd-num{font-size:17px!important;}
  .ww521-roster-controls .rd-stats,.ww521-roster-controls .rst-days-admin .rd-stats{min-width:31px!important;padding:0 3px!important;gap:2px!important;}
  .ww521-roster-controls .rd-stats b,.ww521-roster-controls .rd-stats em{font-size:7.3px!important;}
  .ww521-selected-day{align-items:flex-start!important;}
  .ww521-selected-day h2{font-size:18px!important;}
  .ww521-selected-meta{max-width:46%!important;font-size:8.8px!important;padding:6px 7px!important;}
  .ww521-control-search-label span{display:none!important;}
}
@media(min-width:1024px){
  .ww521-desktop-search{
    margin:0 0 12px!important;padding:12px!important;border:1px solid rgba(35,71,43,.10)!important;
    border-radius:18px!important;background:rgba(255,255,252,.90)!important;box-shadow:0 7px 20px rgba(25,55,34,.06)!important;
  }
  .ww521-desktop-search .ww521-control-search{margin:0!important;padding:0!important;border:0!important;}
  .ww521-desktop-search .ww521-control-search-label{display:flex!important;justify-content:space-between!important;margin:0 2px 7px!important;}
  .ww521-desktop-search .ww521-control-search-label strong{font-size:12px!important;color:#263b2d!important;}
  .ww521-desktop-search .ww521-control-search-label span{font-size:11px!important;color:#7b867e!important;}
  .ww521-desktop-search .rwg-search-top{margin:0!important;}
  .ww521-desktop-search .ww521-results{margin-top:8px!important;}
}


/* ---- inline style 136 ---- */

@media (max-width:1023px){
  .roster-mobile .rcard .rc-meta.rc-meta-full,
  .home-roster-list .rcard .rc-meta.rc-meta-full,
  .rcard.is-emp .rc-meta.rc-meta-full{
    order:99!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 100%!important;
    align-self:stretch!important;
    width:100%!important;
    max-width:100%!important;
    margin:4px 0 0!important;
    padding:0!important;
    box-sizing:border-box!important;
    overflow:visible!important;
  }
  .roster-mobile .rcard .rc-meta .rc-staff-line,
  .home-roster-list .rcard .rc-meta .rc-staff-line,
  .rcard.is-emp .rc-meta .rc-staff-line{
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr) 38px!important;
    align-items:center!important;
    justify-content:center!important;
    gap:0!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:24px!important;
    margin:0!important;
    padding:2px 4px!important;
    box-sizing:border-box!important;
    border-radius:9px!important;
    background:rgba(8,31,16,.32)!important;
    border:1px solid rgba(255,255,255,.14)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important;
    overflow:visible!important;
    white-space:normal!important;
    text-overflow:clip!important;
  }
  .roster-mobile .rcard .rc-meta .rc-staff-line .rc-staff-kicker,
  .home-roster-list .rcard .rc-meta .rc-staff-line .rc-staff-kicker,
  .rcard.is-emp .rc-meta .rc-staff-line .rc-staff-kicker{
    grid-column:1!important;
    justify-self:start!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:34px!important;
    height:18px!important;
    min-height:18px!important;
    margin:0!important;
    padding:0!important;
    border-radius:6px!important;
    background:rgba(255,255,255,.20)!important;
    color:#fff!important;
    font-size:7.8px!important;
    font-weight:900!important;
    line-height:18px!important;
    letter-spacing:.07em!important;
    box-shadow:none!important;
  }
  .roster-mobile .rcard .rc-meta .rc-staff-line .rc-staff-names,
  .home-roster-list .rcard .rc-meta .rc-staff-line .rc-staff-names,
  .rcard.is-emp .rc-meta .rc-staff-line .rc-staff-names{
    grid-column:2!important;
    justify-self:center!important;
    align-self:center!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:auto!important;
    min-height:18px!important;
    margin:0!important;
    padding:2px 5px!important;
    box-sizing:border-box!important;
    color:#fff!important;
    text-align:center!important;
    font-size:11.2px!important;
    font-weight:900!important;
    line-height:1.12!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }
  .roster-mobile .rcard .rc-meta .rc-staff-line::after,
  .home-roster-list .rcard .rc-meta .rc-staff-line::after,
  .rcard.is-emp .rc-meta .rc-staff-line::after{
    content:""!important;
    grid-column:3!important;
    display:block!important;
    width:34px!important;
    height:1px!important;
  }
  .rcard.is-rejected .rc-staff-line{
    background:rgba(95,69,64,.10)!important;
    border-color:rgba(108,75,69,.16)!important;
  }
  .rcard.is-rejected .rc-staff-line .rc-staff-kicker{
    background:#6f635f!important;color:#fff!important;
  }
  .rcard.is-rejected .rc-staff-line .rc-staff-names{color:#5a4e4a!important;}
}


/* ---- inline style 137 ---- */

@media (max-width:1023px){
  .roster-mobile .ww522-roster-card,
  .home-roster-list .ww522-roster-card{
    grid-template-columns:50px minmax(0,1fr) auto!important;
    grid-template-rows:auto auto!important;
    column-gap:8px!important;
    row-gap:5px!important;
    align-items:center!important;
  }
  .ww522-roster-card .ww512-hours-badge{grid-column:1!important;grid-row:1!important;}
  .ww522-roster-card .ww522-card-copy{grid-column:2!important;grid-row:1!important;}
  .ww522-roster-card .ww512-card-chevron,
  .ww522-roster-card .ww512-actions{grid-column:3!important;grid-row:1!important;}

  .ww522-roster-card .ww522-team-line{
    grid-column:1 / -1!important;
    grid-row:2!important;
    justify-self:stretch!important;
    align-self:center!important;
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr) 38px!important;
    align-items:center!important;
    gap:0!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:23px!important;
    height:auto!important;
    margin:0!important;
    padding:2px 4px!important;
    box-sizing:border-box!important;
    border-radius:9px!important;
    background:rgba(7,29,15,.26)!important;
    border:1px solid rgba(255,255,255,.13)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.09)!important;
    color:#fff!important;
    overflow:visible!important;
  }
  .ww522-roster-card .ww522-team-label{
    grid-column:1!important;
    justify-self:start!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:34px!important;
    height:17px!important;
    padding:0!important;
    margin:0!important;
    border-radius:6px!important;
    background:rgba(255,255,255,.18)!important;
    color:#fff!important;
    font-size:7.5px!important;
    line-height:17px!important;
    letter-spacing:.06em!important;
  }
  .ww522-roster-card .ww522-team-names{
    grid-column:2!important;
    justify-self:center!important;
    align-self:center!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:1px 5px!important;
    box-sizing:border-box!important;
    color:#fff!important;
    text-align:center!important;
    font-size:10.8px!important;
    font-weight:900!important;
    line-height:1.12!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }
  .ww522-roster-card .ww522-team-line::after{
    content:""!important;
    grid-column:3!important;
    display:block!important;
    width:34px!important;
    height:1px!important;
  }
  .ww522-roster-card.is-admin.is-draft .ww522-team-line{
    background:#edf2eb!important;border-color:#d7e1d5!important;color:#405b47!important;
  }
  .ww522-roster-card.is-admin.is-draft .ww522-team-label{
    background:#dce7d9!important;color:#35533c!important;
  }
  .ww522-roster-card.is-admin.is-draft .ww522-team-names{color:#405b47!important;}
  .ww522-roster-card.is-rejected .ww522-team-line{
    background:rgba(255,255,255,.44)!important;border-color:rgba(150,57,48,.16)!important;
  }
  .ww522-roster-card.is-rejected .ww522-team-label{background:#b8483d!important;color:#fff!important;}
  .ww522-roster-card.is-rejected .ww522-team-names{color:#8f2f29!important;}
}
@media(max-width:370px){
  .roster-mobile .ww522-roster-card,
  .home-roster-list .ww522-roster-card{grid-template-columns:47px minmax(0,1fr) auto!important;column-gap:6px!important;}
  .ww522-roster-card .ww522-team-line{grid-template-columns:35px minmax(0,1fr) 35px!important;}
  .ww522-roster-card .ww522-team-label{width:31px!important;font-size:7px!important;}
  .ww522-roster-card .ww522-team-line::after{width:31px!important;}
  .ww522-roster-card .ww522-team-names{font-size:10.2px!important;}
}


/* ---- inline style 138 ---- */

/* Clean centred team row: no enclosing outline, no dark strip, no pill around the label. */
@media (max-width:1023px){
  .roster-mobile .ww522-roster-card,
  .home-roster-list .ww522-roster-card{
    grid-template-columns:50px minmax(0,1fr) auto!important;
    grid-template-rows:auto auto!important;
    column-gap:8px!important;
    row-gap:4px!important;
    align-items:center!important;
  }
  .ww522-roster-card .ww512-hours-badge{grid-column:1!important;grid-row:1!important;}
  .ww522-roster-card .ww522-card-copy{grid-column:2!important;grid-row:1!important;}
  .ww522-roster-card .ww512-card-chevron,
  .ww522-roster-card .ww512-actions{grid-column:3!important;grid-row:1!important;}

  .ww522-roster-card .ww522-team-line{
    grid-column:1 / -1!important;
    grid-row:2!important;
    justify-self:stretch!important;
    align-self:center!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:18px!important;
    height:auto!important;
    margin:0!important;
    padding:0 8px 1px!important;
    box-sizing:border-box!important;
    border:0!important;
    outline:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#fff!important;
    overflow:visible!important;
  }
  .ww522-roster-card .ww522-team-line::after{content:none!important;display:none!important;}
  .ww522-roster-card .ww522-team-label{
    flex:0 0 auto!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    height:auto!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    outline:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:rgba(255,255,255,.70)!important;
    font-size:7.2px!important;
    font-weight:900!important;
    line-height:1.1!important;
    letter-spacing:.12em!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
  }
  .ww522-roster-card .ww522-team-label::after{
    content:"·"!important;
    display:inline-block!important;
    margin-left:5px!important;
    color:rgba(255,255,255,.46)!important;
    font-size:10px!important;
    line-height:1!important;
  }
  .ww522-roster-card .ww522-team-names{
    flex:0 1 auto!important;
    display:block!important;
    width:auto!important;
    min-width:0!important;
    max-width:calc(100% - 48px)!important;
    margin:0!important;
    padding:0!important;
    box-sizing:border-box!important;
    color:#fff!important;
    text-align:center!important;
    font-size:10.8px!important;
    font-weight:900!important;
    line-height:1.14!important;
    letter-spacing:.005em!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    text-shadow:0 1px 1px rgba(0,0,0,.18)!important;
  }
  .ww522-roster-card.is-admin.is-draft .ww522-team-line{background:transparent!important;border:0!important;color:#405b47!important;}
  .ww522-roster-card.is-admin.is-draft .ww522-team-label{background:transparent!important;color:#718078!important;}
  .ww522-roster-card.is-admin.is-draft .ww522-team-label::after{color:#a0aba3!important;}
  .ww522-roster-card.is-admin.is-draft .ww522-team-names{color:#405b47!important;text-shadow:none!important;}
  .ww522-roster-card.is-rejected .ww522-team-line{background:transparent!important;border:0!important;}
  .ww522-roster-card.is-rejected .ww522-team-label{background:transparent!important;color:#a74a43!important;}
  .ww522-roster-card.is-rejected .ww522-team-label::after{color:#cf8e89!important;}
  .ww522-roster-card.is-rejected .ww522-team-names{color:#8f2f29!important;text-shadow:none!important;}
}
@media(max-width:370px){
  .roster-mobile .ww522-roster-card,
  .home-roster-list .ww522-roster-card{grid-template-columns:47px minmax(0,1fr) auto!important;column-gap:6px!important;}
  .ww522-roster-card .ww522-team-line{padding-left:5px!important;padding-right:5px!important;gap:4px!important;}
  .ww522-roster-card .ww522-team-label{font-size:6.8px!important;letter-spacing:.10em!important;}
  .ww522-roster-card .ww522-team-label::after{margin-left:4px!important;}
  .ww522-roster-card .ww522-team-names{font-size:10.2px!important;max-width:calc(100% - 43px)!important;}
}


/* ---- inline style 139 ---- */

/* Performance-only repair. Keeps the approved roster design unchanged while
   preventing iOS momentum scrolling from triggering expensive compositing or
   late card measurement. */
@media(max-width:1023px){
  body.ww-roster-active .main,
  body.ww-roster-active .content{
    transform:none!important;
    -webkit-transform:none!important;
    will-change:auto!important;
    contain:none!important;
    scroll-behavior:auto!important;
    overflow-anchor:none!important;
  }
  body.ww-roster-active .roster-mobile{
    transform:none!important;
    will-change:auto!important;
    contain:layout style!important;
    content-visibility:visible!important;
    overflow-anchor:none!important;
  }
  body.ww-roster-active .roster-mobile .ww522-roster-card,
  body.ww-roster-active .roster-mobile .ww512-roster-card,
  body.ww-roster-active .home-roster-list .ww522-roster-card{
    content-visibility:visible!important;
    contain:layout style!important;
    contain-intrinsic-size:none!important;
    transform:none!important;
    -webkit-transform:none!important;
    transition:none!important;
    animation:none!important;
    will-change:auto!important;
    backface-visibility:visible!important;
    -webkit-backface-visibility:visible!important;
  }
  body.ww-roster-active .roster-mobile .ww522-roster-card *,
  body.ww-roster-active .home-roster-list .ww522-roster-card *{
    transition:none!important;
    animation:none!important;
    will-change:auto!important;
  }
}


/* ---- inline style 140 ---- */

/* Roster job editor: recurring, colour and notes are separate, visible cards. */
body[data-modal-type="shift"] .ww527-setting-card{
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  padding:13px!important;
  margin:0!important;
  border-radius:17px!important;
  border:1px solid rgba(34,72,43,.12)!important;
  background:rgba(255,255,252,.96)!important;
  box-shadow:0 7px 20px rgba(20,49,28,.05),0 1px 0 rgba(255,255,255,.9) inset!important;
  overflow:visible!important;
}
body[data-modal-type="shift"] .ww527-setting-head{
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:9px!important;
  min-height:36px!important;
  margin:0 0 11px!important;
  padding:0 0 10px!important;
  border-bottom:1px solid rgba(38,76,46,.08)!important;
}
body[data-modal-type="shift"] .ww527-setting-number{
  display:grid!important;
  place-items:center!important;
  width:34px!important;
  height:34px!important;
  border-radius:10px!important;
  background:linear-gradient(145deg,#dcebdd,#edf5ea)!important;
  border:1px solid rgba(43,103,58,.09)!important;
  color:#1f6638!important;
  font-size:12px!important;
  font-weight:950!important;
}
body[data-modal-type="shift"] .ww527-setting-copy{
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  gap:2px!important;
}
body[data-modal-type="shift"] .ww527-setting-copy strong{
  color:#183021!important;
  font-size:14px!important;
  line-height:1.15!important;
  font-weight:950!important;
  letter-spacing:-.015em!important;
}
body[data-modal-type="shift"] .ww527-setting-copy small{
  color:#748079!important;
  font-size:9.5px!important;
  line-height:1.3!important;
  font-weight:650!important;
}
body[data-modal-type="shift"] .ww527-optional{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:25px!important;
  padding:4px 8px!important;
  border-radius:999px!important;
  background:#eef3eb!important;
  color:#657369!important;
  font-size:8px!important;
  font-weight:900!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}
body[data-modal-type="shift"] .ww527-repeat-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:9px!important;
}
body[data-modal-type="shift"] .ww527-field,
body[data-modal-type="shift"] .ww527-notes-field{
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  gap:5px!important;
}
body[data-modal-type="shift"] .ww527-field>span,
body[data-modal-type="shift"] .ww527-notes-field>span{
  color:#536158!important;
  font-size:9.5px!important;
  line-height:1.15!important;
  font-weight:900!important;
  letter-spacing:.02em!important;
}
body[data-modal-type="shift"] .ww527-field .input{
  width:100%!important;
  height:44px!important;
  min-height:44px!important;
  padding:0 34px 0 11px!important;
  border-radius:12px!important;
  border:1px solid rgba(53,85,59,.18)!important;
  background:#fbfcf9!important;
  color:#203427!important;
  font-size:12.5px!important;
  font-weight:800!important;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset!important;
}
body[data-modal-type="shift"] .ww527-field .input:focus{
  border-color:#4b8a5b!important;
  box-shadow:0 0 0 3px rgba(48,122,67,.10)!important;
  outline:none!important;
}

/* Independent colour card. */
body[data-modal-type="shift"] .ww527-colour-card.shift-colour-section{
  display:block!important;
  padding:13px!important;
  border-radius:17px!important;
  border:1px solid rgba(34,72,43,.12)!important;
  background:rgba(255,255,252,.96)!important;
  box-shadow:0 7px 20px rgba(20,49,28,.05),0 1px 0 rgba(255,255,255,.9) inset!important;
}
body[data-modal-type="shift"] .ww527-colour-card .ww527-setting-head{margin-bottom:10px!important}
body[data-modal-type="shift"] .ww527-colour-trigger.shift-colour-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  width:100%!important;
  min-height:50px!important;
  margin:0!important;
  padding:8px 10px!important;
  border:1px solid rgba(53,85,59,.15)!important;
  border-radius:13px!important;
  background:linear-gradient(180deg,#f8fbf6,#f1f6ef)!important;
  box-shadow:none!important;
  cursor:pointer!important;
}
body[data-modal-type="shift"] .ww527-colour-current{
  display:flex!important;
  align-items:center!important;
  min-width:0!important;
  gap:9px!important;
}
body[data-modal-type="shift"] .ww527-colour-current>.shift-colour-dot{
  display:block!important;
  width:25px!important;
  height:25px!important;
  flex:0 0 25px!important;
  border-radius:8px!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.58),0 0 0 1px rgba(32,63,39,.12)!important;
}
body[data-modal-type="shift"] .ww527-colour-current>span{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  min-width:0!important;
  gap:2px!important;
}
body[data-modal-type="shift"] .ww527-colour-current b{
  color:#6f7c73!important;
  font-size:8px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
}
body[data-modal-type="shift"] .ww527-colour-current .shift-colour-current{
  max-width:210px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:#23402c!important;
  font-size:12px!important;
  line-height:1.15!important;
  font-weight:950!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body[data-modal-type="shift"] .ww527-colour-action{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:6px!important;
  flex:0 0 auto!important;
  color:#2c6a3e!important;
  font-size:10px!important;
  font-weight:950!important;
}
body[data-modal-type="shift"] .ww527-colour-action .colour-toggle-chev{
  display:grid!important;
  place-items:center!important;
  width:24px!important;
  height:24px!important;
  border-radius:50%!important;
  background:#e5eee2!important;
  color:#2b643c!important;
  transform:rotate(180deg)!important;
  transition:transform .16s ease!important;
}
body[data-modal-type="shift"] .ww527-colour-action .colour-toggle-chev svg{
  display:block!important;
  width:13px!important;
  height:13px!important;
  stroke:currentColor!important;
}
body[data-modal-type="shift"] .ww527-colour-card.is-open .ww527-colour-action .colour-toggle-chev{transform:rotate(270deg)!important}
body[data-modal-type="shift"] .ww527-colour-card.is-collapsed .ww527-colour-picker{display:none!important}
body[data-modal-type="shift"] .ww527-colour-card.is-open .ww527-colour-picker{
  display:flex!important;
  gap:9px!important;
  margin-top:10px!important;
  padding-top:10px!important;
  border-top:1px solid rgba(38,76,46,.08)!important;
}
body[data-modal-type="shift"] .ww527-colour-card .colour-preview-card{
  min-height:58px!important;
  border-radius:13px!important;
  box-shadow:0 6px 16px color-mix(in srgb,var(--cc-solid,#2e7b43) 12%,transparent)!important;
}
body[data-modal-type="shift"] .ww527-colour-card .colour-swatches{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

/* Independent notes card. */
body[data-modal-type="shift"] .ww527-notes-card .ww527-setting-head{margin-bottom:10px!important}
body[data-modal-type="shift"] .ww527-notes-field .notes-textarea{
  display:block!important;
  width:100%!important;
  min-height:104px!important;
  max-height:180px!important;
  margin:0!important;
  padding:12px 13px!important;
  box-sizing:border-box!important;
  border-radius:13px!important;
  border:1px solid rgba(53,85,59,.18)!important;
  background:#fbfcf9!important;
  color:#203427!important;
  font-size:13px!important;
  line-height:1.45!important;
  font-weight:650!important;
  resize:vertical!important;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset!important;
}
body[data-modal-type="shift"] .ww527-notes-field .notes-textarea:focus{
  border-color:#4b8a5b!important;
  box-shadow:0 0 0 3px rgba(48,122,67,.10)!important;
  outline:none!important;
}

/* Desktop layout mirrors mobile but uses space professionally. */
@media(min-width:1024px){
  body[data-modal-type="shift"] .ww515-shift-builder{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-areas:
      "client schedule"
      "hours hours"
      "repeat colour"
      "notes notes"!important;
    gap:14px!important;
  }
  body[data-modal-type="shift"] .ww527-repeat-card{grid-area:repeat!important}
  body[data-modal-type="shift"] .ww527-colour-card{grid-area:colour!important}
  body[data-modal-type="shift"] .ww527-notes-card{grid-area:notes!important}
  body[data-modal-type="shift"] .ww527-setting-card{padding:15px 16px!important;border-radius:18px!important}
  body[data-modal-type="shift"] .ww527-setting-head{margin-bottom:12px!important;padding-bottom:10px!important}
  body[data-modal-type="shift"] .ww527-setting-copy strong{font-size:15px!important}
  body[data-modal-type="shift"] .ww527-setting-copy small{font-size:10.5px!important}
  body[data-modal-type="shift"] .ww527-field .input{height:46px!important;min-height:46px!important;font-size:13px!important}
  body[data-modal-type="shift"] .ww527-colour-trigger.shift-colour-head{min-height:54px!important}
  body[data-modal-type="shift"] .ww527-notes-field .notes-textarea{min-height:112px!important}
}

/* Mobile: clean stacked cards with no overlap. */
@media(max-width:1023px){
  body[data-modal-type="shift"] .ww515-shift-builder{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-areas:none!important;
    gap:10px!important;
  }
  body[data-modal-type="shift"] .ww527-setting-card{
    grid-area:auto!important;
    padding:12px!important;
    border-radius:16px!important;
  }
  body[data-modal-type="shift"] .ww527-setting-head{
    grid-template-columns:32px minmax(0,1fr) auto!important;
    gap:8px!important;
    min-height:32px!important;
    margin-bottom:10px!important;
    padding-bottom:9px!important;
  }
  body[data-modal-type="shift"] .ww527-setting-number{width:32px!important;height:32px!important;border-radius:9px!important}
  body[data-modal-type="shift"] .ww527-setting-copy strong{font-size:13.5px!important}
  body[data-modal-type="shift"] .ww527-setting-copy small{font-size:9px!important}
  body[data-modal-type="shift"] .ww527-repeat-grid{gap:8px!important}
  body[data-modal-type="shift"] .ww527-colour-card .colour-swatches{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body[data-modal-type="shift"] .ww527-colour-card .colour-preview-card{grid-template-columns:88px minmax(0,1fr)!important}
}
@media(max-width:370px){
  body[data-modal-type="shift"] .ww527-repeat-grid{grid-template-columns:1fr!important}
  body[data-modal-type="shift"] .ww527-colour-action{font-size:0!important}
  body[data-modal-type="shift"] .ww527-colour-current .shift-colour-current{max-width:155px!important}
  body[data-modal-type="shift"] .ww527-colour-card .colour-swatches{grid-template-columns:1fr!important}
}


/* ---- inline style 141 ---- */

body[data-modal-type="shift"] .ww527-notes-card.shift-notes-section{
  display:block!important;
  grid-template-columns:none!important;
  grid-template-areas:none!important;
  align-items:initial!important;
}
body[data-modal-type="shift"] .ww527-notes-card .ww527-setting-head{
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr) auto!important;
  width:100%!important;
}
body[data-modal-type="shift"] .ww527-notes-card .ww527-setting-copy{
  width:auto!important;
  max-width:none!important;
}
body[data-modal-type="shift"] .ww527-notes-card .ww527-setting-copy strong,
body[data-modal-type="shift"] .ww527-notes-card .ww527-setting-copy small{
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
body[data-modal-type="shift"] .ww527-notes-card .ww527-notes-field{
  width:100%!important;
  max-width:none!important;
}


/* ---- inline style 142 ---- */

/* Cleaner independent settings: no decorative step numbers or unnecessary
   note helper/badge. The headings now align naturally with their controls. */
body[data-modal-type="shift"] .ww527-setting-number,
body[data-modal-type="shift"] .ww527-optional{display:none!important}
body[data-modal-type="shift"] .ww527-setting-head,
body[data-modal-type="shift"] .ww527-notes-card .ww527-setting-head{
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:10px!important;
  min-height:28px!important;
}
body[data-modal-type="shift"] .ww527-setting-copy{grid-column:1!important}
body[data-modal-type="shift"] .ww527-notes-card .ww527-setting-copy small{display:none!important}
body[data-modal-type="shift"] .ww527-notes-card .ww527-setting-head{
  margin-bottom:9px!important;
  padding-bottom:9px!important;
}
body[data-modal-type="shift"] .ww527-setting-copy strong{
  font-size:14.5px!important;
  letter-spacing:-.012em!important;
}
@media(max-width:1023px){
  body[data-modal-type="shift"] .ww527-setting-head,
  body[data-modal-type="shift"] .ww527-notes-card .ww527-setting-head{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:8px!important;
    min-height:27px!important;
  }
  body[data-modal-type="shift"] .ww527-setting-copy strong{font-size:14px!important}
}
/* Immediate visual confirmation without scaling, layout shifts or expensive
   effects. Scrolling still stays pan-y and never activates the card. */
.roster-mobile [data-action="shift-open"],
.home-roster-list [data-action="shift-open"],
.wk-shift[data-action="shift-open"],
.rgc[data-action="shift-open"]{
  touch-action:pan-y!important;
  -webkit-tap-highlight-color:transparent!important;
}
.roster-mobile [data-action="shift-open"].ww529-tap-ready,
.home-roster-list [data-action="shift-open"].ww529-tap-ready{
  opacity:.94!important;
}


/* ---- inline style 143 ---- */

/* One native vertical scroll surface for every signed-in page. */
body.ww-stable-scroll-page .main{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  scroll-behavior:auto!important;
  scroll-snap-type:none!important;
  overflow-anchor:none!important;
  will-change:auto!important;
}
body.ww-stable-scroll-page .content,
body.ww-stable-scroll-page main.content{
  /* Do not keep the content at a one-viewport flex height. Let its real page
     height participate in .main, which is the single native scroll surface. */
  flex:0 0 auto!important;
  height:auto!important;
  min-height:calc(100% - 72px)!important;
  overflow:visible!important;
}
body.ww-stable-scroll-page .page,
body.ww-stable-scroll-page #page{
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
  overflow-anchor:none!important;
  scroll-behavior:auto!important;
  scroll-snap-type:none!important;
  transform:none!important;
  will-change:auto!important;
}
/* Press feedback must not resize cards underneath a scrolling finger. */
@media(max-width:1023px){
  body.ww-stable-scroll-page button:active,
  body.ww-stable-scroll-page [data-action]:active,
  body.ww-stable-scroll-page .card:active,
  body.ww-stable-scroll-page .rcard:active,
  body.ww-stable-scroll-page .bk-card:active,
  body.ww-stable-scroll-page .directory-card:active,
  body.ww-stable-scroll-page .client-card:active{
    transform:none!important;
    transition:none!important;
  }
}
/* Subpages and modal forms use their own single, predictable scroller. */
.modal-body,.modal-scroll,.sft-body,.cv-threads,.chat-scroll,.avail-grid-wrap,.rwg-wrap{
  scroll-behavior:auto!important;
  scroll-snap-type:none!important;
  overflow-anchor:none!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-y:contain!important;
}


/* ---- app-polish-v644-bundle-2.css ---- */
/* ---- app-polish-v541.css ---- */
/* EarthRoster v541 — visible timesheet controls + colour-preserving admin roster cards. */

/*
  iPhone/WebKit was inheriting an old 44px line-height after later compact
  rules reduced the select height to 40px. That pushed the selected text below
  the visible part of the field. Give all timesheet selects one reliable,
  vertically-centred control geometry instead of stacking conflicting rules.
*/
body[data-modal-type="missed-record"] .timesheet-modal .mr2 select.input,
body[data-modal-type="admin-entry"] .timesheet-modal .mr2 select.input,
body[data-modal-type="record"] .timesheet-modal select.input,
body[data-modal-type="clockout"] .timesheet-modal select.input{
  width:100%!important;
  min-width:0!important;
  height:46px!important;
  min-height:46px!important;
  max-height:46px!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:0 36px 0 12px!important;
  line-height:normal!important;
  font-size:15px!important;
  font-weight:750!important;
  color:#203126!important;
  -webkit-text-fill-color:#203126!important;
  opacity:1!important;
  vertical-align:middle!important;
  text-align:left!important;
  text-indent:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  background-color:#fbfaf5!important;
  background-position:right 12px center!important;
  background-size:15px 15px!important;
}
body[data-modal-type="missed-record"] .timesheet-modal .mr2 select.input option,
body[data-modal-type="admin-entry"] .timesheet-modal .mr2 select.input option,
body[data-modal-type="record"] .timesheet-modal select.input option,
body[data-modal-type="clockout"] .timesheet-modal select.input option{
  color:#203126!important;
  background:#fff!important;
  -webkit-text-fill-color:#203126!important;
}

/* Keep the two time fields comfortably readable even on narrow iPhones. */
body[data-modal-type="missed-record"] .mr2-row2:not(.ww-travel-pair) .mr2-field,
body[data-modal-type="admin-entry"] .mr2-row2:not(.ww-travel-pair) .mr2-field{
  min-width:0!important;
}
body[data-modal-type="missed-record"] .mr2-row2:not(.ww-travel-pair) select.input,
body[data-modal-type="admin-entry"] .mr2-row2:not(.ww-travel-pair) select.input{
  font-size:14.5px!important;
  padding-left:11px!important;
  padding-right:31px!important;
  background-position:right 9px center!important;
}

/* Admin draft/unpublished jobs should still look like the colour chosen for
   the roster card. The Draft badge remains the status cue; the whole card no
   longer turns into a plain white block. */
@media(max-width:1023px){
  .roster-mobile .ww512-roster-card.is-admin.is-draft,
  .home-roster-list .ww512-roster-card.is-admin.is-draft{
    opacity:1!important;
    background:linear-gradient(135deg,var(--solid),var(--deep))!important;
    border:1px solid rgba(255,255,255,.18)!important;
    box-shadow:0 4px 11px color-mix(in srgb,var(--deep) 32%,transparent)!important;
  }
  .ww512-roster-card.is-admin.is-draft .ww512-title-row h3{
    color:#fff!important;
    text-shadow:0 1px 2px rgba(0,0,0,.28)!important;
  }
  .ww512-roster-card.is-admin.is-draft .ww522-shift-time,
  .ww512-roster-card.is-admin.is-draft .ww512-admin-line,
  .ww512-roster-card.is-admin.is-draft .ww512-time-line{
    color:rgba(255,255,255,.92)!important;
  }
  .ww512-roster-card.is-admin.is-draft .ww512-hours-badge{
    background:rgba(255,255,255,.95)!important;
    color:var(--deep)!important;
    border:1px solid rgba(255,255,255,.58)!important;
    box-shadow:0 2px 6px rgba(0,0,0,.14)!important;
  }
  .ww512-roster-card.is-admin.is-draft .ww512-hours-badge strong,
  .ww512-roster-card.is-admin.is-draft .ww512-hours-badge span{
    color:var(--deep)!important;
    text-shadow:none!important;
  }
  .ww512-roster-card.is-admin.is-draft .ww512-card-chevron{
    background:rgba(255,255,255,.14)!important;
    color:#fff!important;
  }
  .ww512-roster-card.is-admin.is-draft .ww522-team-line{
    background:transparent!important;
    border:0!important;
    color:#fff!important;
  }
  .ww512-roster-card.is-admin.is-draft .ww522-team-label{
    background:transparent!important;
    color:rgba(255,255,255,.72)!important;
  }
  .ww512-roster-card.is-admin.is-draft .ww522-team-label::after{
    color:rgba(255,255,255,.48)!important;
  }
  .ww512-roster-card.is-admin.is-draft .ww522-team-names{
    color:#fff!important;
    text-shadow:0 1px 1px rgba(0,0,0,.16)!important;
  }
  .ww512-roster-card.is-admin.is-draft .ww512-state-pill{
    background:#fff0c9!important;
    color:#7b5510!important;
    border:1px solid rgba(255,255,255,.42)!important;
  }
}

/* Keep the modal fields from being covered by accidental inherited clipping. */
body[data-modal-type="missed-record"] .mr2-section,
body[data-modal-type="admin-entry"] .mr2,
body[data-modal-type="record"] .record-entry-modal{
  overflow:visible!important;
}

@media(max-width:1023px){
  .home-roster-list .ww512-roster-card.is-admin.is-draft .ww512-title-row h3,
  .roster-mobile .ww512-roster-card.is-admin.is-draft .ww512-title-row h3{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.28)!important}
  .home-roster-list .ww512-roster-card.is-admin.is-draft .ww522-shift-time,
  .roster-mobile .ww512-roster-card.is-admin.is-draft .ww522-shift-time{color:rgba(255,255,255,.94)!important}
  .home-roster-list .ww512-roster-card.is-admin.is-draft .ww522-team-label,
  .roster-mobile .ww512-roster-card.is-admin.is-draft .ww522-team-label{color:rgba(255,255,255,.72)!important}
  .home-roster-list .ww512-roster-card.is-admin.is-draft .ww522-team-label::after,
  .roster-mobile .ww512-roster-card.is-admin.is-draft .ww522-team-label::after{color:rgba(255,255,255,.48)!important}
  .home-roster-list .ww512-roster-card.is-admin.is-draft .ww522-team-names,
  .roster-mobile .ww512-roster-card.is-admin.is-draft .ww522-team-names{color:#fff!important;text-shadow:0 1px 1px rgba(0,0,0,.16)!important}
}

/* ---- app-polish-v542.css ---- */
/* EarthRoster v542 — restore the approved white Draft/Unpublished admin roster cards.
   This intentionally changes ONLY the draft-card presentation. The v541
   timesheet field visibility fixes remain active. */

/* Draft jobs remain clearly different from published jobs while preserving the
   chosen job colour in the compact hours badge. */
.ww512-roster-card.is-admin.is-draft,
.home-roster-list .ww512-roster-card.is-admin.is-draft,
.roster-mobile .ww512-roster-card.is-admin.is-draft{
  opacity:1!important;
  background:#fff!important;
  border:1px dashed color-mix(in srgb,var(--solid) 55%,#fff)!important;
  box-shadow:0 4px 12px rgba(28,45,31,.09)!important;
}
.ww512-roster-card.is-admin.is-draft .ww512-title-row h3{
  color:#1d3022!important;
  text-shadow:none!important;
}
.ww512-roster-card.is-admin.is-draft .ww522-shift-time,
.ww512-roster-card.is-admin.is-draft .ww512-admin-line,
.ww512-roster-card.is-admin.is-draft .ww512-time-line{
  color:#5d6d62!important;
  text-shadow:none!important;
}
.ww512-roster-card.is-admin.is-draft .ww512-hours-badge{
  background:linear-gradient(135deg,var(--solid),var(--deep))!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 3px 8px color-mix(in srgb,var(--deep) 26%,transparent)!important;
}
.ww512-roster-card.is-admin.is-draft .ww512-hours-badge strong,
.ww512-roster-card.is-admin.is-draft .ww512-hours-badge span{
  color:#fff!important;
  text-shadow:none!important;
}
.ww512-roster-card.is-admin.is-draft .ww512-card-chevron{
  background:#edf1eb!important;
  color:var(--deep)!important;
}
.ww512-roster-card.is-admin.is-draft .ww522-team-line{
  background:transparent!important;
  border:0!important;
  color:#405b47!important;
}
.ww512-roster-card.is-admin.is-draft .ww522-team-label{
  background:transparent!important;
  color:#718078!important;
}
.ww512-roster-card.is-admin.is-draft .ww522-team-label::after{
  color:#a0aba3!important;
}
.ww512-roster-card.is-admin.is-draft .ww522-team-names{
  color:#405b47!important;
  text-shadow:none!important;
}
.ww512-roster-card.is-admin.is-draft .ww512-state-pill{
  background:#fff0c9!important;
  color:#7b5510!important;
  border:1px solid rgba(180,130,22,.14)!important;
}

/* Legacy admin card renderer, retained for older stored views. */
.rcard.is-admin.is-draft{
  background:#fff!important;
  border:1px dashed color-mix(in srgb,var(--solid) 55%,#fff)!important;
  opacity:1!important;
  box-shadow:0 4px 12px rgba(28,45,31,.09)!important;
}
.rcard.is-admin.is-draft .rc-info h3{color:#1d3022!important;text-shadow:none!important;background:transparent!important;border:0!important;box-shadow:none!important;}
.rcard.is-admin.is-draft .rc-time-range,.rcard.is-admin.is-draft .rc-meta{color:#5d6d62!important;text-shadow:none!important;}

/* ---- app-polish-v543.css ---- */
/* EarthRoster v543 — employee Home Screen onboarding + invite simplification */

/* The previous login polish intentionally hid the install helper. Bring it back
   only where it is useful: mobile/tablet browser login before the app is installed. */
@media (max-width: 879px){
  .lg2-form-wrap .install-prompt-card:not(.installed){
    display:grid!important;
    gap:10px!important;
    margin:15px 0 0!important;
    padding:14px!important;
    border-radius:18px!important;
    border:1px solid rgba(41,86,52,.16)!important;
    background:linear-gradient(145deg,#f3f8ef 0%,#fffdf7 100%)!important;
    box-shadow:0 12px 26px -22px rgba(20,55,31,.58)!important;
    outline:none!important;
    color:#18351f!important;
  }
  .lg2-form-wrap .install-prompt-card.invite-open:not(.installed){
    border-color:rgba(45,126,65,.34)!important;
    box-shadow:0 14px 30px -20px rgba(32,100,49,.38)!important;
  }
  .install-prompt-card .ipc-kicker{
    font-size:10px!important;
    line-height:1.1!important;
    letter-spacing:.11em!important;
    font-weight:900!important;
    color:#5f725f!important;
  }
  .install-prompt-card .ipc-text{
    display:grid!important;
    gap:3px!important;
    text-align:left!important;
    color:#18351f!important;
  }
  .install-prompt-card .ipc-text strong{
    font-size:14px!important;
    line-height:1.2!important;
    font-weight:900!important;
    color:#17361f!important;
  }
  .install-prompt-card .ipc-text span{
    font-size:11.5px!important;
    line-height:1.38!important;
    font-weight:650!important;
    color:#667466!important;
    opacity:1!important;
  }
  .ipc-mini-steps{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .ipc-mini-steps span{
    display:flex!important;
    align-items:center!important;
    gap:5px!important;
    min-width:0!important;
    padding:7px 7px!important;
    border-radius:11px!important;
    background:#edf4e9!important;
    color:#29452e!important;
    font-size:9.6px!important;
    line-height:1.18!important;
    font-weight:800!important;
  }
  .ipc-mini-steps b{
    display:grid!important;
    place-items:center!important;
    flex:0 0 18px!important;
    width:18px!important;
    height:18px!important;
    border-radius:999px!important;
    background:#2f7d45!important;
    color:#fff!important;
    font-size:9px!important;
    font-weight:900!important;
  }
  .ipc-platform{
    font-size:10.5px!important;
    line-height:1.3!important;
    color:#617061!important;
    font-weight:750!important;
  }
  .ipc-actions{
    display:grid!important;
    grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr)!important;
    gap:8px!important;
  }
  .ipc-actions .btn{
    min-height:40px!important;
    margin:0!important;
    border-radius:12px!important;
    padding:9px 10px!important;
    font-size:11.5px!important;
    font-weight:850!important;
  }
}
@media (min-width:880px){
  .lg2-form-wrap .install-prompt-card{display:none!important;}
}

/* Install instructions modal */
.install-guide{display:grid!important;gap:13px!important;line-height:1.42!important;color:#233b29!important;}
.install-guide-lead{display:grid!important;gap:3px!important;padding:12px 13px!important;border-radius:14px!important;background:#edf5e9!important;border:1px solid #dbe9d8!important;}
.install-guide-lead strong{font-size:15px!important;font-weight:900!important;color:#1f482b!important;}
.install-guide-lead span{font-size:12px!important;color:#687668!important;font-weight:650!important;}
.install-guide ol{margin:0 0 0 21px!important;padding:0!important;display:grid!important;gap:9px!important;}
.install-guide li{padding-left:2px!important;font-size:13px!important;color:#384a3b!important;}
.install-ok{padding:12px!important;border-radius:14px!important;background:#e9f4e7!important;border:1px solid #d1e7d1!important;font-weight:900!important;color:#2f6e45!important;}

/* Admin employee-invite confirmation */
.invite-ready{
  display:flex!important;align-items:flex-start!important;gap:11px!important;
  padding:12px 13px!important;margin-bottom:11px!important;border-radius:15px!important;
  background:linear-gradient(140deg,#eaf5e8,#f7faf4)!important;border:1px solid #d7e7d3!important;
}
.invite-ready-icon{width:34px!important;height:34px!important;flex:0 0 34px!important;border-radius:11px!important;display:grid!important;place-items:center!important;background:#2f7d45!important;color:#fff!important;}
.invite-ready-icon svg{width:18px!important;height:18px!important;}
.invite-ready div:last-child{display:grid!important;gap:2px!important;}
.invite-ready strong{font-size:13.5px!important;color:#193b24!important;font-weight:900!important;}
.invite-ready span{font-size:11.5px!important;line-height:1.35!important;color:#657365!important;font-weight:650!important;}
.invite-app-link{
  display:grid!important;gap:4px!important;padding:10px 12px!important;margin-bottom:10px!important;
  border-radius:13px!important;background:#fffdf8!important;border:1px solid #e3e6dd!important;
}
.invite-app-link span{font-size:9.5px!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:#738073!important;font-weight:900!important;}
.invite-app-link b{font-size:11px!important;line-height:1.35!important;color:#21452c!important;font-weight:800!important;word-break:break-all!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;}
.invite-box{margin-bottom:10px!important;}
.invite-start-steps{display:grid!important;gap:6px!important;padding:10px 12px!important;border-radius:13px!important;background:#f5f6f1!important;border:1px solid #e5e8de!important;}
.invite-start-steps>strong{font-size:11.5px!important;color:#304633!important;font-weight:900!important;margin-bottom:1px!important;}
.invite-start-steps>span{display:flex!important;align-items:center!important;gap:7px!important;font-size:11px!important;color:#5c685d!important;font-weight:620!important;}
.invite-start-steps>span b{display:grid!important;place-items:center!important;width:19px!important;height:19px!important;border-radius:999px!important;background:#dfeadd!important;color:#285d36!important;font-size:9px!important;}
.invite-actions{margin-top:11px!important;}
.invite-btn{min-height:43px!important;padding:11px 10px!important;border-radius:12px!important;font-size:12px!important;}

@media(max-width:480px){
  .invite-actions{grid-template-columns:1fr 1fr!important;gap:8px!important;}
  .invite-line{gap:10px!important;align-items:flex-start!important;}
  .invite-line b{text-align:right!important;font-size:11.5px!important;}
}

.first-login-password-card{
  display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;align-items:center!important;gap:10px!important;
  margin:14px 0!important;padding:12px 13px!important;border-radius:16px!important;background:linear-gradient(135deg,#eef6e9,#fffaf1)!important;border:1px solid #d8e6d4!important;
}
.first-login-password-card>span{width:34px!important;height:34px!important;border-radius:11px!important;display:grid!important;place-items:center!important;background:#2f7641!important;color:white!important;}
.first-login-password-card>span svg{width:17px!important;height:17px!important;}
.first-login-password-card>div{display:grid!important;gap:2px!important;min-width:0!important;}
.first-login-password-card strong{font-size:12.5px!important;color:#193b24!important;font-weight:900!important;}
.first-login-password-card small{font-size:10.5px!important;line-height:1.3!important;color:#667366!important;font-weight:650!important;}
.first-login-password-card .btn{white-space:nowrap!important;}
@media(max-width:520px){
  .first-login-password-card{grid-template-columns:auto minmax(0,1fr)!important;}
  .first-login-password-card .btn{grid-column:1/-1!important;width:100%!important;}
}

/* ---- app-polish-v544.css ---- */
/* EarthRoster v544 — smooth scrolling + paint containment */
html,body,#app{scroll-behavior:auto!important}
body.ww-stable-scroll-page .main,
.modal-body,.modal-scroll,.sft-body,.chat-scroll,.cv-threads,.avail-grid-wrap,.rwg-wrap{
  -webkit-overflow-scrolling:touch!important;
  scroll-behavior:auto!important;
}

/* Long lists only paint items near the viewport. This cuts work dramatically
   on busy roster, booking, directory, alert, timesheet and document screens. */
.roster-mobile .ww522-roster-card,
.roster-mobile .ww512-roster-card,
.roster-mobile .rcard,
.home-roster-list .ww522-roster-card,
.home-roster-list .ww512-roster-card,
.home-roster-list .rcard,
.bookings-page .bk-card,
.directory-card,.client-card,.employee-card,
.notif-item,.appr-row,.ts-row,.timesheet-row,
.doc-card,.folder-card,.update-card,.thread-row,.cv-thread{
  content-visibility:auto;
  contain:layout paint style;
  contain-intrinsic-size:auto 76px;
}

/* Keep the current design, but stop expensive live blur/animation work while
   momentum scrolling is active. Values return immediately when scrolling ends. */
@media(max-width:1023px){
  body.ww536-user-scrolling *,
  body.ww536-user-scrolling *::before,
  body.ww536-user-scrolling *::after{
    animation-play-state:paused!important;
    scroll-behavior:auto!important;
  }
  body.ww536-user-scrolling .topbar,
  body.ww536-user-scrolling .modal-overlay,
  body.ww536-user-scrolling .modal-card,
  body.ww536-user-scrolling .modal-panel,
  body.ww536-user-scrolling .wwnav,
  body.ww536-user-scrolling .bottom-nav,
  body.ww536-user-scrolling [class*="glass"]{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
  body.ww536-user-scrolling .page,
  body.ww536-user-scrolling .card,
  body.ww536-user-scrolling .rcard,
  body.ww536-user-scrolling .ww522-roster-card,
  body.ww536-user-scrolling .ww512-roster-card,
  body.ww536-user-scrolling .bk-card,
  body.ww536-user-scrolling .directory-card,
  body.ww536-user-scrolling .client-card,
  body.ww536-user-scrolling .notif-item,
  body.ww536-user-scrolling .appr-row{
    transition:none!important;
    transform:none!important;
    filter:none!important;
  }
}

/* Native touch scrolling: page movement wins over accidental card presses. */
@media(max-width:1023px){
  body.ww-stable-scroll-page .main{touch-action:pan-y!important}
  .roster-mobile [data-action="shift-open"],
  .home-roster-list [data-action="shift-open"],
  .bookings-page [data-action],
  .directory-card,.client-card,.employee-card{
    touch-action:pan-y!important;
  }
}

/* ---- app-polish-v549.css ---- */
/* EarthRoster v548 — per-employee shift responses + exact notification focus */

/*
   ADMIN REJECTED CARD
   Match the existing employee rejected-card language: pale red/pink body,
   strong red outline/left rail, red typography and a solid REJECTED pill.
   Only cards with at least one employee rejection receive this treatment.
*/
.ww512-admin-job.ww546-has-rejection{
  position:relative!important;
  opacity:1!important;
  filter:none!important;
  background:linear-gradient(135deg,#fff9f8 0%,#fde9e7 100%)!important;
  border:2px solid #e2696e!important;
  box-shadow:inset 7px 0 0 #c92f38,0 7px 18px rgba(153,39,46,.17)!important;
}
.ww512-admin-job.ww546-has-rejection .ww512-hours-badge{
  background:#fff!important;
  border:1px solid rgba(201,47,56,.22)!important;
  box-shadow:0 3px 9px rgba(154,37,44,.12)!important;
  color:#a91f28!important;
}
.ww512-admin-job.ww546-has-rejection .ww512-hours-badge strong{
  color:#a91f28!important;
  text-shadow:none!important;
}
.ww512-admin-job.ww546-has-rejection .ww512-hours-badge span{
  color:#b43c43!important;
}
.ww512-admin-job.ww546-has-rejection .ww512-title-row h3{
  color:#a91f28!important;
  text-shadow:none!important;
  -webkit-text-stroke:0!important;
}
.ww512-admin-job.ww546-has-rejection .ww522-shift-time{
  color:#a92c32!important;
  font-weight:900!important;
  text-shadow:none!important;
}
.ww512-admin-job.ww546-has-rejection .ww512-card-chevron{
  background:#f8d8d6!important;
  color:#a91f28!important;
}
.ww512-admin-job.ww546-has-rejection .ww522-team-line{
  color:#91332f!important;
}
.ww512-admin-job.ww546-has-rejection .ww522-team-label{
  background:transparent!important;
  color:#a74a43!important;
  text-shadow:none!important;
}
.ww512-admin-job.ww546-has-rejection .ww522-team-label::after{
  color:#cf8e89!important;
}
.ww512-admin-job.ww546-has-rejection .ww522-team-names{
  color:#8f2f29!important;
  text-shadow:none!important;
}

/* Main REJECTED pill beside the client/job name. */
.ww546-reject-summary{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  min-height:23px!important;
  padding:0 10px!important;
  margin-left:2px!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,#d53b44,#b9202a)!important;
  color:#fff!important;
  border:1px solid rgba(139,20,29,.24)!important;
  box-shadow:0 3px 8px rgba(152,29,37,.22)!important;
  font-size:9px!important;
  font-weight:950!important;
  line-height:1!important;
  letter-spacing:.045em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}

/* Team line: keep the employee name visible and show who accepted/rejected. */
.ww546-team-line{align-items:flex-start!important;}
.ww546-team-names{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:5px!important;
  min-width:0!important;
}
.ww546-team-person{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  min-height:24px!important;
  padding:3px 7px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.80)!important;
  border:1px solid rgba(40,61,43,.10)!important;
  color:#314235!important;
  line-height:1!important;
  text-shadow:none!important;
}
.ww546-team-person b{font-size:11px!important;font-weight:900!important;}
.ww546-team-person em{
  font-size:8px!important;
  font-style:normal!important;
  font-weight:950!important;
  text-transform:uppercase!important;
  letter-spacing:.045em!important;
}
.ww546-team-person.is-rejected{
  background:#fff!important;
  border:1.5px solid rgba(201,47,56,.36)!important;
  color:#aa252d!important;
  box-shadow:0 2px 6px rgba(152,29,37,.10)!important;
}
.ww546-team-person.is-rejected em{
  display:inline-flex!important;
  align-items:center!important;
  min-height:18px!important;
  padding:0 6px!important;
  border-radius:999px!important;
  background:#c92f38!important;
  color:#fff!important;
}
.ww546-team-person.is-accepted{
  background:#edf7ef!important;
  border-color:rgba(51,112,63,.24)!important;
  color:#326b3d!important;
}

/* Admin desktop employee-week grid: a rejection is displayed directly in the
   rejected employee's row using the same red/pink visual treatment. */
.rgc.ww546-rgc-rejected{
  opacity:1!important;
  filter:none!important;
  border:1.5px solid #e2696e!important;
  box-shadow:inset 5px 0 0 #c92f38,0 8px 18px rgba(153,39,46,.13)!important;
  background:linear-gradient(135deg,#fff9f8 0%,#fde9e7 100%)!important;
}
.rgc.ww546-rgc-rejected .rgc-time,
.rgc.ww546-rgc-rejected .rgc-client,
.rgc.ww546-rgc-rejected .rgc-dur,
.rgc.ww546-rgc-rejected .ww511-rgc-bill{
  color:#9f2930!important;
}
.rgc.ww546-rgc-accepted{
  box-shadow:inset 3px 0 0 rgba(54,112,65,.55),0 8px 18px rgba(35,58,39,.06)!important;
}
.ww546-rgc-response{
  display:inline-flex!important;
  align-items:center!important;
  margin-top:5px!important;
  padding:4px 8px!important;
  border-radius:999px!important;
  font-size:9px!important;
  font-weight:950!important;
  line-height:1!important;
  text-transform:uppercase!important;
  letter-spacing:.055em!important;
}
.ww546-rgc-response.is-rejected{
  background:linear-gradient(135deg,#d53b44,#b9202a)!important;
  color:#fff!important;
  border:1px solid rgba(139,20,29,.22)!important;
  box-shadow:0 2px 6px rgba(152,29,37,.18)!important;
}
.ww546-rgc-response.is-accepted{
  background:#e7f4e9!important;
  color:#2f6b3b!important;
  border:1px solid rgba(47,107,59,.18)!important;
}

@media (max-width:720px){
  .ww512-admin-job.ww546-has-rejection{
    border-width:1.5px!important;
    box-shadow:inset 5px 0 0 #c92f38,0 5px 14px rgba(153,39,46,.17)!important;
  }
  .ww546-reject-summary{
    min-height:20px!important;
    padding:0 8px!important;
    font-size:8px!important;
  }
  .ww546-team-person{min-height:22px!important;padding:3px 6px!important;gap:4px!important;}
  .ww546-team-person b{font-size:10px!important;}
  .ww546-team-person em{font-size:7.5px!important;}
}


/* ============================================================
   v548 — MULTI-EMPLOYEE RESPONSE CLARITY
   ============================================================ */
.ww512-admin-job.ww548-has-partial-rejection{
  position:relative!important;opacity:1!important;filter:none!important;
  box-shadow:inset 6px 0 0 #c92f38,0 6px 16px rgba(112,44,48,.12)!important;
  border-color:rgba(201,47,56,.62)!important;
}
.ww512-admin-job.ww548-has-partial-rejection::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(90deg,rgba(255,235,233,.82) 0%,rgba(255,245,244,.28) 34%,transparent 66%);z-index:0;
}
.ww512-admin-job.ww548-has-partial-rejection > *{position:relative;z-index:1;}
.ww548-response-person{scroll-margin:120px 18px;}
.ww546-team-person.ww548-response-person:not(.is-rejected):not(.is-accepted) em{color:#6c746d!important;}
.ww548-response-focus{outline:3px solid rgba(185,32,42,.58)!important;outline-offset:3px!important;box-shadow:0 0 0 7px rgba(201,47,56,.13),0 8px 18px rgba(153,39,46,.18)!important;}
.ww548-response-panel{margin:14px 0!important;padding:14px!important;border-radius:18px!important;background:#f8faf7!important;border:1px solid rgba(38,67,43,.11)!important;}
.ww548-response-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px!important;margin-bottom:10px!important;}
.ww548-response-head > div:first-child{display:flex!important;flex-direction:column!important;gap:2px!important;}
.ww548-response-head strong{font-size:14px!important;font-weight:950!important;color:#223b28!important;}
.ww548-response-head small{font-size:10px!important;color:#6b756d!important;font-weight:620!important;}
.ww548-response-summary{display:flex!important;flex-wrap:wrap!important;justify-content:flex-end!important;gap:5px!important;}
.ww548-response-summary span{display:inline-flex!important;align-items:center!important;gap:3px!important;padding:4px 6px!important;border-radius:999px!important;background:#fff!important;border:1px solid rgba(34,59,40,.09)!important;font-size:9px!important;font-weight:800!important;color:#5d685f!important;white-space:nowrap!important;}
.ww548-response-summary b{font-size:10px!important;color:#283d2d!important;}
.ww548-response-list{display:flex!important;flex-direction:column!important;gap:8px!important;}
.ww548-response-card{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;min-height:58px!important;padding:10px 11px!important;border-radius:15px!important;background:#fff!important;border:1.5px solid rgba(39,63,43,.12)!important;scroll-margin:120px 18px!important;}
.ww548-response-card .ww548-response-person{display:flex!important;flex-direction:column!important;gap:2px!important;min-width:0!important;}
.ww548-response-card .ww548-response-person strong{font-size:13px!important;font-weight:950!important;color:#2d3e31!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.ww548-response-card .ww548-response-person small{font-size:10px!important;font-weight:620!important;color:#7b847d!important;}
.ww548-response-status{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:78px!important;min-height:27px!important;padding:0 9px!important;border-radius:999px!important;font-size:9px!important;font-weight:950!important;letter-spacing:.045em!important;white-space:nowrap!important;}
.ww548-response-card.is-rejected{background:linear-gradient(135deg,#fff9f8 0%,#fde9e7 100%)!important;border-color:#e2696e!important;box-shadow:inset 5px 0 0 #c92f38,0 5px 14px rgba(153,39,46,.13)!important;}
.ww548-response-card.is-rejected .ww548-response-person strong{color:#a91f28!important;}
.ww548-response-card.is-rejected .ww548-response-person small{color:#a74a43!important;}
.ww548-response-card.is-rejected .ww548-response-status{background:linear-gradient(135deg,#d53b44,#b9202a)!important;color:#fff!important;border:1px solid rgba(139,20,29,.22)!important;box-shadow:0 2px 6px rgba(152,29,37,.18)!important;}
.ww548-response-card.is-accepted{background:#eef8f0!important;border-color:rgba(52,117,67,.26)!important;box-shadow:inset 4px 0 0 rgba(52,117,67,.58)!important;}
.ww548-response-card.is-accepted .ww548-response-status{background:#dff1e3!important;color:#2f6b3b!important;border:1px solid rgba(47,107,59,.16)!important;}
.ww548-response-card.is-waiting .ww548-response-status{background:#f0f1ef!important;color:#687069!important;border:1px solid rgba(79,88,81,.12)!important;}
@media (max-width:720px){.ww548-response-head{flex-direction:column!important;}.ww548-response-summary{justify-content:flex-start!important;}.ww548-response-card{min-height:54px!important;padding:9px 10px!important;}.ww548-response-status{min-width:74px!important;min-height:25px!important;font-size:8.5px!important;}.ww512-admin-job.ww548-has-partial-rejection{box-shadow:inset 5px 0 0 #c92f38,0 5px 14px rgba(112,44,48,.12)!important;}}

/* ============================================================
   EarthRoster v549 — compact admin response cards
   Keep roster cards skinny. A partial team rejection belongs to the
   individual employee, not the whole shift. Single-employee rejection
   still receives the full red/pink rejected treatment.
   ============================================================ */

/* Partial rejection: retain the normal client card colour and add only a
   narrow red attention rail. Do not wash the whole shared shift pink. */
.ww512-admin-job.ww548-has-partial-rejection{
  background:linear-gradient(135deg,var(--solid),var(--deep))!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:inset 4px 0 0 #d44048,0 4px 11px color-mix(in srgb,var(--deep) 32%,transparent)!important;
  color:#fff!important;
}
.ww512-admin-job.ww548-has-partial-rejection::after{display:none!important;content:none!important;}
.ww512-admin-job.ww548-has-partial-rejection .ww512-hours-badge{
  background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(255,255,255,.55)!important;
  box-shadow:0 2px 6px rgba(0,0,0,.14)!important;
}
.ww512-admin-job.ww548-has-partial-rejection .ww512-hours-badge strong{color:var(--deep)!important;}
.ww512-admin-job.ww548-has-partial-rejection .ww512-hours-badge span{color:color-mix(in srgb,var(--deep) 72%,#788078)!important;}
.ww512-admin-job.ww548-has-partial-rejection .ww512-title-row h3,
.ww512-admin-job.ww548-has-partial-rejection .ww522-shift-time,
.ww512-admin-job.ww548-has-partial-rejection .ww522-team-names{color:#fff!important;text-shadow:none!important;}
.ww512-admin-job.ww548-has-partial-rejection .ww522-team-label{color:rgba(255,255,255,.70)!important;}
.ww512-admin-job.ww548-has-partial-rejection .ww522-team-label::after{color:rgba(255,255,255,.46)!important;}
.ww512-admin-job.ww548-has-partial-rejection .ww512-card-chevron{background:rgba(255,255,255,.13)!important;color:#fff!important;}

/* One employee accepted: keep the normal card, with a very small green
   confirmation rail. */
.ww512-admin-job.ww549-single-accepted{
  box-shadow:inset 4px 0 0 rgba(116,205,139,.92),0 4px 11px color-mix(in srgb,var(--deep) 32%,transparent)!important;
}

/* Compact per-person response text. The employee name is plain text; only
   the status is a tiny badge. This prevents 2–3 people from making the card
   large. */
.ww546-team-names{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px 7px!important;
  min-width:0!important;
}
.ww546-team-person{
  display:inline-flex!important;
  align-items:center!important;
  gap:3px!important;
  min-height:15px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:inherit!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.ww546-team-person b{
  font-size:9.7px!important;
  font-weight:900!important;
  color:inherit!important;
}
.ww546-team-person em{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:14px!important;
  padding:0 4px!important;
  border-radius:999px!important;
  font-size:6.4px!important;
  font-style:normal!important;
  font-weight:950!important;
  line-height:1!important;
  letter-spacing:.035em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}
.ww546-team-person.is-rejected{
  background:transparent!important;
  border:0!important;
  color:inherit!important;
  box-shadow:none!important;
}
.ww546-team-person.is-rejected em{
  min-height:14px!important;
  padding:0 5px!important;
  background:#cf3039!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:none!important;
}
.ww546-team-person.is-accepted{
  background:transparent!important;
  border:0!important;
  color:inherit!important;
  box-shadow:none!important;
}
.ww546-team-person.is-accepted em{
  background:#e5f5e8!important;
  color:#2d6c3b!important;
  border:1px solid rgba(47,107,59,.16)!important;
}
.ww546-team-person:not(.is-rejected):not(.is-accepted) em{
  background:rgba(255,255,255,.16)!important;
  color:rgba(255,255,255,.86)!important;
  border:1px solid rgba(255,255,255,.13)!important;
}

/* On a fully rejected card the names should stay red, but the status badge
   remains the strong red pill. */
.ww512-admin-job.ww546-has-rejection .ww546-team-person{color:#8f2f29!important;}
.ww512-admin-job.ww546-has-rejection .ww546-team-person.is-accepted em{background:#e7f4e9!important;color:#2f6b3b!important;}
.ww512-admin-job.ww546-has-rejection .ww546-team-person:not(.is-rejected):not(.is-accepted) em{background:#f3e9e7!important;color:#775c59!important;border-color:#ead7d4!important;}

/* Notification focus: highlight only the employee response, not the whole
   card or an oversized row. */
.ww546-team-person.ww548-response-focus{
  outline:2px solid rgba(255,255,255,.92)!important;
  outline-offset:2px!important;
  box-shadow:none!important;
  border-radius:5px!important;
}
.ww512-admin-job.ww546-has-rejection .ww546-team-person.ww548-response-focus{
  outline-color:rgba(201,47,56,.48)!important;
}

@media (max-width:1023px){
  .roster-mobile .ww522-roster-card.is-admin,
  .home-roster-list .ww522-roster-card.is-admin{
    min-height:66px!important;
    padding:6px 8px!important;
    row-gap:2px!important;
    column-gap:7px!important;
  }
  .ww522-roster-card.is-admin .ww512-hours-badge{
    width:48px!important;
    min-width:48px!important;
    height:44px!important;
  }
  .ww522-roster-card.is-admin .ww512-hours-badge strong{font-size:13px!important;}
  .ww522-roster-card.is-admin .ww522-card-copy{gap:1px!important;}
  .ww522-roster-card.is-admin .ww522-card-copy .ww512-title-row h3{font-size:13.2px!important;}
  .ww522-roster-card.is-admin .ww522-shift-time{font-size:8.9px!important;}
  .ww522-roster-card.is-admin .ww522-team-line{
    min-height:15px!important;
    padding:0 5px!important;
    gap:4px!important;
    line-height:1.05!important;
  }
  .ww522-roster-card.is-admin .ww522-team-label{font-size:6.6px!important;}
  .ww522-roster-card.is-admin .ww522-team-label::after{margin-left:4px!important;}
  .ww522-roster-card.is-admin .ww522-team-names{max-width:calc(100% - 42px)!important;}
  .ww546-reject-summary{
    min-height:17px!important;
    height:17px!important;
    padding:0 6px!important;
    margin-left:1px!important;
    font-size:6.7px!important;
    letter-spacing:.035em!important;
    box-shadow:none!important;
  }
  .ww546-team-person b{font-size:9.2px!important;}
  .ww546-team-person em{font-size:6.1px!important;min-height:13px!important;padding:0 4px!important;}
  .ww546-team-person.is-rejected em{min-height:13px!important;padding:0 4px!important;}
}

@media (max-width:370px){
  .roster-mobile .ww522-roster-card.is-admin,
  .home-roster-list .ww522-roster-card.is-admin{min-height:64px!important;padding:6px 7px!important;column-gap:6px!important;}
  .ww546-team-names{gap:2px 5px!important;}
  .ww546-team-person b{font-size:8.7px!important;}
  .ww546-team-person em{font-size:5.8px!important;padding:0 3px!important;}
}

/* =============================================================
   v556 — ADMIN ROSTER WAITING BADGE VISIBILITY
   Targets the live per-employee response chip used by current admin cards.
   ============================================================= */
@media (max-width:1023px){
  .roster-mobile .ww512-admin-job .ww546-team-person:not(.is-rejected):not(.is-accepted) em,
  .home-roster-list .ww512-admin-job .ww546-team-person:not(.is-rejected):not(.is-accepted) em{
    min-height:16px!important;
    height:16px!important;
    padding:0 6px!important;
    border-radius:999px!important;
    background:linear-gradient(180deg,#ffe8a3,#ffd46f)!important;
    color:#654400!important;
    border:1px solid rgba(105,72,0,.22)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.55) inset,0 1px 2px rgba(26,35,27,.12)!important;
    font-size:7.2px!important;
    font-style:normal!important;
    font-weight:950!important;
    line-height:16px!important;
    letter-spacing:.045em!important;
    text-transform:uppercase!important;
    text-shadow:none!important;
    opacity:1!important;
  }
}
@media (max-width:390px){
  .roster-mobile .ww512-admin-job .ww546-team-person:not(.is-rejected):not(.is-accepted) em,
  .home-roster-list .ww512-admin-job .ww546-team-person:not(.is-rejected):not(.is-accepted) em{
    min-height:15px!important;
    height:15px!important;
    padding:0 5px!important;
    font-size:6.8px!important;
    line-height:15px!important;
  }
}

/* =============================================================
   v558 — CLEAN ADMIN RESPONSE PILLS
   Requested-only polish: remove the washed-out white/highlight from WAITING,
   enlarge ACCEPTED slightly, and make multi-employee rows read cleanly.
   ============================================================= */
@media (max-width:1023px){
  /* Keep each employee + response visually grouped, with enough breathing room
     between neighbouring employees on shared jobs. */
  .roster-mobile .ww512-admin-job .ww546-team-names,
  .home-roster-list .ww512-admin-job .ww546-team-names{
    gap:3px 9px!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .roster-mobile .ww512-admin-job .ww546-team-person,
  .home-roster-list .ww512-admin-job .ww546-team-person{
    gap:4px!important;
    min-height:18px!important;
  }
  .roster-mobile .ww512-admin-job .ww546-team-person b,
  .home-roster-list .ww512-admin-job .ww546-team-person b{
    line-height:1!important;
  }

  /* WAITING — solid warm amber, no white inset/gloss/washed centre. */
  .roster-mobile .ww512-admin-job .ww546-team-person:not(.is-rejected):not(.is-accepted) em,
  .home-roster-list .ww512-admin-job .ww546-team-person:not(.is-rejected):not(.is-accepted) em{
    min-height:17px!important;
    height:17px!important;
    padding:0 6px!important;
    border-radius:999px!important;
    background:#f2c95e!important;
    background-image:none!important;
    color:#654400!important;
    border:1px solid #cfa83f!important;
    box-shadow:none!important;
    text-shadow:none!important;
    opacity:1!important;
    font-size:7.1px!important;
    font-weight:950!important;
    line-height:17px!important;
    letter-spacing:.04em!important;
  }

  /* ACCEPTED — just a little larger and stronger, without a white/washed fill. */
  .roster-mobile .ww512-admin-job .ww546-team-person.is-accepted em,
  .home-roster-list .ww512-admin-job .ww546-team-person.is-accepted em{
    min-height:18px!important;
    height:18px!important;
    padding:0 7px!important;
    border-radius:999px!important;
    background:#cfe8d5!important;
    background-image:none!important;
    color:#205f32!important;
    border:1px solid #8cbd98!important;
    box-shadow:none!important;
    text-shadow:none!important;
    opacity:1!important;
    font-size:7.7px!important;
    font-weight:950!important;
    line-height:18px!important;
    letter-spacing:.04em!important;
  }
}

@media (max-width:390px){
  .roster-mobile .ww512-admin-job .ww546-team-names,
  .home-roster-list .ww512-admin-job .ww546-team-names{gap:3px 7px!important;}

  .roster-mobile .ww512-admin-job .ww546-team-person:not(.is-rejected):not(.is-accepted) em,
  .home-roster-list .ww512-admin-job .ww546-team-person:not(.is-rejected):not(.is-accepted) em{
    min-height:16px!important;
    height:16px!important;
    padding:0 5px!important;
    font-size:6.8px!important;
    line-height:16px!important;
  }
  .roster-mobile .ww512-admin-job .ww546-team-person.is-accepted em,
  .home-roster-list .ww512-admin-job .ww546-team-person.is-accepted em{
    min-height:17px!important;
    height:17px!important;
    padding:0 6px!important;
    font-size:7.3px!important;
    line-height:17px!important;
  }
}


/* =============================================================
   v559 — PROFESSIONAL ADMIN ROSTER CARD CLEANUP
   Requested-only change:
   - remove WAITING badges from admin roster cards
   - keep ACCEPTED a little larger and easier to see
   - make client and employee names stand out more cleanly
   ============================================================= */
@media (max-width:1023px){
  /* Client / shift copy stronger and more professional on admin cards. */
  .roster-mobile .ww522-roster-card.is-admin .ww512-title-row h3,
  .home-roster-list .ww522-roster-card.is-admin .ww512-title-row h3{
    font-size:14.6px!important;
    line-height:1.08!important;
    font-weight:950!important;
    letter-spacing:-.02em!important;
    text-shadow:none!important;
  }
  .roster-mobile .ww522-roster-card.is-admin .ww522-shift-time,
  .home-roster-list .ww522-roster-card.is-admin .ww522-shift-time{
    font-size:9.8px!important;
    font-weight:850!important;
    opacity:.98!important;
    letter-spacing:0!important;
  }
  .roster-mobile .ww522-roster-card.is-admin .ww522-team-line,
  .home-roster-list .ww522-roster-card.is-admin .ww522-team-line{
    margin-top:2px!important;
    gap:4px!important;
  }
  .roster-mobile .ww522-roster-card.is-admin .ww522-team-label,
  .home-roster-list .ww522-roster-card.is-admin .ww522-team-label{
    font-size:7px!important;
    font-weight:900!important;
    letter-spacing:.12em!important;
    opacity:.86!important;
  }

  /* Employee name groups: cleaner spacing and stronger name legibility. */
  .roster-mobile .ww512-admin-job .ww546-team-names,
  .home-roster-list .ww512-admin-job .ww546-team-names{
    gap:4px 10px!important;
    align-items:center!important;
    justify-content:flex-start!important;
  }
  .roster-mobile .ww512-admin-job .ww546-team-person,
  .home-roster-list .ww512-admin-job .ww546-team-person{
    gap:5px!important;
    min-height:19px!important;
    align-items:center!important;
  }
  .roster-mobile .ww512-admin-job .ww546-team-person b,
  .home-roster-list .ww512-admin-job .ww546-team-person b{
    font-size:11.4px!important;
    line-height:1!important;
    font-weight:900!important;
    color:inherit!important;
    text-shadow:none!important;
  }

  /* Remove WAITING completely from admin roster cards. */
  .roster-mobile .ww512-admin-job .ww546-team-person:not(.is-rejected):not(.is-accepted) em,
  .home-roster-list .ww512-admin-job .ww546-team-person:not(.is-rejected):not(.is-accepted) em{
    display:none!important;
    content:none!important;
  }

  /* ACCEPTED — slightly larger so it stands out without looking bulky. */
  .roster-mobile .ww512-admin-job .ww546-team-person.is-accepted em,
  .home-roster-list .ww512-admin-job .ww546-team-person.is-accepted em{
    min-height:20px!important;
    height:20px!important;
    padding:0 8px!important;
    border-radius:999px!important;
    background:#d8efe0!important;
    background-image:none!important;
    color:#1f6131!important;
    border:1px solid #89b898!important;
    box-shadow:none!important;
    text-shadow:none!important;
    opacity:1!important;
    font-size:8.2px!important;
    font-weight:950!important;
    line-height:20px!important;
    letter-spacing:.045em!important;
  }

  /* REJECTED retains standout treatment, but align with accepted sizing. */
  .roster-mobile .ww512-admin-job .ww546-team-person.is-rejected em,
  .home-roster-list .ww512-admin-job .ww546-team-person.is-rejected em{
    min-height:20px!important;
    height:20px!important;
    padding:0 8px!important;
    font-size:8.1px!important;
    line-height:20px!important;
    font-weight:950!important;
  }
}

@media (max-width:390px){
  .roster-mobile .ww522-roster-card.is-admin .ww512-title-row h3,
  .home-roster-list .ww522-roster-card.is-admin .ww512-title-row h3{font-size:14px!important;}
  .roster-mobile .ww512-admin-job .ww546-team-person b,
  .home-roster-list .ww512-admin-job .ww546-team-person b{font-size:10.9px!important;}
  .roster-mobile .ww512-admin-job .ww546-team-person.is-accepted em,
  .home-roster-list .ww512-admin-job .ww546-team-person.is-accepted em,
  .roster-mobile .ww512-admin-job .ww546-team-person.is-rejected em,
  .home-roster-list .ww512-admin-job .ww546-team-person.is-rejected em{
    min-height:19px!important;
    height:19px!important;
    padding:0 7px!important;
    font-size:7.8px!important;
    line-height:19px!important;
  }
}

/* =============================================================
   v560 — CLEAN TEAM NAME SEPARATION
   Removes WAITING from the rendered admin roster row entirely and gives
   every employee a deliberate visual separator so names never collapse
   together (e.g. ChelseaCourtney / TaraRushae).
   ============================================================= */
@media (max-width:1023px){
  .roster-mobile .ww512-admin-job .ww546-team-names,
  .home-roster-list .ww512-admin-job .ww546-team-names{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:center!important;
    column-gap:0!important;
    row-gap:5px!important;
    width:auto!important;
    max-width:calc(100% - 44px)!important;
  }
  .roster-mobile .ww512-admin-job .ww546-team-person,
  .home-roster-list .ww512-admin-job .ww546-team-person{
    display:inline-flex!important;
    align-items:center!important;
    gap:6px!important;
    min-height:20px!important;
    white-space:nowrap!important;
  }
  .roster-mobile .ww512-admin-job .ww546-team-person b,
  .home-roster-list .ww512-admin-job .ww546-team-person b{
    font-size:11.5px!important;
    font-weight:900!important;
    line-height:1.05!important;
    letter-spacing:0!important;
  }
  .roster-mobile .ww512-admin-job .ww560-team-sep,
  .home-roster-list .ww512-admin-job .ww560-team-sep{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
    margin:0 7px!important;
    color:rgba(255,255,255,.58)!important;
    font-size:8px!important;
    font-weight:900!important;
    line-height:1!important;
  }
  .roster-mobile .ww512-admin-job.is-draft .ww560-team-sep,
  .home-roster-list .ww512-admin-job.is-draft .ww560-team-sep{
    color:#9aa39b!important;
  }
  .roster-mobile .ww512-admin-job.ww546-has-rejection .ww560-team-sep,
  .home-roster-list .ww512-admin-job.ww546-has-rejection .ww560-team-sep{
    color:#c78a85!important;
  }

  /* Pending employees are name-only. Defensive hide for any old cached markup. */
  .roster-mobile .ww512-admin-job .ww546-team-person:not(.is-rejected):not(.is-accepted) em,
  .home-roster-list .ww512-admin-job .ww546-team-person:not(.is-rejected):not(.is-accepted) em{
    display:none!important;
  }

  /* Accepted remains visible, clean and slightly larger than before. */
  .roster-mobile .ww512-admin-job .ww546-team-person.is-accepted em,
  .home-roster-list .ww512-admin-job .ww546-team-person.is-accepted em{
    min-height:20px!important;
    height:20px!important;
    padding:0 8px!important;
    border-radius:999px!important;
    background:#d8efe0!important;
    color:#1f6131!important;
    border:1px solid #89b898!important;
    font-size:8.2px!important;
    font-weight:950!important;
    line-height:20px!important;
    letter-spacing:.045em!important;
    box-shadow:none!important;
  }

  /* Client name gets a little more breathing room without increasing card height. */
  .roster-mobile .ww522-roster-card.is-admin .ww512-title-row,
  .home-roster-list .ww522-roster-card.is-admin .ww512-title-row{
    gap:7px!important;
  }
  .roster-mobile .ww522-roster-card.is-admin .ww512-title-row h3,
  .home-roster-list .ww522-roster-card.is-admin .ww512-title-row h3{
    font-size:14.8px!important;
    font-weight:950!important;
    letter-spacing:-.018em!important;
  }
}

@media (max-width:390px){
  .roster-mobile .ww512-admin-job .ww560-team-sep,
  .home-roster-list .ww512-admin-job .ww560-team-sep{margin:0 5px!important;}
  .roster-mobile .ww512-admin-job .ww546-team-person b,
  .home-roster-list .ww512-admin-job .ww546-team-person b{font-size:10.9px!important;}
}

/* ---- app-polish-v561.css ---- */
/* EarthRoster v561 — Professional single-surface search fields
   Requested fix: roster employee filter and shift client search must render as
   one clean search box only, including while focused on iPhone/Safari. */

/* ---------- Admin roster employee filter ---------- */
.ww521-roster-controls .rwg-search-top,
.ww522-roster-controls .rwg-search-top,
.ww521-desktop-search .rwg-search-top{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  overflow:hidden!important;
  border:1.5px solid rgba(67,105,75,.28)!important;
  border-radius:15px!important;
  background:#fbfcf9!important;
  box-shadow:0 2px 8px rgba(29,58,35,.045)!important;
}
.ww521-roster-controls .rwg-search-top:focus-within,
.ww522-roster-controls .rwg-search-top:focus-within,
.ww521-desktop-search .rwg-search-top:focus-within{
  border-color:#5b8965!important;
  background:#fff!important;
  box-shadow:0 2px 9px rgba(29,58,35,.07)!important;
  outline:none!important;
}
.ww521-roster-controls .rwg-search-top input,
.ww522-roster-controls .rwg-search-top input,
.ww521-desktop-search .rwg-search-top input,
.ww521-roster-controls .rwg-search-top input:focus,
.ww522-roster-controls .rwg-search-top input:focus,
.ww521-desktop-search .rwg-search-top input:focus,
.ww521-roster-controls .rwg-search-top input:focus-visible,
.ww522-roster-controls .rwg-search-top input:focus-visible,
.ww521-desktop-search .rwg-search-top input:focus-visible{
  -webkit-appearance:none!important;
  appearance:none!important;
  display:block!important;
  flex:1 1 auto!important;
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-width:0!important;
  border-style:none!important;
  border-radius:0!important;
  outline:0!important;
  outline:none!important;
  outline-offset:0!important;
  box-shadow:none!important;
  -webkit-box-shadow:none!important;
  background:transparent!important;
  background-image:none!important;
  color:#203327!important;
  caret-color:#2f7044!important;
  -webkit-tap-highlight-color:transparent!important;
}

/* ---------- Shift editor client search ---------- */
body[data-modal-type="shift"] .ww515-client-step .client-search-box,
body[data-modal-type="shift"] #clientSearchBox{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  overflow:hidden!important;
  border:1.5px solid rgba(67,105,75,.28)!important;
  border-radius:14px!important;
  background:#fbfcf9!important;
  box-shadow:0 2px 8px rgba(29,58,35,.045)!important;
}
body[data-modal-type="shift"] .ww515-client-step .client-search-box:focus-within,
body[data-modal-type="shift"] #clientSearchBox:focus-within{
  border-color:#5b8965!important;
  background:#fff!important;
  box-shadow:0 2px 9px rgba(29,58,35,.07)!important;
  outline:none!important;
}
body[data-modal-type="shift"] .ww515-client-step .client-search-box input,
body[data-modal-type="shift"] #clientSearch,
body[data-modal-type="shift"] .ww515-client-step .client-search-box input:focus,
body[data-modal-type="shift"] #clientSearch:focus,
body[data-modal-type="shift"] .ww515-client-step .client-search-box input:focus-visible,
body[data-modal-type="shift"] #clientSearch:focus-visible{
  -webkit-appearance:none!important;
  appearance:none!important;
  display:block!important;
  flex:1 1 auto!important;
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-width:0!important;
  border-style:none!important;
  border-radius:0!important;
  outline:0!important;
  outline:none!important;
  outline-offset:0!important;
  box-shadow:none!important;
  -webkit-box-shadow:none!important;
  background:transparent!important;
  background-image:none!important;
  color:#203327!important;
  caret-color:#2f7044!important;
  -webkit-tap-highlight-color:transparent!important;
}

/* Safari native search decorations can otherwise reintroduce a second visual. */
.ww521-roster-controls .rwg-search-top input::-webkit-search-decoration,
.ww521-roster-controls .rwg-search-top input::-webkit-search-cancel-button,
.ww521-roster-controls .rwg-search-top input::-webkit-search-results-button,
.ww521-roster-controls .rwg-search-top input::-webkit-search-results-decoration,
.ww522-roster-controls .rwg-search-top input::-webkit-search-decoration,
.ww522-roster-controls .rwg-search-top input::-webkit-search-cancel-button,
.ww522-roster-controls .rwg-search-top input::-webkit-search-results-button,
.ww522-roster-controls .rwg-search-top input::-webkit-search-results-decoration,
body[data-modal-type="shift"] #clientSearch::-webkit-search-decoration,
body[data-modal-type="shift"] #clientSearch::-webkit-search-cancel-button,
body[data-modal-type="shift"] #clientSearch::-webkit-search-results-button,
body[data-modal-type="shift"] #clientSearch::-webkit-search-results-decoration{
  -webkit-appearance:none!important;
  appearance:none!important;
  display:none!important;
}

/* Keep the icon visually part of the one search surface. */
.ww521-roster-controls .rwg-search-ic,
.ww522-roster-controls .rwg-search-ic,
body[data-modal-type="shift"] .client-search-box .csb-ic{
  flex:0 0 auto!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
}

/* ---- app-polish-v562.css ---- */
/* EarthRoster v562 — Live employee geolocation */
.hm-admin-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 0}.hm-admin-shortcuts .hm-avail{margin:0!important}.hm-avail-ic.geo{background:linear-gradient(135deg,#dcebd8,#f4e6d1)!important;color:#345f3b!important}.hm-live-pill{display:inline-flex;align-items:center;gap:5px;font-size:9px;font-weight:950;letter-spacing:.08em;color:#35613c;background:#e6f1df;border:1px solid rgba(53,97,60,.15);border-radius:999px;padding:5px 8px}.hm-live-pill i,.geo-live-badge i,.geo-status i,.geo-map-live i{width:7px;height:7px;border-radius:50%;background:#4c9259;box-shadow:0 0 0 4px rgba(76,146,89,.12)}
.geo-page{display:grid;gap:14px;max-width:1320px;margin:0 auto}.geo-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 26px;border-radius:25px;background:linear-gradient(135deg,#244c2d 0%,#3f6e45 55%,#8a704f 145%);color:#fffdf4;box-shadow:0 16px 38px rgba(31,57,34,.16);overflow:hidden;position:relative}.geo-hero:after{content:"";position:absolute;right:-70px;top:-90px;width:250px;height:250px;border-radius:50%;background:rgba(255,255,255,.06)}.geo-hero-copy{position:relative;z-index:1;max-width:720px}.geo-kicker{font-size:10px;font-weight:950;letter-spacing:.15em;opacity:.72}.geo-hero h2{font-family:var(--font-display);font-weight:650;font-size:31px;letter-spacing:-.025em;margin:5px 0 6px}.geo-hero p{font-size:13px;line-height:1.45;max-width:650px;color:rgba(255,255,245,.78);font-weight:650}.geo-hero-stat{position:relative;z-index:1;min-width:125px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:3px 9px;padding:13px 16px;border-radius:18px;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(10px)}.geo-hero-stat .geo-pulse{grid-row:1/3;width:12px;height:12px;border-radius:50%;background:#95d29e;box-shadow:0 0 0 7px rgba(149,210,158,.13)}.geo-hero-stat strong{font-size:23px;line-height:1}.geo-hero-stat em{font-style:normal;font-size:10px;font-weight:800;opacity:.75}.geo-privacy-note{display:flex;align-items:flex-start;gap:9px;padding:10px 13px;border-radius:14px;background:#f2f4eb;border:1px solid rgba(53,75,50,.09);color:#5e6a5d;font-size:11.3px;line-height:1.4;font-weight:700}.geo-privacy-note svg{width:16px;height:16px;flex:0 0 auto;color:#557555;margin-top:1px}
.geo-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:14px;min-height:570px}.geo-people-panel,.geo-detail-panel{background:#fffdf8;border:1px solid rgba(46,70,46,.09);border-radius:22px;box-shadow:0 8px 28px rgba(39,57,41,.07)}.geo-people-panel{overflow:hidden}.geo-panel-head{height:67px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(48,70,46,.08);background:linear-gradient(180deg,#fffefb,#f7f3e9)}.geo-panel-head>div{display:grid;gap:2px}.geo-panel-head span{font-size:9px;letter-spacing:.13em;font-weight:950;color:#80907d}.geo-panel-head strong{font-size:14px;color:#26392a}.geo-live-badge{display:inline-flex!important;align-items:center;gap:5px!important;letter-spacing:.06em!important;color:#447449!important;background:#eaf4e5;border-radius:999px;padding:6px 9px}.geo-live-badge i{width:6px;height:6px}.geo-people-list{padding:8px;display:grid;gap:4px}.geo-person{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) 10px;align-items:center;gap:10px;text-align:left;border:1px solid transparent;border-radius:16px;padding:10px;background:transparent;color:#243328}.geo-person:hover{background:#f5f7ef}.geo-person.selected{background:linear-gradient(135deg,#eaf2e4,#f7efe2);border-color:rgba(55,91,56,.15);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.geo-person-copy{display:grid;gap:2px;min-width:0}.geo-person-copy strong{font-size:13px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.geo-person-copy em{font-size:11px;font-style:normal;font-weight:750;color:#6d776b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.geo-person-copy small{font-size:9.8px;color:#949b92;font-weight:750}.geo-dot{width:8px;height:8px;border-radius:50%}.geo-dot.live{background:#4d955b;box-shadow:0 0 0 4px rgba(77,149,91,.11)}.geo-dot.recent{background:#c29a50}.geo-dot.stale{background:#bd6a5d}
.geo-detail-panel{padding:14px}.geo-detail-head{display:flex;justify-content:space-between;align-items:center;padding:1px 2px 12px}.geo-selected-person{display:flex;align-items:center;gap:10px}.geo-selected-person>span:last-child{display:grid;gap:2px}.geo-selected-person strong{font-size:15px;color:#203326}.geo-selected-person em{font-style:normal;font-size:11px;color:#778074;font-weight:700}.geo-status{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:900}.geo-status.live{color:#34643e;background:#e5f1e0}.geo-status.recent{color:#816428;background:#f7edcf}.geo-status.stale{color:#8d4e44;background:#f6e6e1}.geo-status i{width:6px;height:6px}.geo-status.recent i{background:#c59d4f;box-shadow:none}.geo-status.stale i{background:#bd6a5d;box-shadow:none}
.geo-map-wrap{height:330px;border-radius:19px;overflow:hidden;background:linear-gradient(135deg,#dfe9db,#ede6d8);position:relative;border:1px solid rgba(48,72,50,.1)}.geo-map-wrap iframe{width:100%;height:100%;border:0;display:block;filter:saturate(.84) contrast(.98)}.geo-map-overlay{position:absolute;left:11px;right:11px;top:11px;display:flex;justify-content:space-between;pointer-events:none}.geo-map-live,.geo-map-accuracy{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border-radius:11px;background:rgba(255,253,247,.93);box-shadow:0 5px 14px rgba(28,44,31,.12);font-size:9.5px;font-weight:900;color:#34513a}.geo-map-accuracy{color:#5f685d}.geo-map-live i{width:6px;height:6px}.geo-map-pin{position:absolute;left:50%;top:50%;width:48px;height:48px;border-radius:50% 50% 50% 10%;transform:translate(-50%,-68%) rotate(-45deg);display:grid;place-items:center;background:#355f3c;color:#fff;border:4px solid #fff8ed;box-shadow:0 9px 22px rgba(36,65,42,.3);pointer-events:none}.geo-map-pin span{transform:rotate(45deg);display:grid;place-items:center}.geo-map-pin svg{width:21px;height:21px}.geo-map-empty{height:100%;display:grid;place-content:center;text-align:center;justify-items:center;gap:7px;color:#718070;padding:30px}.geo-map-empty svg{width:31px;height:31px;color:#52745a}.geo-map-empty strong{font-size:15px;color:#314735}.geo-map-empty span{font-size:11px;max-width:310px;line-height:1.4}
.geo-info-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin-top:11px}.geo-info-card{grid-column:span 3;display:flex;align-items:flex-start;gap:11px;padding:12px 13px;border-radius:15px;background:#f8f4eb;border:1px solid rgba(58,76,54,.08)}.geo-info-card.primary{background:linear-gradient(135deg,#e8f0e3,#f6eddf)}.geo-info-ic{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:#dce9d8;color:#35613d;flex:0 0 auto}.geo-info-ic.job{background:#eee0d1;color:#8a6040}.geo-info-ic svg{width:16px;height:16px}.geo-info-card>div{display:grid;gap:2px;min-width:0}.geo-info-card small{font-size:8.7px;letter-spacing:.09em;font-weight:950;color:#80907d}.geo-info-card strong{font-size:12.2px;line-height:1.35;color:#27382b}.geo-info-card em{font-size:10px;font-style:normal;color:#7b8478;font-weight:700}.geo-mini{display:grid;gap:4px;padding:10px 11px;border-radius:13px;background:#fffaf0;border:1px solid rgba(54,75,52,.08)}.geo-mini span{font-size:9px;color:#8a9287;font-weight:800}.geo-mini strong{font-size:10.8px;line-height:1.3;color:#344537}.geo-actions{display:flex;gap:8px;margin-top:11px}.geo-actions .btn{height:40px;border-radius:13px;font-size:11px;font-weight:900}.geo-open-map{flex:1}.geo-empty-state{min-height:390px;display:grid;place-content:center;justify-items:center;text-align:center;padding:40px;background:#fffdf8;border:1px solid rgba(46,70,46,.09);border-radius:22px;box-shadow:0 8px 28px rgba(39,57,41,.06)}.geo-empty-icon{width:62px;height:62px;border-radius:20px;background:linear-gradient(135deg,#dcead7,#f2e6d3);display:grid;place-items:center;color:#416c48;margin-bottom:12px}.geo-empty-icon svg{width:29px;height:29px}.geo-empty-state h3{font-family:var(--font-display);font-size:23px;font-weight:650;color:#263b2b;margin:0 0 6px}.geo-empty-state p{max-width:460px;font-size:12px;line-height:1.5;color:#727c70;margin:0 0 15px}
@media(max-width:900px){.geo-layout{grid-template-columns:1fr}.geo-people-panel{max-height:none}.geo-people-list{display:flex;overflow:auto;gap:7px;padding:8px;scrollbar-width:none;-ms-overflow-style:none}.geo-people-list::-webkit-scrollbar{display:none}.geo-person{min-width:218px}.geo-map-wrap{height:310px}.hm-admin-shortcuts{grid-template-columns:1fr}}
@media(max-width:720px){.geo-page{gap:10px}.geo-hero{padding:17px 16px;border-radius:20px}.geo-hero h2{font-size:24px}.geo-hero p{font-size:11.5px}.geo-hero-stat{min-width:98px;padding:10px 11px}.geo-hero-stat strong{font-size:20px}.geo-privacy-note{font-size:10.4px;padding:9px 10px}.geo-layout{gap:10px}.geo-people-panel,.geo-detail-panel{border-radius:18px}.geo-panel-head{height:58px;padding:0 12px}.geo-detail-panel{padding:10px}.geo-map-wrap{height:285px;border-radius:15px}.geo-info-grid{grid-template-columns:1fr 1fr;gap:7px}.geo-info-card{grid-column:span 2;padding:10px}.geo-mini{padding:9px}.geo-actions{display:grid;grid-template-columns:1fr 1fr}.geo-actions .btn{font-size:10.3px;padding:0 8px}.hm-live-pill{font-size:8px;padding:4px 7px}}
@media(max-width:430px){.geo-hero{align-items:flex-start}.geo-hero-copy{max-width:72%}.geo-hero h2{font-size:21px}.geo-hero p{font-size:10.8px}.geo-hero-stat{min-width:82px;grid-template-columns:9px 1fr;gap:2px 6px}.geo-hero-stat .geo-pulse{width:8px;height:8px;box-shadow:0 0 0 5px rgba(149,210,158,.13)}.geo-people-list{padding:7px}.geo-person{min-width:200px;padding:8px}.geo-detail-head{padding-bottom:9px}.geo-map-wrap{height:252px}.geo-info-grid{grid-template-columns:1fr 1fr}.geo-mini strong{font-size:10px}.geo-actions{grid-template-columns:1fr}.geo-actions .btn{height:38px}.geo-info-card strong{font-size:11.3px}.geo-selected-person strong{font-size:13.5px}.geo-status{font-size:8.8px;padding:6px 8px}}

/* ---- app-polish-v563.css ---- */
/* EarthRoster v563 — professional live geolocation + historical Job Location Proof */
.geo-v563{gap:12px}
.geo-hero-v563{background:linear-gradient(125deg,#092f35 0%,#164b45 48%,#2d6547 100%);padding:22px 24px;box-shadow:0 16px 36px rgba(10,48,48,.16)}
.geo-hero-v563:after{right:-45px;top:-100px;width:280px;height:280px;background:radial-gradient(circle,rgba(119,220,168,.17),rgba(255,255,255,.02) 60%,transparent 62%)}
.geo-hero-v563 .geo-kicker{color:#b7e1cb;opacity:1}.geo-hero-v563 h2{font-size:32px}.geo-hero-v563 p{max-width:710px;color:rgba(244,255,250,.82)}
.geo-v563-note{background:linear-gradient(90deg,#eef7ef,#f7f5ec);border-color:rgba(40,99,65,.12);align-items:center;color:#52665a;box-shadow:0 3px 12px rgba(26,58,36,.035)}
.geo-v563-note>svg{color:#238453}.geo-v563-note strong{color:#255337}.geo-refresh-mini{margin-left:auto;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:11px;background:#fff;color:#335e48;box-shadow:0 2px 9px rgba(30,61,39,.09);cursor:pointer}.geo-refresh-mini svg{width:16px;height:16px;margin:0}
.geo-layout-v563{grid-template-columns:320px minmax(0,1fr);gap:12px}.geo-people-v563,.geo-detail-v563{border-color:rgba(26,70,50,.10);box-shadow:0 10px 30px rgba(23,60,42,.075)}
.geo-head{position:relative;display:grid;place-items:center;overflow:hidden;background-size:cover;background-position:center;border-radius:50%;background:linear-gradient(145deg,#477b60,#214f46);color:#fff;font-weight:900;letter-spacing:.02em;box-shadow:0 5px 14px rgba(27,65,45,.15);isolation:isolate}
.geo-head[data-c="0"]{background:linear-gradient(145deg,#6e8e70,#37614e)}.geo-head[data-c="1"]{background:linear-gradient(145deg,#9a795d,#574a3d)}.geo-head[data-c="2"]{background:linear-gradient(145deg,#568c88,#315b60)}.geo-head[data-c="3"]{background:linear-gradient(145deg,#7d7aa4,#4c4b75)}.geo-head[data-c="4"]{background:linear-gradient(145deg,#9b6d6f,#614b50)}.geo-head[data-c="5"]{background:linear-gradient(145deg,#6685a0,#3b586f)}.geo-head[data-c="6"]{background:linear-gradient(145deg,#9b8357,#665332)}.geo-head[data-c="7"]{background:linear-gradient(145deg,#598568,#345944)}
.geo-head-list{width:46px;height:46px;font-size:12px;border:3px solid #fff}.geo-head-detail{width:50px;height:50px;font-size:13px;border:3px solid #e6f5ea}.geo-head-map{width:48px;height:48px;font-size:12px;border:3px solid #fff;box-shadow:0 8px 20px rgba(6,41,31,.27)}
.geo-person{grid-template-columns:48px minmax(0,1fr) auto;padding:10px 11px;gap:10px}.geo-person.selected{background:linear-gradient(135deg,#edf7ed,#f8f2e6);border-color:rgba(38,110,68,.18);box-shadow:0 4px 16px rgba(27,76,48,.07)}.geo-person-copy strong{font-size:13.5px}.geo-person-copy em{font-size:11.2px}.geo-person-state{justify-self:end;display:inline-flex;align-items:center;max-width:72px;padding:5px 7px;border-radius:999px;background:#eef1ec;color:#697469;font-size:8.5px;line-height:1.1;font-weight:900;text-align:center}.geo-person-state.onsite,.geo-person-state.live{background:#e4f5e6;color:#217545}.geo-person-state.recent{background:#f8edcd;color:#886a24}.geo-person-state.stale{background:#f4e1dd;color:#944f44}
.geo-detail-v563{padding:13px}.geo-detail-v563 .geo-detail-head{padding:1px 2px 11px}.geo-selected-person{gap:11px}.geo-selected-person strong{font-size:16px}.geo-selected-person em{font-size:10.8px}
.geo-map-v563{height:365px;border-radius:20px;background:#dce8df}.geo-map-v563 iframe,.geo-proof-map iframe{filter:saturate(.78) contrast(.97) brightness(1.02)}
.geo-map-employee-marker{position:absolute;transform:translate(-50%,-50%);z-index:5;display:grid;place-items:center;pointer-events:none}.geo-map-employee-marker>i{position:absolute;right:0;bottom:2px;width:12px;height:12px;border-radius:50%;background:#20a85a;border:3px solid #fff;z-index:4}.geo-map-accuracy-ring{position:absolute;width:76px;height:76px;border-radius:50%;background:rgba(35,173,92,.12);border:1.5px solid rgba(35,173,92,.30);z-index:-1}.geo-map-job-marker{position:absolute;transform:translate(-50%,-90%);z-index:4;width:38px;height:44px;border-radius:20px 20px 20px 6px;background:#113a6c;color:#fff;display:grid;place-items:center;box-shadow:0 8px 18px rgba(18,49,88,.27);border:3px solid #fff;pointer-events:none}.geo-map-job-marker svg{width:18px;height:18px;transform:rotate(0)}
.geo-map-legend{position:absolute;left:12px;bottom:12px;z-index:7;display:flex;gap:7px;padding:7px 9px;border-radius:12px;background:rgba(255,255,255,.93);box-shadow:0 5px 14px rgba(28,44,31,.10);font-size:9px;font-weight:850;color:#4d5d54}.geo-map-legend span{display:flex;align-items:center;gap:5px}.geo-map-legend i{width:8px;height:8px;border-radius:50%;background:#24a75c}.geo-map-legend i.job{border-radius:2px;background:#113a6c}
.geo-proof-strip{margin-top:10px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 11px;border-radius:15px;background:#f5f1e7;border:1px solid rgba(56,76,56,.09);color:#5a675d}.geo-proof-strip>svg{width:20px;height:20px}.geo-proof-strip.ok{background:linear-gradient(135deg,#e5f5e8,#eff8ed);border-color:rgba(31,133,72,.14);color:#287247}.geo-proof-strip>div{display:grid;gap:2px}.geo-proof-strip strong{font-size:11.5px;color:#294735}.geo-proof-strip span{font-size:9.5px;color:#718077}.geo-proof-open{display:flex;align-items:center;gap:4px;border:0;background:transparent;color:#1f6842;font-size:10px;font-weight:900;cursor:pointer}.geo-proof-open svg{width:13px;height:13px;transform:rotate(180deg)}
.geo-info-v563{grid-template-columns:1fr 1fr 1fr 1fr}.geo-info-v563 .geo-info-card{grid-column:span 2}.geo-info-v563 .geo-mini{min-height:66px}.geo-info-v563 .geo-mini strong{font-size:11px}.geo-detail-v563 .geo-actions{display:grid;grid-template-columns:1fr 1.2fr auto}.geo-detail-v563 .geo-actions .btn{height:42px}.loc-proof-btn{margin-top:10px;height:40px!important;border-radius:12px!important}
.sv-proof-panel{margin:12px 0;border:1px solid rgba(35,99,61,.13);background:linear-gradient(145deg,#f1f8f1,#fbf8f0);border-radius:16px;padding:10px}.sv-proof-head{display:flex;align-items:center;gap:9px;padding:2px 2px 8px;color:#2a6e47}.sv-proof-head>svg{width:19px;height:19px}.sv-proof-head>span{display:grid;gap:1px}.sv-proof-head strong{font-size:12px}.sv-proof-head small{font-size:9px;color:#78857b}.sv-proof-list{display:grid;gap:6px}.sv-proof-row{display:grid;grid-template-columns:39px 1fr 20px;align-items:center;gap:9px;text-align:left;border:1px solid rgba(43,85,55,.08);background:#fff;border-radius:12px;padding:8px;color:#2c3d31}.geo-head-shift{width:38px;height:38px;font-size:10px}.sv-proof-row>span{display:grid;gap:2px}.sv-proof-row strong{font-size:11px}.sv-proof-row small{font-size:9px;color:#778077}.sv-proof-row em{display:grid;place-items:center;color:#416f53}.sv-proof-row em svg{width:15px;height:15px;transform:rotate(180deg)}
/* full evidence screen */
.geo-proof-overlay{padding:18px;background:rgba(6,25,20,.58);backdrop-filter:blur(8px);align-items:center}.geo-proof-modal{width:min(920px,100%);height:min(900px,calc(100dvh - 36px));display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden;border-radius:26px;background:#f7faf6;box-shadow:0 28px 80px rgba(4,28,19,.34);border:1px solid rgba(255,255,255,.6)}
.geo-proof-top{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:17px 19px;background:linear-gradient(125deg,#07363c,#155347 58%,#2b6a49);color:#fff}.geo-proof-back{width:38px;height:38px;border-radius:13px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#fff;display:grid;place-items:center;cursor:pointer}.geo-proof-back svg{width:18px;height:18px}.geo-proof-top>div{display:grid;gap:2px}.geo-proof-top>div>span{font-size:8px;letter-spacing:.14em;font-weight:950;color:#aee1c5}.geo-proof-top h2{font-family:var(--font-display);font-size:24px;line-height:1.05;margin:0;font-weight:650}.geo-proof-top p{font-size:9.5px;color:rgba(255,255,255,.72);margin:1px 0 0}.geo-proof-state{display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:11px;background:rgba(255,255,255,.10);font-size:9px;font-weight:900}.geo-proof-state.ok{background:rgba(119,225,154,.15);color:#d9ffe5}.geo-proof-state svg{width:14px;height:14px}
.geo-proof-scroll{min-height:0;overflow:auto;padding:12px;display:grid;grid-template-columns:1fr 1.4fr;grid-template-rows:auto minmax(270px,1fr);gap:10px}.geo-proof-person-card{grid-column:1;display:grid;grid-template-columns:62px 1fr 54px;gap:11px;align-items:center;padding:12px;border-radius:18px;background:#fff;border:1px solid rgba(32,74,48,.10);box-shadow:0 5px 18px rgba(25,60,40,.06)}.geo-proof-head{width:60px;height:60px;font-size:15px;border:4px solid #e3f5e8}.geo-proof-person-copy{display:grid;gap:3px;min-width:0}.geo-proof-person-copy strong{font-family:var(--font-display);font-size:18px;color:#183b2b}.geo-proof-person-copy span{font-size:10px;color:#5f6f64;line-height:1.3}.geo-proof-person-copy small{font-size:9px;color:#8a958d}.geo-proof-seal{justify-self:end;width:50px;height:50px;border-radius:16px;background:linear-gradient(145deg,#23834f,#166840);color:#fff;display:grid;place-items:center;align-content:center;gap:1px;box-shadow:0 7px 15px rgba(25,113,66,.2)}.geo-proof-seal svg{width:19px;height:19px}.geo-proof-seal span{font-size:7px;font-weight:950;letter-spacing:.06em}
.geo-proof-map{grid-column:2;grid-row:1/3;min-height:420px;position:relative;overflow:hidden;border-radius:19px;background:#dfe9e1;border:1px solid rgba(34,73,48,.10)}.geo-proof-map iframe{width:100%;height:100%;border:0}.geo-proof-map-badge{position:absolute;left:10px;top:10px;z-index:7;display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:11px;background:rgba(255,255,255,.94);font-size:9px;font-weight:900;color:#315a43;box-shadow:0 5px 14px rgba(25,55,36,.11)}.geo-proof-map-badge i{width:7px;height:7px;border-radius:50%;background:#20a85a;box-shadow:0 0 0 4px rgba(32,168,90,.11)}.geo-proof-map-open{position:absolute;right:10px;bottom:10px;z-index:7;display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:11px;background:rgba(255,255,255,.95);color:#1c5438;text-decoration:none;font-size:9px;font-weight:900;box-shadow:0 5px 14px rgba(25,55,36,.11)}.geo-proof-map-open svg{width:14px;height:14px}
.geo-proof-evidence{grid-column:1;display:grid;grid-template-columns:1fr 1fr;gap:7px;align-content:start}.geo-proof-row{display:flex;align-items:flex-start;gap:9px;padding:10px;border-radius:14px;background:#fff;border:1px solid rgba(33,74,49,.09)}.geo-proof-row.wide{grid-column:1/3}.geo-proof-ico{width:31px;height:31px;border-radius:10px;background:#eee6d8;color:#765b3f;display:grid;place-items:center;flex:0 0 auto}.geo-proof-ico.green{background:#e2f1e5;color:#28764a}.geo-proof-ico svg{width:15px;height:15px}.geo-proof-row>div{display:grid;gap:2px}.geo-proof-row small,.geo-proof-metric small{font-size:7.5px;letter-spacing:.07em;font-weight:950;color:#87938a}.geo-proof-row strong{font-size:10.5px;color:#273a2e;line-height:1.25}.geo-proof-row em{font-size:8px;font-style:normal;color:#829087}.geo-proof-metric{display:grid;gap:2px;padding:9px 10px;border-radius:13px;background:#fffdf8;border:1px solid rgba(33,74,49,.08)}.geo-proof-metric strong{font-size:13px;color:#24402f}.geo-proof-metric span{font-size:8px;color:#819087}.geo-proof-metric span.ok{color:#17804a;font-weight:850}.geo-proof-confirm{grid-column:1/3;display:flex;gap:9px;align-items:flex-start;padding:10px 11px;border-radius:14px;background:#f4f0e8;border:1px solid rgba(49,74,55,.09);color:#5c6a60}.geo-proof-confirm.ok{background:linear-gradient(135deg,#e4f5e8,#f3f8ec);color:#247246;border-color:rgba(30,126,66,.13)}.geo-proof-confirm>svg{width:19px;height:19px;flex:0 0 auto}.geo-proof-confirm>div{display:grid;gap:2px}.geo-proof-confirm strong{font-size:10.5px;color:#244733}.geo-proof-confirm span{font-size:8.7px;line-height:1.35}.geo-proof-id{grid-column:1/3;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:7px 9px;border-radius:11px;background:#eef2ed;font-size:8px;color:#748178}.geo-proof-id strong{color:#334a3b;overflow:hidden;text-overflow:ellipsis}.geo-proof-id em{font-style:normal;color:#879188}.geo-proof-actions{display:grid;grid-template-columns:auto auto 1fr;gap:8px;padding:0 12px 10px}.geo-proof-actions .btn{height:40px;border-radius:12px;font-size:10px}.geo-proof-note{display:flex;justify-content:center;align-items:center;gap:6px;padding:8px 12px 10px;border-top:1px solid rgba(35,66,46,.07);font-size:8.5px;color:#7d8880;text-align:center}.geo-proof-note svg{width:13px;height:13px}.geo-proof-empty{display:grid;place-content:center;justify-items:center;gap:10px;color:#68786d}.geo-proof-empty svg{width:30px;height:30px}
@media(max-width:900px){.geo-layout-v563{grid-template-columns:1fr}.geo-detail-v563{order:1}.geo-people-v563{order:2}.geo-map-v563{height:330px}.geo-proof-scroll{grid-template-columns:1fr;grid-template-rows:auto 320px auto}.geo-proof-person-card{grid-column:1}.geo-proof-map{grid-column:1;grid-row:2;min-height:320px}.geo-proof-evidence{grid-column:1;grid-row:3}}
@media(max-width:720px){.geo-v563{gap:9px}.geo-hero-v563{padding:15px 14px;border-radius:18px}.geo-hero-v563 .geo-hero-copy{max-width:75%}.geo-hero-v563 h2{font-size:22px;margin-top:3px}.geo-hero-v563 p{font-size:10.5px;line-height:1.35}.geo-v563-note{font-size:9.3px;padding:8px 9px}.geo-layout-v563{gap:9px}.geo-detail-v563{padding:9px}.geo-map-v563{height:285px;border-radius:16px}.geo-head-detail{width:43px;height:43px}.geo-selected-person strong{font-size:14px}.geo-info-v563{grid-template-columns:1fr 1fr}.geo-info-v563 .geo-info-card{grid-column:span 2}.geo-info-v563 .geo-mini{min-height:58px}.geo-detail-v563 .geo-actions{grid-template-columns:1fr 1fr}.geo-detail-v563 .geo-actions .btn:last-child{grid-column:1/3}.geo-proof-overlay{padding:0;align-items:stretch}.geo-proof-modal{height:100dvh;max-height:none;width:100%;border-radius:0}.geo-proof-top{padding:calc(11px + env(safe-area-inset-top,0px)) 12px 11px;grid-template-columns:38px 1fr auto;gap:9px}.geo-proof-top h2{font-size:20px}.geo-proof-top p{font-size:8.6px}.geo-proof-state{font-size:7.7px;padding:6px 7px}.geo-proof-scroll{padding:8px;gap:8px;grid-template-rows:auto 260px auto}.geo-proof-person-card{grid-template-columns:50px 1fr 44px;padding:9px}.geo-proof-head{width:49px;height:49px}.geo-proof-person-copy strong{font-size:15px}.geo-proof-seal{width:42px;height:42px;border-radius:13px}.geo-proof-map{min-height:260px;border-radius:15px}.geo-proof-evidence{gap:6px}.geo-proof-row{padding:8px}.geo-proof-metric{padding:8px}.geo-proof-confirm{padding:8px 9px}.geo-proof-actions{padding:0 8px 7px;grid-template-columns:1fr 1fr 1.2fr}.geo-proof-actions .btn{padding:0 7px;font-size:8.8px}.geo-proof-note{padding:6px 8px calc(7px + env(safe-area-inset-bottom,0px));font-size:7.7px}}
@media(max-width:430px){.geo-hero-v563 .geo-hero-copy{max-width:72%}.geo-hero-v563 h2{font-size:20px}.geo-hero-v563 p{font-size:9.6px}.geo-hero-v563 .geo-hero-stat{min-width:79px}.geo-map-v563{height:245px}.geo-detail-v563 .geo-detail-head{align-items:flex-start}.geo-status{font-size:8px}.geo-proof-strip{grid-template-columns:29px 1fr auto;padding:8px;gap:7px}.geo-proof-strip span{font-size:8.5px}.geo-proof-open{font-size:8.5px}.geo-info-v563 .geo-info-card{padding:9px}.geo-info-v563 .geo-mini strong{font-size:9.8px}.geo-person{min-width:228px}.geo-person-state{font-size:7.8px}.geo-proof-top{grid-template-columns:35px 1fr}.geo-proof-state{grid-column:2;justify-self:start;margin-top:-1px}.geo-proof-top p{display:none}.geo-proof-scroll{grid-template-rows:auto 235px auto}.geo-proof-map{min-height:235px}.geo-proof-row strong{font-size:9.8px}.geo-proof-metric strong{font-size:11.5px}.geo-proof-confirm span{font-size:8px}}

/* ---- app-polish-v564.css ---- */
/* EarthRoster v565 — respectful work-location language + neutral admin status styling */
.geo-v564{gap:10px}
.geo-command-v564{border-radius:22px;overflow:hidden;background:linear-gradient(125deg,#07383b 0%,#155447 58%,#2c6848 100%);color:#fff;padding:18px;box-shadow:0 14px 34px rgba(7,48,41,.16);border:1px solid rgba(255,255,255,.08)}
.geo-command-main{display:flex;align-items:center;justify-content:space-between;gap:18px}.geo-command-copy{min-width:0}.geo-command-copy>span{font-size:9px;letter-spacing:.16em;font-weight:950;color:#b9e5cd}.geo-command-copy h2{font-family:var(--font-display);font-size:27px;line-height:1.05;margin:4px 0 5px;font-weight:650}.geo-command-copy p{margin:0;max-width:700px;color:rgba(255,255,255,.76);font-size:11px;line-height:1.4;font-weight:650}.geo-command-refresh{border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.09);color:#fff;height:40px;border-radius:13px;padding:0 13px;display:flex;align-items:center;gap:7px;font-weight:900;font-size:10px;cursor:pointer;flex:0 0 auto}.geo-command-refresh svg{width:15px;height:15px}
.geo-summary-v564{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px}.geo-summary-card{min-height:58px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.075);color:#fff;border-radius:15px;padding:8px 10px;display:grid;grid-template-columns:9px auto 1fr;gap:3px 7px;align-items:center;text-align:left;cursor:pointer}.geo-summary-card i{grid-row:1/3;width:8px;height:8px;border-radius:50%;background:#67d18e;box-shadow:0 0 0 5px rgba(103,209,142,.10)}.geo-summary-card i.onsite{background:#99e1ad}.geo-summary-card.attention i{background:#9fc7b9;box-shadow:0 0 0 5px rgba(159,199,185,.10)}.geo-summary-card.has-alert i{background:#cbb77c}.geo-summary-card strong{font-size:17px;line-height:1}.geo-summary-card span{font-size:9px;font-weight:800;color:rgba(255,255,255,.72)}.geo-summary-card.active{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.28);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.geo-policy-v564{margin-top:10px;display:flex;align-items:center;gap:7px;padding-top:9px;border-top:1px solid rgba(255,255,255,.10);font-size:8.8px;line-height:1.35;color:rgba(255,255,255,.68)}.geo-policy-v564>svg{width:14px;height:14px;color:#a7dfbc;flex:0 0 auto}.geo-policy-v564 strong{color:#d8f5e3}
.geo-layout-v564{grid-template-columns:300px minmax(0,1fr);gap:10px;min-height:0}.geo-people-v564,.geo-detail-v564{border-radius:19px;box-shadow:0 8px 24px rgba(23,60,42,.07);border-color:rgba(27,77,51,.09)}.geo-people-v564 .geo-panel-head{height:58px}.geo-people-v564 .geo-people-list{padding:7px;gap:5px}.geo-people-v564 .geo-person{grid-template-columns:45px minmax(0,1fr) auto;padding:8px 9px;gap:9px;border-radius:14px}.geo-people-v564 .geo-person.needs-attention:not(.selected){background:#f7faf8;border-color:rgba(73,111,91,.10)}.geo-people-v564 .geo-person-copy strong{font-size:12.5px}.geo-people-v564 .geo-person-copy em{font-size:10.3px}.geo-people-v564 .geo-person-copy small{font-size:8.8px}.geo-people-v564 .geo-person-state{max-width:72px;font-size:7.7px;padding:5px 6px}.geo-person-state.onsite{background:#e3f5e7;color:#207447}.geo-filter-empty{min-height:230px;padding:22px 12px;display:grid;place-content:center;justify-items:center;text-align:center;gap:6px;color:#718077}.geo-filter-empty>svg{width:25px;height:25px;color:#3d8658}.geo-filter-empty strong{font-size:12px;color:#2c4937}.geo-filter-empty span{font-size:9px;line-height:1.4;max-width:220px}.geo-filter-empty .btn{margin-top:6px;height:34px;font-size:9px}
.geo-detail-v564{padding:10px}.geo-detail-v564 .geo-detail-head{padding:2px 2px 9px}.geo-selected-person>span:last-child{display:grid;gap:1px}.geo-selected-person small{font-size:8.5px;color:#8a948b;font-weight:750}.geo-detail-v564 .geo-status{font-size:8.5px;padding:6px 8px}.geo-map-v564{height:300px;border-radius:16px}.geo-map-v564 .geo-map-live.stale i{background:#b49362;box-shadow:none}.geo-map-v564 .geo-map-live.recent i{background:#9caa75;box-shadow:none}
.geo-current-state{margin-top:8px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 9px;border-radius:13px;border:1px solid rgba(36,118,68,.12);background:#eef8ef;color:#2a7247}.geo-current-state.attention{background:#f5f8f6;border-color:rgba(73,111,91,.13);color:#587063}.geo-current-state>svg{width:18px;height:18px}.geo-current-state>div{display:grid;gap:1px}.geo-current-state strong{font-size:10px;color:#2b4937}.geo-current-state.attention strong{color:#344c3f}.geo-current-state span{font-size:8.5px;line-height:1.35;color:#748079}.geo-current-state a{font-size:8.5px;font-weight:900;color:currentColor;text-decoration:none;white-space:nowrap}
.geo-detail-v564 .geo-proof-strip{margin-top:8px}.geo-info-v564{grid-template-columns:1fr 1fr 1fr 1fr;gap:7px;margin-top:8px}.geo-info-v564 .geo-info-card{grid-column:span 2;padding:10px 11px}.geo-info-v564 .geo-mini{min-height:56px;padding:8px 9px}.geo-info-v564 .geo-mini span{font-size:8px}.geo-info-v564 .geo-mini strong{font-size:9.8px}.geo-actions-v564{display:grid;grid-template-columns:1.3fr 1fr auto;gap:7px;margin-top:8px}.geo-actions-v564 .btn{height:39px!important;border-radius:12px!important;font-size:9.5px!important;padding:0 9px!important}
.geo-filter-detail-empty{min-height:430px;background:#fffdf8;border:1px solid rgba(46,70,46,.09);border-radius:19px;box-shadow:0 8px 24px rgba(39,57,41,.06);display:grid;place-content:center;justify-items:center;text-align:center;padding:30px;color:#718077}.geo-filter-detail-empty>svg{width:36px;height:36px;color:#3d8658;margin-bottom:8px}.geo-filter-detail-empty h3{font-family:var(--font-display);font-size:21px;margin:0 0 5px;color:#284233}.geo-filter-detail-empty p{font-size:10px;line-height:1.45;max-width:330px;margin:0 0 12px}.geo-filter-detail-empty .btn{height:38px;font-size:9px}
/* Saved job-location record: neutral, screenshot-friendly hierarchy. */
.geo-proof-top{background:linear-gradient(125deg,#06383d,#155347 58%,#2b6a49)}.geo-proof-state.ok{background:rgba(119,225,154,.18)}.geo-proof-confirm.ok{box-shadow:inset 3px 0 0 #2b8b55}.geo-proof-id{background:#f0f3ef}.geo-proof-actions .btn-primary{box-shadow:0 7px 16px rgba(22,91,52,.17)}
@media(max-width:900px){.geo-layout-v564{grid-template-columns:1fr}.geo-people-v564{order:1}.geo-detail-v564{order:2}.geo-filter-detail-empty{order:2}.geo-people-v564 .geo-people-list{display:flex;overflow:auto;gap:7px;padding:7px;scrollbar-width:none}.geo-people-v564 .geo-person{min-width:230px}.geo-map-v564{height:275px}}
@media(max-width:720px){.geo-v564{gap:8px}.geo-command-v564{padding:12px;border-radius:17px}.geo-command-main{gap:10px}.geo-command-copy>span{font-size:7.5px}.geo-command-copy h2{font-size:20px;margin:3px 0}.geo-command-copy p{font-size:8.7px;line-height:1.32;max-width:290px}.geo-command-refresh{width:37px;height:37px;padding:0;justify-content:center;border-radius:12px}.geo-command-refresh span{display:none}.geo-summary-v564{gap:6px;margin-top:9px}.geo-summary-card{min-height:49px;padding:7px 8px;border-radius:12px;grid-template-columns:7px auto 1fr;gap:2px 6px}.geo-summary-card i{width:7px;height:7px;box-shadow:0 0 0 4px rgba(103,209,142,.10)}.geo-summary-card strong{font-size:15px}.geo-summary-card span{font-size:7.6px}.geo-policy-v564{margin-top:7px;padding-top:7px;font-size:7.6px}.geo-policy-v564>svg{width:12px;height:12px}.geo-layout-v564{gap:8px}.geo-people-v564,.geo-detail-v564{border-radius:16px}.geo-people-v564 .geo-panel-head{height:46px;padding:0 10px}.geo-people-v564 .geo-panel-head strong{font-size:11.5px}.geo-people-v564 .geo-panel-head span{font-size:7.5px}.geo-people-v564 .geo-person{min-width:216px}.geo-head-list{width:40px;height:40px}.geo-detail-v564{padding:8px}.geo-head-detail{width:42px;height:42px}.geo-selected-person strong{font-size:13px}.geo-selected-person em{font-size:9px}.geo-selected-person small{font-size:7.7px}.geo-map-v564{height:220px}.geo-map-legend{left:8px;bottom:8px;padding:6px 7px;font-size:7.8px}.geo-map-overlay{left:8px;right:8px;top:8px}.geo-map-live,.geo-map-accuracy{padding:6px 7px;font-size:8px}.geo-current-state{grid-template-columns:24px 1fr auto;padding:7px 8px}.geo-current-state>svg{width:16px;height:16px}.geo-current-state strong{font-size:9px}.geo-current-state span,.geo-current-state a{font-size:7.5px}.geo-proof-strip{grid-template-columns:28px minmax(0,1fr) auto!important;padding:8px!important}.geo-proof-strip strong{font-size:9.5px}.geo-proof-strip span{font-size:7.7px}.geo-proof-open{font-size:7.8px}.geo-info-v564{grid-template-columns:1fr 1fr}.geo-info-v564 .geo-info-card{grid-column:span 2;padding:8px}.geo-info-v564 .geo-info-card strong{font-size:10px}.geo-info-v564 .geo-info-card small{font-size:7.5px}.geo-info-v564 .geo-info-card em{font-size:8px}.geo-info-v564 .geo-mini{min-height:49px;padding:7px}.geo-actions-v564{grid-template-columns:1.2fr 1fr}.geo-actions-v564 .btn:last-child{grid-column:1/3}.geo-actions-v564 .btn{height:36px!important;font-size:8.6px!important}.geo-filter-detail-empty{min-height:280px;border-radius:16px}}
@media(max-width:430px){.geo-command-copy p{max-width:250px}.geo-summary-card span{font-size:7.1px}.geo-policy-v564 span{display:block}.geo-people-v564 .geo-person{min-width:205px}.geo-map-v564{height:205px}.geo-map-employee-marker .geo-head-map{width:43px;height:43px}.geo-map-accuracy-ring{width:68px;height:68px}.geo-current-state{grid-template-columns:22px 1fr}.geo-current-state a{grid-column:2;margin-top:1px}.geo-detail-v564 .geo-proof-strip{grid-template-columns:26px 1fr auto!important}.geo-info-v564 .geo-mini strong{font-size:9px}.geo-actions-v564 .btn{font-size:8px!important}.geo-proof-top p{display:block!important;font-size:7.5px!important}.geo-proof-top{grid-template-columns:34px 1fr!important}.geo-proof-state{grid-column:2!important}.geo-proof-scroll{grid-template-rows:auto 220px auto!important}.geo-proof-map{min-height:220px!important}}

/* v565 neutral delayed-location states: operational rather than warning-like. */
.geo-person-state.stale{background:#f3efe5!important;color:#766342!important}.geo-status.stale{background:#f3efe5!important;color:#766342!important}.geo-status.stale i{background:#b49362!important;box-shadow:none!important}

/* ---- app-polish-v567.css ---- */
/* EarthRoster v566 — strict 100m clock gate + mobile clock action visibility */
.v566-onsite-clock-note{position:relative;z-index:2;display:flex;align-items:center;gap:9px;margin:10px 0 0;padding:9px 11px;border-radius:14px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.10);color:#edf5e9}
.v566-onsite-clock-note>svg{width:18px;height:18px;flex:0 0 18px;color:#bfe9c4}
.v566-onsite-clock-note span{display:grid;gap:1px;min-width:0}.v566-onsite-clock-note strong{font-size:11px;line-height:1.2}.v566-onsite-clock-note em{font-style:normal;font-size:9.5px;line-height:1.3;color:rgba(255,255,255,.68);font-weight:650}
.v499-clockout.v566-clockout{min-height:62px;margin-top:10px;border:1px solid rgba(255,255,255,.3);box-shadow:0 12px 28px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.75)}
.v499-clockout.v566-clockout strong{font-size:15px}.v499-clockout.v566-clockout em{font-size:10px}
@media(max-width:1023px){
  body.ww-stable-scroll-page .v499-clock-page{padding-bottom:calc(94px + env(safe-area-inset-bottom,0px))!important;scroll-padding-bottom:calc(94px + env(safe-area-inset-bottom,0px))!important}
  .v499-active-card{overflow:visible!important}
}
@media(max-width:430px){
  .v499-active-card{padding:14px!important;border-radius:23px!important}
  .v499-timer-orbit{width:146px!important;height:146px!important;margin:12px auto 9px!important;padding:6px!important}
  .v499-timer-ring span{font-size:28px!important}
  .v499-timer-ring em{font-size:7.5px!important}
  .v502-progress-block{margin-top:5px!important;padding:8px 9px!important;border-radius:13px!important}
  .v499-active-job{margin-top:9px!important;padding:10px!important;border-radius:15px!important}
  .v499-active-job-icon{width:42px!important;height:42px!important;min-width:42px!important}
  .v499-active-job h2{font-size:19px!important;margin:2px 0 3px!important}
  .v499-active-job button{font-size:10.5px!important;line-height:1.2!important}
  .v566-onsite-clock-note{margin-top:8px!important;padding:8px 10px!important;border-radius:12px!important}
  .v499-clockout.v566-clockout{position:relative!important;bottom:auto!important;width:100%!important;min-height:60px!important;margin:8px 0 8px!important;padding:9px 14px!important;border-radius:15px!important;z-index:5!important}
  .v499-active-stats{margin-top:0!important;gap:6px!important}
  .v499-active-stats>div{padding:8px 6px!important;border-radius:11px!important}
  .v499-active-stats span{font-size:7.5px!important}.v499-active-stats strong{font-size:13px!important}
}
@media(max-width:380px){
  .v499-timer-orbit{width:132px!important;height:132px!important}
  .v499-timer-ring span{font-size:25px!important}
  .v566-onsite-clock-note em{font-size:9px!important}
}


/* ---- inline style 145 ---- */

/* Requested fixes only:
   1) remove the ugly native triangle / extra decoration inside the admin roster
      employee search field on iPhone/Safari.
   2) make the WAITING state clearly visible on admin roster cards. */

/* Admin roster employee search: clean single-field look, no native extra glyphs. */
.ww521-roster-controls .rwg-search-top,
.ww522-roster-controls .rwg-search-top,
.rwg-search-top,
.rwg-search{
  position:relative!important;
  overflow:hidden!important;
}
.ww521-roster-controls .rwg-search-top input,
.ww522-roster-controls .rwg-search-top input,
.rwg-search input{
  -webkit-appearance:none!important;
  appearance:none!important;
  background:transparent!important;
  background-image:none!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
}
.ww521-roster-controls .rwg-search-top input::-webkit-search-decoration,
.ww521-roster-controls .rwg-search-top input::-webkit-search-cancel-button,
.ww521-roster-controls .rwg-search-top input::-webkit-search-results-button,
.ww521-roster-controls .rwg-search-top input::-webkit-search-results-decoration,
.ww522-roster-controls .rwg-search-top input::-webkit-search-decoration,
.ww522-roster-controls .rwg-search-top input::-webkit-search-cancel-button,
.ww522-roster-controls .rwg-search-top input::-webkit-search-results-button,
.ww522-roster-controls .rwg-search-top input::-webkit-search-results-decoration,
.rwg-search input::-webkit-search-decoration,
.rwg-search input::-webkit-search-cancel-button,
.rwg-search input::-webkit-search-results-button,
.rwg-search input::-webkit-search-results-decoration{
  -webkit-appearance:none!important;
  appearance:none!important;
  display:none!important;
}
.ww521-roster-controls .rwg-search-top input::-webkit-contacts-auto-fill-button,
.ww521-roster-controls .rwg-search-top input::-webkit-credentials-auto-fill-button,
.ww522-roster-controls .rwg-search-top input::-webkit-contacts-auto-fill-button,
.ww522-roster-controls .rwg-search-top input::-webkit-credentials-auto-fill-button,
.rwg-search input::-webkit-contacts-auto-fill-button,
.rwg-search input::-webkit-credentials-auto-fill-button{
  visibility:hidden!important;
  display:none!important;
  pointer-events:none!important;
  position:absolute!important;
  right:0!important;
}

/* Waiting status on admin roster cards: stronger contrast and slightly larger. */
.roster-mobile .ww512-state-pill,
.home-roster-list .ww512-state-pill{
  height:20px!important;
  padding:0 8px!important;
  border-radius:999px!important;
  font-size:8.2px!important;
  line-height:20px!important;
  font-weight:950!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
  border:1px solid transparent!important;
  box-shadow:0 1px 0 rgba(255,255,255,.35) inset, 0 1px 2px rgba(17,24,19,.12)!important;
  opacity:1!important;
}
.roster-mobile .ww512-state-pill:not(.is-accepted):not(.is-rejected),
.home-roster-list .ww512-state-pill:not(.is-accepted):not(.is-rejected){
  background:linear-gradient(180deg,#ffe6a0,#ffd36f)!important;
  color:#6d4700!important;
  border-color:rgba(120,84,8,.18)!important;
  text-shadow:none!important;
}
.roster-mobile .ww512-state-pill.is-accepted,
.home-roster-list .ww512-state-pill.is-accepted{
  background:linear-gradient(180deg,#eaf7eb,#d8efdc)!important;
  color:#1f6331!important;
  border-color:rgba(31,99,49,.14)!important;
}
.roster-mobile .ww512-state-pill.is-rejected,
.home-roster-list .ww512-state-pill.is-rejected{
  background:linear-gradient(180deg,#fdebe8,#f8d7d2)!important;
  color:#a23228!important;
  border-color:rgba(162,50,40,.14)!important;
}

/* Fallback for other admin roster state chips that may render WAITING. */
.roster-mobile .rc-emp-state.rc-locked,
.home-roster-list .rc-emp-state.rc-locked,
.roster-mobile .rc-emp-state[data-state="waiting"],
.home-roster-list .rc-emp-state[data-state="waiting"]{
  background:linear-gradient(180deg,#ffe6a0,#ffd36f)!important;
  color:#6d4700!important;
  border:1px solid rgba(120,84,8,.18)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.35) inset, 0 1px 2px rgba(17,24,19,.12)!important;
  opacity:1!important;
}

/* Keep compact team-row pills readable when multiple employees are shown. */
.ww522-roster-card .ww512-state-pill{
  margin-left:4px!important;
  vertical-align:middle!important;
}


/* ---- app-polish-v644-bundle-3.css ---- */
/* ---- app-polish-v568.css ---- */
/* EarthRoster v568 — cleaner employee roster presentation
   Scope: employee roster cards + mobile week/day controls. Functional behaviour unchanged. */

@media (max-width:1023px){
  /* The global page header already identifies Roster; remove the duplicate staff hero on phones. */
  body.ww-roster-active .rst-hero.staff{display:none!important;}

  /* Quieter roster calendar surface. */
  .ww522-roster-controls.is-employee{
    margin:10px 10px 16px!important;
    padding:12px 12px 14px!important;
    border:1px solid rgba(34,69,43,.10)!important;
    border-radius:22px!important;
    background:rgba(249,251,246,.92)!important;
    box-shadow:0 8px 24px rgba(24,50,31,.07)!important;
  }
  .ww522-roster-controls.is-employee .ww521-picker-head{display:none!important;}
  .ww522-roster-controls.is-employee .rst-days{
    gap:7px!important;
    margin:0 0 12px!important;
  }
  .ww522-roster-controls.is-employee .rst-day{
    min-height:61px!important;
    padding:7px 2px 6px!important;
    gap:2px!important;
    border-radius:14px!important;
    border:1px solid rgba(40,67,46,.12)!important;
    background:#fbfcf9!important;
    box-shadow:0 2px 7px rgba(26,48,31,.035)!important;
  }
  .ww522-roster-controls.is-employee .rst-day .rd-dow{
    font-size:8.4px!important;
    font-weight:850!important;
    letter-spacing:.065em!important;
    color:#6f7c71!important;
  }
  .ww522-roster-controls.is-employee .rst-day .rd-num{
    font-size:18px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:-.025em!important;
    color:#1d2d22!important;
  }
  .ww522-roster-controls.is-employee .rst-day .rd-cnt{
    min-width:18px!important;
    height:18px!important;
    padding:0 5px!important;
    border-radius:999px!important;
    background:#b4783e!important;
    color:#fff!important;
    font-size:8.5px!important;
    line-height:18px!important;
    font-weight:850!important;
  }
  .ww522-roster-controls.is-employee .rst-day .rd-empty{
    width:5px!important;
    height:5px!important;
    background:#d7ded6!important;
  }
  .ww522-roster-controls.is-employee .rst-day.today{
    box-shadow:inset 0 0 0 1px rgba(48,103,62,.32)!important;
  }
  .ww522-roster-controls.is-employee .rst-day.sel{
    background:linear-gradient(155deg,#3d8a53,#2d7143)!important;
    border-color:transparent!important;
    box-shadow:0 5px 13px rgba(38,103,58,.18)!important;
  }
  .ww522-roster-controls.is-employee .rst-day.sel .rd-dow{color:rgba(255,255,255,.76)!important;}
  .ww522-roster-controls.is-employee .rst-day.sel .rd-num{color:#fff!important;}
  .ww522-roster-controls.is-employee .rst-day.sel .rd-cnt{
    background:rgba(255,255,255,.18)!important;
    color:#fff!important;
    border:1px solid rgba(255,255,255,.12)!important;
  }
  .ww522-roster-controls.is-employee .ww521-selected-day{
    min-height:46px!important;
    margin:0!important;
    padding:11px 2px 0!important;
    border-top:1px solid rgba(34,69,43,.10)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
  }
  .ww522-roster-controls.is-employee .ww521-selected-copy>span{display:none!important;}
  .ww522-roster-controls.is-employee .ww521-selected-copy h2{
    margin:0!important;
    font-size:19px!important;
    line-height:1.15!important;
    font-weight:620!important;
    letter-spacing:-.018em!important;
  }
  .ww522-roster-controls.is-employee .ww521-selected-meta{
    flex:0 0 auto!important;
    min-height:27px!important;
    padding:0 10px!important;
    border-radius:999px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#edf4eb!important;
    border:1px solid rgba(54,102,62,.12)!important;
    color:#416347!important;
    font-size:10px!important;
    font-weight:800!important;
    box-shadow:none!important;
  }

  /* Employee cards: retain each job's colour as an accent instead of flooding the whole card. */
  .roster-mobile .ww568-employee-roster-card,
  .home-roster-list .ww568-employee-roster-card{
    position:relative!important;
    display:grid!important;
    grid-template-columns:52px minmax(0,1fr) auto!important;
    grid-template-rows:auto auto!important;
    align-items:center!important;
    column-gap:10px!important;
    row-gap:5px!important;
    min-height:78px!important;
    margin:0 10px 9px!important;
    padding:10px 11px 10px 15px!important;
    border-radius:17px!important;
    border:1px solid color-mix(in srgb,var(--solid) 18%,#d8e0d6)!important;
    background:linear-gradient(135deg,color-mix(in srgb,var(--solid) 7%,#fbfcf8) 0%,#fbfcf8 64%,#f8faf5 100%)!important;
    color:#1d2c22!important;
    box-shadow:0 5px 15px rgba(21,45,28,.07)!important;
    overflow:hidden!important;
  }
  .roster-mobile .ww568-employee-roster-card::before,
  .home-roster-list .ww568-employee-roster-card::before{
    content:""!important;
    display:block!important;
    position:absolute!important;
    left:0!important;
    top:10px!important;
    bottom:10px!important;
    width:4px!important;
    border-radius:0 6px 6px 0!important;
    background:var(--solid)!important;
    opacity:.9!important;
  }
  .roster-mobile .ww568-employee-roster-card::after,
  .home-roster-list .ww568-employee-roster-card::after{display:none!important;content:none!important;}

  .ww568-employee-roster-card .ww512-hours-badge{
    grid-column:1!important;
    grid-row:1!important;
    width:52px!important;
    min-width:52px!important;
    height:52px!important;
    margin:0!important;
    border-radius:13px!important;
    background:color-mix(in srgb,var(--solid) 10%,#ffffff)!important;
    border:1px solid color-mix(in srgb,var(--solid) 25%,#d9e0d8)!important;
    box-shadow:none!important;
    color:var(--deep)!important;
  }
  .ww568-employee-roster-card .ww512-hours-badge strong{
    color:var(--deep)!important;
    font-size:14px!important;
    font-weight:900!important;
    letter-spacing:-.025em!important;
    text-shadow:none!important;
  }
  .ww568-employee-roster-card .ww512-hours-badge span{
    margin-top:2px!important;
    color:color-mix(in srgb,var(--deep) 68%,#6e7b70)!important;
    font-size:6.7px!important;
    line-height:1!important;
    font-weight:900!important;
    letter-spacing:.085em!important;
  }

  .ww568-employee-roster-card .ww522-card-copy{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
    gap:4px!important;
    align-self:center!important;
  }
  .ww568-employee-roster-card .ww512-title-row{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    flex-wrap:wrap!important;
    gap:6px!important;
    min-width:0!important;
  }
  .ww568-employee-roster-card .ww512-title-row h3{
    min-width:0!important;
    margin:0!important;
    color:#1c2b21!important;
    font-size:15.5px!important;
    line-height:1.08!important;
    font-weight:900!important;
    letter-spacing:-.022em!important;
    text-shadow:none!important;
  }
  .ww568-employee-roster-card .ww512-state-pill{
    flex:0 0 auto!important;
    height:19px!important;
    min-height:19px!important;
    margin:0!important;
    padding:0 7px!important;
    border-radius:999px!important;
    font-size:7.4px!important;
    line-height:19px!important;
    letter-spacing:.05em!important;
    font-weight:900!important;
    box-shadow:none!important;
  }
  .ww568-employee-roster-card .ww512-state-pill.is-accepted{
    background:#e6f2e7!important;
    color:#2f6d3d!important;
    border:1px solid rgba(47,109,61,.14)!important;
  }
  .ww568-employee-roster-card .ww512-state-pill.is-rejected{
    background:#f7e9e7!important;
    color:#985047!important;
    border:1px solid rgba(152,80,71,.14)!important;
  }
  .ww568-employee-roster-card .ww522-shift-time{
    display:flex!important;
    align-items:center!important;
    gap:5px!important;
    margin:0!important;
    color:#667368!important;
    font-size:10.6px!important;
    line-height:1.1!important;
    font-weight:750!important;
    letter-spacing:0!important;
    text-shadow:none!important;
  }
  .ww568-employee-roster-card .ww522-shift-time>span:first-child{
    display:inline-flex!important;
    align-items:center!important;
  }
  .ww568-employee-roster-card .ww522-shift-time svg{
    width:12px!important;
    height:12px!important;
    stroke:var(--solid)!important;
    stroke-width:2.2!important;
  }

  .ww568-employee-roster-card .ww512-actions{
    grid-column:3!important;
    grid-row:1!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;
    min-width:0!important;
  }
  .ww568-employee-roster-card .ww512-actions .rc-act,
  .ww568-employee-roster-card .ww512-actions .rc-emp-state{
    min-height:36px!important;
    height:36px!important;
    border-radius:11px!important;
    padding:0 11px!important;
    gap:5px!important;
    font-size:10.5px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:-.005em!important;
    white-space:nowrap!important;
    box-shadow:none!important;
  }
  .ww568-employee-roster-card .ww512-actions .rc-start,
  .ww568-employee-roster-card .ww512-actions .rc-accept{
    background:var(--deep)!important;
    color:#fff!important;
    border:1px solid color-mix(in srgb,var(--deep) 82%,#000)!important;
    box-shadow:0 4px 10px color-mix(in srgb,var(--deep) 18%,transparent)!important;
  }
  .ww568-employee-roster-card .ww512-actions .rc-start svg,
  .ww568-employee-roster-card .ww512-actions .rc-accept svg{
    stroke:#fff!important;
  }
  .ww568-employee-roster-card .ww512-actions .rc-reject{
    background:transparent!important;
    color:#765e57!important;
    border:1px solid #d9d5cf!important;
    box-shadow:none!important;
  }
  .ww568-employee-roster-card .ww512-actions .rc-done{
    background:#eef4ed!important;
    color:#3f6547!important;
    border:1px solid rgba(63,101,71,.13)!important;
  }
  .ww568-employee-roster-card .ww512-actions .rc-done svg{stroke:#3f6547!important;}

  .ww568-employee-roster-card .ww568-coworker-line{
    grid-column:2 / -1!important;
    grid-row:2!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:6px!important;
    width:100%!important;
    min-height:18px!important;
    margin:0!important;
    padding:1px 0 0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#68756a!important;
    text-align:left!important;
  }
  .ww568-employee-roster-card .ww568-coworker-line .ww522-team-label{
    flex:0 0 auto!important;
    display:inline!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    color:#8a948b!important;
    font-size:8px!important;
    font-weight:850!important;
    line-height:1!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
  }
  .ww568-employee-roster-card .ww568-coworker-line .ww522-team-label::after{content:none!important;display:none!important;}
  .ww568-employee-roster-card .ww568-coworker-line .ww522-team-names{
    flex:1 1 auto!important;
    display:block!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    color:#5b695e!important;
    font-size:10.2px!important;
    line-height:1.15!important;
    font-weight:750!important;
    text-align:left!important;
    text-shadow:none!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .ww568-employee-roster-card.ww568-is-completed{
    background:linear-gradient(135deg,color-mix(in srgb,var(--solid) 4%,#fbfcf8),#fbfcf8)!important;
    border-color:rgba(38,70,46,.11)!important;
  }
  .ww568-employee-roster-card.ww568-is-completed::before{opacity:.55!important;}

  /* More compact small iPhones without sacrificing tap targets. */
  @media (max-width:390px){
    .roster-mobile .ww568-employee-roster-card,
    .home-roster-list .ww568-employee-roster-card{
      grid-template-columns:49px minmax(0,1fr) auto!important;
      column-gap:8px!important;
      margin-left:8px!important;
      margin-right:8px!important;
      padding-left:13px!important;
      padding-right:9px!important;
    }
    .ww568-employee-roster-card .ww512-hours-badge{width:49px!important;min-width:49px!important;height:49px!important;}
    .ww568-employee-roster-card .ww512-title-row h3{font-size:14.6px!important;}
    .ww568-employee-roster-card .ww512-actions .rc-act,
    .ww568-employee-roster-card .ww512-actions .rc-emp-state{padding-left:9px!important;padding-right:9px!important;font-size:9.7px!important;}
    .ww568-employee-roster-card .ww512-actions .rc-start{font-size:9.5px!important;}
  }
}

/* Desktop employee roster cells — same visual language, quieter and easier to scan. */
@media (min-width:1024px){
  .roster-week .wk-cell{
    border-radius:12px!important;
    border:1px solid color-mix(in srgb,var(--accent) 18%,#d9e1d8)!important;
    background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 7%,#fff),#fbfcf9)!important;
    box-shadow:0 3px 10px rgba(22,46,29,.05)!important;
    color:#1d2c22!important;
  }
  .roster-week .wk-cell::before{
    content:"";
    position:absolute;
    left:0;top:8px;bottom:8px;width:3px;
    border-radius:0 4px 4px 0;
    background:var(--accent);
  }
  .roster-week .wkc-name{color:#1d2c22!important;text-shadow:none!important;font-weight:850!important;}
  .roster-week .wkc-time,.roster-week .wkc-dur{color:#68756a!important;text-shadow:none!important;}
}

/* ---- app-polish-v569.css ---- */
/* EarthRoster v569 — professional roster cards
   Scope: mobile employee + admin roster cards. Functionality unchanged.
   Principles: neutral card surfaces, client colour as a restrained accent,
   status belongs to the person/action it describes, and long names must wrap cleanly. */

@media (max-width:1023px){
  /* ---------- shared card rhythm ---------- */
  .roster-mobile .ww569-employee-roster-card,
  .home-roster-list .ww569-employee-roster-card,
  .roster-mobile .ww569-admin-roster-card,
  .home-roster-list .ww569-admin-roster-card{
    margin:0 10px 9px!important;
    border-radius:17px!important;
    background:#fbfcf9!important;
    border:1px solid rgba(31,57,38,.105)!important;
    color:#1c2c21!important;
    box-shadow:0 5px 16px rgba(24,48,30,.065)!important;
    overflow:hidden!important;
    isolation:isolate!important;
  }

  /* ---------- employee card ---------- */
  .roster-mobile .ww569-employee-roster-card,
  .home-roster-list .ww569-employee-roster-card{
    min-height:80px!important;
    padding:10px 11px 10px 15px!important;
    background:linear-gradient(135deg,color-mix(in srgb,var(--solid) 5%,#fcfdfb),#fbfcf9 72%)!important;
    border-color:color-mix(in srgb,var(--solid) 13%,#dce2db)!important;
  }
  .ww569-employee-roster-card::before{
    top:11px!important;
    bottom:11px!important;
    width:3px!important;
    opacity:.88!important;
  }
  .ww569-employee-roster-card .ww512-hours-badge{
    width:52px!important;
    min-width:52px!important;
    height:52px!important;
    border-radius:13px!important;
    background:color-mix(in srgb,var(--solid) 7%,#fff)!important;
    border:1px solid color-mix(in srgb,var(--solid) 22%,#d9e0d8)!important;
    box-shadow:none!important;
  }
  .ww569-employee-roster-card .ww512-hours-badge strong{
    font-size:15px!important;
    line-height:1!important;
    font-weight:900!important;
  }
  .ww569-employee-roster-card .ww512-hours-badge span{
    margin-top:3px!important;
    max-width:46px!important;
    font-size:6px!important;
    line-height:1.02!important;
    letter-spacing:.07em!important;
    white-space:normal!important;
    text-align:center!important;
    text-transform:uppercase!important;
  }
  .ww569-employee-roster-card .ww512-title-row{
    gap:6px!important;
    flex-wrap:wrap!important;
  }
  .ww569-employee-roster-card .ww512-title-row h3{
    flex:0 1 auto!important;
    max-width:100%!important;
    font-size:15.3px!important;
    line-height:1.1!important;
    font-weight:875!important;
    letter-spacing:-.018em!important;
    overflow-wrap:anywhere!important;
  }
  .ww569-employee-roster-card .ww512-state-pill{
    display:inline-flex!important;
    align-items:center!important;
    gap:3px!important;
    height:20px!important;
    min-height:20px!important;
    padding:0 7px!important;
    border-radius:999px!important;
    font-size:7.4px!important;
    line-height:20px!important;
    font-weight:850!important;
    letter-spacing:0!important;
    text-transform:none!important;
  }
  .ww569-employee-roster-card .ww512-state-pill svg{
    width:9px!important;
    height:9px!important;
    stroke:currentColor!important;
    stroke-width:2.4!important;
  }
  .ww569-employee-roster-card .ww522-shift-time{
    margin-top:1px!important;
    color:#667368!important;
    font-size:10.5px!important;
    font-weight:740!important;
  }
  .ww569-employee-roster-card .ww512-actions .rc-act,
  .ww569-employee-roster-card .ww512-actions .rc-emp-state{
    min-height:35px!important;
    height:35px!important;
    border-radius:10px!important;
    padding:0 10px!important;
    font-size:10px!important;
    font-weight:830!important;
  }
  .ww569-employee-roster-card .ww512-actions .rc-done{
    background:#f1f5ef!important;
    border-color:#d6e0d5!important;
    color:#426348!important;
  }
  .ww569-coworker-line{
    grid-column:2 / -1!important;
    grid-row:2!important;
    min-height:17px!important;
    display:flex!important;
    align-items:baseline!important;
    justify-content:flex-start!important;
    gap:6px!important;
    margin:0!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
  }
  .ww569-coworker-label{
    flex:0 0 auto!important;
    color:#8b958c!important;
    font-size:7.5px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:.055em!important;
    text-transform:uppercase!important;
  }
  .ww569-coworker-names{
    min-width:0!important;
    color:#5d6a60!important;
    font-size:10px!important;
    line-height:1.15!important;
    font-weight:760!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  /* ---------- admin card ---------- */
  .roster-mobile .ww569-admin-roster-card,
  .home-roster-list .ww569-admin-roster-card{
    position:relative!important;
    display:grid!important;
    grid-template-columns:52px minmax(0,1fr) 30px!important;
    grid-template-rows:auto auto!important;
    align-items:center!important;
    column-gap:10px!important;
    row-gap:8px!important;
    min-height:86px!important;
    padding:10px 10px 10px 15px!important;
    background:linear-gradient(135deg,color-mix(in srgb,var(--solid) 5%,#fcfdfb),#fbfcf9 72%)!important;
    border-color:color-mix(in srgb,var(--solid) 14%,#dce2db)!important;
    box-shadow:0 5px 15px rgba(23,47,29,.065)!important;
  }
  .roster-mobile .ww569-admin-roster-card::before,
  .home-roster-list .ww569-admin-roster-card::before{
    content:""!important;
    position:absolute!important;
    left:0!important;
    top:10px!important;
    bottom:10px!important;
    width:3px!important;
    border-radius:0 5px 5px 0!important;
    background:var(--solid)!important;
    opacity:.9!important;
    z-index:0!important;
  }
  .roster-mobile .ww569-admin-roster-card::after,
  .home-roster-list .ww569-admin-roster-card::after{display:none!important;content:none!important;}
  .ww569-admin-roster-card>*{position:relative!important;z-index:1!important;}

  .ww569-admin-roster-card .ww569-hours-badge,
  .ww569-admin-roster-card .ww512-hours-badge{
    grid-column:1!important;
    grid-row:1!important;
    width:52px!important;
    min-width:52px!important;
    height:52px!important;
    margin:0!important;
    border-radius:13px!important;
    background:color-mix(in srgb,var(--solid) 7%,#fff)!important;
    border:1px solid color-mix(in srgb,var(--solid) 22%,#d9e0d8)!important;
    box-shadow:none!important;
  }
  .ww569-admin-roster-card .ww512-hours-badge strong{
    color:var(--deep)!important;
    font-size:15px!important;
    line-height:1!important;
    font-weight:900!important;
    text-shadow:none!important;
  }
  .ww569-admin-roster-card .ww512-hours-badge span{
    margin-top:3px!important;
    color:color-mix(in srgb,var(--deep) 64%,#758078)!important;
    font-size:6.4px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:.075em!important;
    text-transform:uppercase!important;
  }

  .ww569-admin-copy{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
    align-self:center!important;
  }
  .ww569-admin-title{
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    flex-wrap:wrap!important;
    gap:5px 6px!important;
  }
  .ww569-admin-title h3{
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    color:#1c2c21!important;
    font-size:15.2px!important;
    line-height:1.1!important;
    font-weight:875!important;
    letter-spacing:-.02em!important;
    text-shadow:none!important;
    overflow-wrap:anywhere!important;
  }
  .ww569-admin-time{
    display:flex!important;
    align-items:center!important;
    gap:5px!important;
    margin-top:5px!important;
    color:#667369!important;
    font-size:10.3px!important;
    line-height:1!important;
    font-weight:750!important;
  }
  .ww569-admin-time svg{
    width:11px!important;
    height:11px!important;
    stroke:var(--solid)!important;
    stroke-width:2.25!important;
  }
  .ww569-job-state,
  .ww569-response-summary{
    flex:0 0 auto!important;
    display:inline-flex!important;
    align-items:center!important;
    min-height:18px!important;
    padding:0 6px!important;
    border-radius:999px!important;
    background:#eef2ec!important;
    border:1px solid #dce3da!important;
    color:#68736a!important;
    font-size:7.2px!important;
    line-height:18px!important;
    font-weight:850!important;
    letter-spacing:.01em!important;
    text-transform:none!important;
  }
  .ww569-job-state.is-draft{
    background:#f5f0e7!important;
    border-color:#e7dccb!important;
    color:#775f3f!important;
  }
  .ww569-response-summary.has-declined{
    background:#f9efed!important;
    border-color:#ecd7d3!important;
    color:#91534c!important;
  }

  .ww569-card-chevron{
    grid-column:3!important;
    grid-row:1!important;
    width:29px!important;
    height:29px!important;
    min-width:29px!important;
    border-radius:9px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#f1f4ef!important;
    border:1px solid #e1e6df!important;
    color:#657168!important;
    box-shadow:none!important;
    transform:rotate(180deg)!important;
  }
  .ww569-card-chevron svg{width:13px!important;height:13px!important;stroke:currentColor!important;}

  .ww569-assigned-row{
    grid-column:2 / -1!important;
    grid-row:2!important;
    min-width:0!important;
    display:flex!important;
    align-items:flex-start!important;
    gap:7px!important;
    margin:0!important;
    padding:0!important;
  }
  .ww569-assigned-label{
    flex:0 0 auto!important;
    padding-top:6px!important;
    color:#8a948b!important;
    font-size:7.2px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:.075em!important;
    text-transform:uppercase!important;
  }
  .ww569-people{
    min-width:0!important;
    flex:1 1 auto!important;
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:5px!important;
  }
  .ww569-person-chip{
    max-width:100%!important;
    min-height:25px!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:5px!important;
    padding:2px 6px 2px 3px!important;
    border-radius:999px!important;
    background:#f2f5f1!important;
    border:1px solid #e0e6de!important;
    color:#455449!important;
    box-shadow:none!important;
    white-space:nowrap!important;
  }
  .ww569-person-avatar{
    width:19px!important;
    height:19px!important;
    flex:0 0 19px!important;
    border-radius:50%!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:#e4ebe2!important;
    color:#49604e!important;
    font-size:6.8px!important;
    line-height:1!important;
    font-weight:900!important;
    letter-spacing:-.02em!important;
  }
  .ww569-person-name{
    max-width:92px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    color:#3d4d42!important;
    font-size:9.5px!important;
    line-height:1!important;
    font-weight:800!important;
  }
  .ww569-person-state{
    display:inline-flex!important;
    align-items:center!important;
    gap:2px!important;
    font-size:7px!important;
    line-height:1!important;
    font-weight:820!important;
    font-style:normal!important;
  }
  .ww569-person-state svg{
    width:8px!important;
    height:8px!important;
    stroke:currentColor!important;
    stroke-width:2.4!important;
  }
  .ww569-person-chip.is-accepted{
    background:#f0f6ef!important;
    border-color:#d6e5d6!important;
  }
  .ww569-person-chip.is-accepted .ww569-person-avatar{background:#dfeee0!important;color:#357043!important;}
  .ww569-person-chip.is-accepted .ww569-person-state{color:#397147!important;}
  .ww569-person-chip.is-declined{
    background:#faf1ef!important;
    border-color:#eedbd7!important;
  }
  .ww569-person-chip.is-declined .ww569-person-avatar{background:#f1dfdc!important;color:#96564e!important;}
  .ww569-person-chip.is-declined .ww569-person-state{color:#94554d!important;}
  .ww569-person-chip.is-waiting .ww569-person-state{color:#7a857c!important;}
  .ww569-empty-team{
    min-height:25px!important;
    display:inline-flex!important;
    align-items:center!important;
    color:#7c887f!important;
    font-size:9.4px!important;
    font-weight:740!important;
  }

  /* Never let legacy rejection treatments repaint the new admin card. */
  .roster-mobile .ww569-admin-roster-card.ww546-has-rejection,
  .home-roster-list .ww569-admin-roster-card.ww546-has-rejection,
  .roster-mobile .ww569-admin-roster-card.ww548-has-partial-rejection,
  .home-roster-list .ww569-admin-roster-card.ww548-has-partial-rejection{
    background:linear-gradient(135deg,color-mix(in srgb,var(--solid) 5%,#fcfdfb),#fbfcf9 72%)!important;
    border-color:color-mix(in srgb,var(--solid) 14%,#dce2db)!important;
    color:#1c2c21!important;
    box-shadow:0 5px 15px rgba(23,47,29,.065)!important;
  }

  @media (max-width:390px){
    .roster-mobile .ww569-admin-roster-card,
    .home-roster-list .ww569-admin-roster-card,
    .roster-mobile .ww569-employee-roster-card,
    .home-roster-list .ww569-employee-roster-card{
      margin-left:8px!important;
      margin-right:8px!important;
    }
    .roster-mobile .ww569-admin-roster-card,
    .home-roster-list .ww569-admin-roster-card{
      grid-template-columns:49px minmax(0,1fr) 28px!important;
      column-gap:8px!important;
      padding-left:13px!important;
      padding-right:8px!important;
    }
    .ww569-admin-roster-card .ww569-hours-badge,
    .ww569-admin-roster-card .ww512-hours-badge,
    .ww569-employee-roster-card .ww512-hours-badge{width:49px!important;min-width:49px!important;height:49px!important;}
    .ww569-admin-title h3,.ww569-employee-roster-card .ww512-title-row h3{font-size:14.4px!important;}
    .ww569-person-name{max-width:78px!important;font-size:9px!important;}
    .ww569-person-state{font-size:6.6px!important;}
  }
}

/* ---- app-polish-v570.css ---- */
/* EarthRoster v570 — colourful professional roster cards + clearer work states
   Keeps client/job colour identity prominent without sacrificing readability. */
@media (max-width:1023px){
  /* Stronger client-colour identity, still with a clean readable surface. */
  .roster-mobile .ww569-employee-roster-card,
  .home-roster-list .ww569-employee-roster-card,
  .roster-mobile .ww569-admin-roster-card,
  .home-roster-list .ww569-admin-roster-card{
    border-color:color-mix(in srgb,var(--solid) 32%,#d7ded7)!important;
    background:
      radial-gradient(circle at 94% 8%,color-mix(in srgb,var(--solid) 17%,transparent) 0 30px,transparent 31px),
      linear-gradient(135deg,color-mix(in srgb,var(--solid) 22%,#fff) 0%,color-mix(in srgb,var(--solid) 11%,#fff) 58%,#fbfcf9 100%)!important;
    box-shadow:0 7px 18px color-mix(in srgb,var(--deep) 11%,transparent)!important;
  }
  .roster-mobile .ww569-employee-roster-card::before,
  .home-roster-list .ww569-employee-roster-card::before,
  .roster-mobile .ww569-admin-roster-card::before,
  .home-roster-list .ww569-admin-roster-card::before{
    top:0!important;
    bottom:0!important;
    width:5px!important;
    border-radius:0!important;
    opacity:1!important;
    background:linear-gradient(180deg,var(--solid),var(--deep))!important;
  }

  /* The hours tile is now the strongest colour anchor. */
  .ww569-employee-roster-card .ww512-hours-badge,
  .ww569-admin-roster-card .ww569-hours-badge,
  .ww569-admin-roster-card .ww512-hours-badge{
    background:linear-gradient(145deg,var(--solid),var(--deep))!important;
    border-color:color-mix(in srgb,var(--deep) 58%,transparent)!important;
    box-shadow:0 5px 12px color-mix(in srgb,var(--deep) 20%,transparent)!important;
  }
  .ww569-employee-roster-card .ww512-hours-badge strong,
  .ww569-employee-roster-card .ww512-hours-badge span,
  .ww569-admin-roster-card .ww512-hours-badge strong,
  .ww569-admin-roster-card .ww512-hours-badge span{
    color:#fff!important;
    text-shadow:0 1px 1px rgba(0,0,0,.16)!important;
  }

  .ww569-employee-roster-card .ww512-title-row h3,
  .ww569-admin-title h3{
    color:color-mix(in srgb,var(--deep) 72%,#17261c)!important;
  }
  .ww569-employee-roster-card .ww522-shift-time,
  .ww569-admin-time{color:color-mix(in srgb,var(--deep) 48%,#657168)!important;}

  /* Action/status controls use colour meaning without flooding the card. */
  .ww569-employee-roster-card .ww512-actions .rc-start,
  .ww569-employee-roster-card .ww512-actions .rc-accept{
    background:linear-gradient(145deg,var(--solid),var(--deep))!important;
    color:#fff!important;
    border-color:transparent!important;
    box-shadow:0 4px 10px color-mix(in srgb,var(--deep) 18%,transparent)!important;
  }
  .ww569-employee-roster-card .ww512-actions .rc-start svg,
  .ww569-employee-roster-card .ww512-actions .rc-accept svg{stroke:#fff!important;}
  .ww569-employee-roster-card .ww512-actions .rc-reject{
    background:rgba(255,255,255,.72)!important;
    border-color:rgba(117,90,84,.16)!important;
  }
  .ww569-employee-roster-card .ww512-state-pill.is-accepted{
    background:rgba(255,255,255,.76)!important;
    border-color:color-mix(in srgb,var(--solid) 24%,#d8e0d7)!important;
    color:var(--deep)!important;
  }
  .ww569-employee-roster-card .ww512-state-pill.is-progress,
  .ww569-employee-roster-card .rc-in-progress{
    display:inline-flex!important;
    align-items:center!important;
    gap:4px!important;
    background:#eaf4ff!important;
    border:1px solid #cbdff1!important;
    color:#285979!important;
    border-radius:999px!important;
    font-weight:850!important;
  }
  .ww569-employee-roster-card .rc-in-progress{
    min-height:35px!important;
    height:35px!important;
    padding:0 10px!important;
    border-radius:10px!important;
    font-size:9.8px!important;
  }
  .ww569-employee-roster-card .rc-in-progress svg,
  .ww569-employee-roster-card .ww512-state-pill.is-progress svg{stroke:currentColor!important;}
  .ww569-employee-roster-card .ww512-actions .rc-done{
    background:#edf6ee!important;
    border-color:#cfe2d2!important;
    color:#31633b!important;
  }

  /* Completed still keeps the client colour so past work remains easy to recognise. */
  .roster-mobile .ww569-employee-roster-card.ww570-is-completed,
  .home-roster-list .ww569-employee-roster-card.ww570-is-completed{
    background:
      radial-gradient(circle at 94% 8%,color-mix(in srgb,var(--solid) 12%,transparent) 0 30px,transparent 31px),
      linear-gradient(135deg,color-mix(in srgb,var(--solid) 16%,#fff),color-mix(in srgb,var(--solid) 7%,#fff) 62%,#fbfcf9)!important;
  }
  .roster-mobile .ww569-employee-roster-card.ww570-is-active,
  .home-roster-list .ww569-employee-roster-card.ww570-is-active{
    border-color:color-mix(in srgb,var(--solid) 48%,#d7ded7)!important;
    box-shadow:0 8px 20px color-mix(in srgb,var(--deep) 16%,transparent)!important;
  }

  /* Admin card keeps the job colour while employee response chips remain independent. */
  .ww569-card-chevron{
    background:color-mix(in srgb,var(--solid) 10%,#fff)!important;
    border-color:color-mix(in srgb,var(--solid) 22%,#dfe4df)!important;
    color:var(--deep)!important;
  }
  .ww569-assigned-label{color:color-mix(in srgb,var(--deep) 56%,#7e8b81)!important;}
  .ww569-person-chip{background:rgba(255,255,255,.72)!important;backdrop-filter:blur(3px)!important;}
  .ww569-person-chip.is-progress{
    background:#edf6fc!important;
    border-color:#d0e3ef!important;
  }
  .ww569-person-chip.is-progress .ww569-person-avatar{background:#dbeef8!important;color:#285f7b!important;}
  .ww569-person-chip.is-progress .ww569-person-state{color:#2e6480!important;}
  .ww569-person-chip.is-completed{
    background:#eef7ef!important;
    border-color:#d3e6d6!important;
  }
  .ww569-person-chip.is-completed .ww569-person-avatar{background:#daeedf!important;color:#2f6a3c!important;}
  .ww569-person-chip.is-completed .ww569-person-state{color:#347042!important;}

  /* Prevent old rejection CSS from repainting the whole colourful admin job. */
  .roster-mobile .ww569-admin-roster-card.ww546-has-rejection,
  .home-roster-list .ww569-admin-roster-card.ww546-has-rejection,
  .roster-mobile .ww569-admin-roster-card.ww548-has-partial-rejection,
  .home-roster-list .ww569-admin-roster-card.ww548-has-partial-rejection{
    border-color:color-mix(in srgb,var(--solid) 32%,#d7ded7)!important;
    background:
      radial-gradient(circle at 94% 8%,color-mix(in srgb,var(--solid) 17%,transparent) 0 30px,transparent 31px),
      linear-gradient(135deg,color-mix(in srgb,var(--solid) 22%,#fff) 0%,color-mix(in srgb,var(--solid) 11%,#fff) 58%,#fbfcf9 100%)!important;
    box-shadow:0 7px 18px color-mix(in srgb,var(--deep) 11%,transparent)!important;
  }
}

/* ---- app-polish-v571.css ---- */
/* EarthRoster v571 — one consistent roster card system
   Employee + admin use the same visual hierarchy. Every card always shows assigned staff names. */
@media (max-width:1023px){
  .roster-mobile .ww571-roster-card,
  .home-roster-list .ww571-roster-card{
    position:relative!important;
    display:grid!important;
    grid-template-columns:54px minmax(0,1fr) auto!important;
    grid-template-rows:auto auto!important;
    align-items:center!important;
    column-gap:10px!important;
    row-gap:9px!important;
    min-height:98px!important;
    margin:0 10px 10px!important;
    padding:11px 11px 11px 15px!important;
    border-radius:18px!important;
    overflow:hidden!important;
    isolation:isolate!important;
    border:1px solid color-mix(in srgb,var(--solid) 34%,#d7ded7)!important;
    background:
      radial-gradient(circle at 96% 5%,color-mix(in srgb,var(--solid) 18%,transparent) 0 34px,transparent 35px),
      linear-gradient(135deg,color-mix(in srgb,var(--solid) 25%,#fff) 0%,color-mix(in srgb,var(--solid) 12%,#fff) 58%,#fbfcf9 100%)!important;
    box-shadow:0 7px 18px color-mix(in srgb,var(--deep) 12%,transparent)!important;
    color:#1b2b20!important;
  }
  .roster-mobile .ww571-roster-card::before,
  .home-roster-list .ww571-roster-card::before{
    content:""!important;
    position:absolute!important;
    left:0!important;
    top:0!important;
    bottom:0!important;
    width:5px!important;
    border-radius:0!important;
    background:linear-gradient(180deg,var(--solid),var(--deep))!important;
    opacity:1!important;
    z-index:0!important;
  }
  .ww571-roster-card>*{position:relative!important;z-index:1!important;}

  .ww571-roster-card .ww512-hours-badge,
  .ww571-roster-card .ww569-hours-badge{
    grid-column:1!important;
    grid-row:1!important;
    width:54px!important;
    min-width:54px!important;
    height:54px!important;
    margin:0!important;
    border-radius:14px!important;
    background:linear-gradient(145deg,var(--solid),var(--deep))!important;
    border:1px solid color-mix(in srgb,var(--deep) 55%,transparent)!important;
    box-shadow:0 5px 12px color-mix(in srgb,var(--deep) 20%,transparent)!important;
  }
  .ww571-roster-card .ww512-hours-badge strong{color:#fff!important;font-size:15.5px!important;line-height:1!important;font-weight:900!important;text-shadow:0 1px 1px rgba(0,0,0,.14)!important;}
  .ww571-roster-card .ww512-hours-badge span{color:rgba(255,255,255,.9)!important;font-size:6px!important;line-height:1.03!important;letter-spacing:.07em!important;text-transform:uppercase!important;text-align:center!important;text-shadow:0 1px 1px rgba(0,0,0,.12)!important;}

  .ww571-card-copy{grid-column:2!important;grid-row:1!important;min-width:0!important;align-self:center!important;}
  .ww571-title-row{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:5px 6px!important;min-width:0!important;}
  .ww571-title-row h3{margin:0!important;min-width:0!important;max-width:100%!important;color:color-mix(in srgb,var(--deep) 74%,#17261c)!important;font-size:15.5px!important;line-height:1.08!important;font-weight:900!important;letter-spacing:-.022em!important;text-shadow:none!important;overflow-wrap:anywhere!important;}
  .ww571-shift-time{display:flex!important;align-items:center!important;gap:5px!important;margin-top:5px!important;color:color-mix(in srgb,var(--deep) 48%,#657168)!important;font-size:10.4px!important;line-height:1!important;font-weight:760!important;}
  .ww571-shift-time svg{width:11px!important;height:11px!important;stroke:var(--solid)!important;stroke-width:2.3!important;}

  /* Every card, employee or admin, uses the same staff row. */
  .ww571-staff-row{
    grid-column:2 / -1!important;
    grid-row:2!important;
    min-width:0!important;
    display:flex!important;
    align-items:flex-start!important;
    gap:7px!important;
    margin:0!important;
    padding:0!important;
  }
  .ww571-staff-label{
    flex:0 0 auto!important;
    padding-top:7px!important;
    color:color-mix(in srgb,var(--deep) 53%,#829087)!important;
    font-size:7px!important;
    line-height:1!important;
    font-weight:900!important;
    letter-spacing:.075em!important;
    text-transform:uppercase!important;
  }
  .ww571-people{min-width:0!important;flex:1 1 auto!important;display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:5px!important;}
  .ww571-person-chip{
    max-width:100%!important;
    min-height:27px!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:5px!important;
    padding:3px 7px 3px 3px!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.76)!important;
    border:1px solid rgba(50,70,55,.11)!important;
    box-shadow:0 1px 2px rgba(22,42,27,.025)!important;
    white-space:nowrap!important;
    backdrop-filter:blur(2px)!important;
  }
  .ww571-person-avatar{width:20px!important;height:20px!important;flex:0 0 20px!important;border-radius:50%!important;background:color-mix(in srgb,var(--solid) 16%,#edf2ec)!important;color:var(--deep)!important;font-size:6.8px!important;font-weight:900!important;}
  .ww571-person-name{max-width:126px!important;overflow:hidden!important;text-overflow:ellipsis!important;color:#35463b!important;font-size:9.4px!important;line-height:1!important;font-weight:820!important;}
  .ww571-person-state{display:inline-flex!important;align-items:center!important;gap:2px!important;padding-left:1px!important;font-size:6.8px!important;line-height:1!important;font-weight:850!important;}
  .ww571-person-state svg{width:8px!important;height:8px!important;stroke:currentColor!important;stroke-width:2.5!important;}
  .ww571-you{display:inline-flex!important;align-items:center!important;min-height:16px!important;padding:0 5px!important;border-radius:999px!important;background:color-mix(in srgb,var(--solid) 11%,#eef3ed)!important;color:var(--deep)!important;font-size:6.5px!important;line-height:16px!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:.04em!important;}
  .ww571-person-chip.is-self{border-color:color-mix(in srgb,var(--solid) 28%,#dce3dc)!important;background:rgba(255,255,255,.88)!important;}
  .ww571-person-chip.is-accepted{background:#f0f7ef!important;border-color:#d5e7d5!important;}
  .ww571-person-chip.is-accepted .ww571-person-state{color:#397147!important;}
  .ww571-person-chip.is-progress{background:#eef7fc!important;border-color:#d2e5ef!important;}
  .ww571-person-chip.is-progress .ww571-person-state{color:#2e6480!important;}
  .ww571-person-chip.is-completed{background:#eef7ef!important;border-color:#d3e6d6!important;}
  .ww571-person-chip.is-completed .ww571-person-state{color:#347042!important;}
  .ww571-person-chip.is-declined{background:#faf1ef!important;border-color:#eedbd7!important;}
  .ww571-person-chip.is-declined .ww571-person-state{color:#94554d!important;}
  .ww571-person-chip.is-waiting .ww571-person-state{color:#7a857c!important;}

  /* Employee actions sit in the same top-right position as the admin chevron. */
  .ww571-employee-roster-card .ww571-actions{grid-column:3!important;grid-row:1!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:5px!important;min-width:0!important;}
  .ww571-employee-roster-card .ww571-actions .rc-act,
  .ww571-employee-roster-card .ww571-actions .rc-emp-state{min-height:35px!important;height:35px!important;border-radius:10px!important;padding:0 10px!important;font-size:9.8px!important;font-weight:850!important;white-space:nowrap!important;}
  /* Response needed needs both choices to be fully visible; place them on their own row. */
  .ww571-employee-roster-card .ww571-actions:has(.rc-accept){grid-column:2 / -1!important;grid-row:3!important;justify-content:flex-end!important;margin-top:-1px!important;}
  .ww571-employee-roster-card:has(.ww571-actions .rc-accept){grid-template-rows:auto auto auto!important;}
  .ww571-employee-roster-card .ww571-actions .rc-accept{min-width:76px!important;}
  .ww571-employee-roster-card .ww571-actions .rc-reject{min-width:76px!important;}

  .ww571-card-chevron{grid-column:3!important;grid-row:1!important;width:30px!important;height:30px!important;min-width:30px!important;border-radius:9px!important;background:rgba(255,255,255,.62)!important;border:1px solid color-mix(in srgb,var(--solid) 18%,#dfe4df)!important;color:var(--deep)!important;}

  /* Remove legacy employee "Working with" lines completely; staff is now always shown in the consistent row above. */
  .ww571-roster-card .ww569-coworker-line,.ww571-roster-card .ww568-coworker-line{display:none!important;}

  @media (max-width:390px){
    .roster-mobile .ww571-roster-card,.home-roster-list .ww571-roster-card{grid-template-columns:51px minmax(0,1fr) auto!important;column-gap:8px!important;margin-left:8px!important;margin-right:8px!important;padding-left:13px!important;padding-right:9px!important;}
    .ww571-roster-card .ww512-hours-badge,.ww571-roster-card .ww569-hours-badge{width:51px!important;min-width:51px!important;height:51px!important;}
    .ww571-title-row h3{font-size:14.6px!important;}
    .ww571-person-name{max-width:104px!important;font-size:9px!important;}
    .ww571-staff-label{font-size:6.6px!important;}
    .ww571-employee-roster-card .ww571-actions .rc-act,.ww571-employee-roster-card .ww571-actions .rc-emp-state{padding-left:9px!important;padding-right:9px!important;font-size:9.4px!important;}
  }
}

/* ---- app-polish-v572.css ---- */
/* EarthRoster v572 — compact colourful roster cards
   One card language across admin + employee. Names stay visible without bulky stacked chips. */
@media (max-width:1023px){
  .roster-mobile .ww571-roster-card,
  .home-roster-list .ww571-roster-card{
    display:grid!important;
    grid-template-columns:48px minmax(0,1fr) auto!important;
    grid-template-rows:auto auto!important;
    align-items:center!important;
    column-gap:10px!important;
    row-gap:6px!important;
    min-height:0!important;
    margin:0 10px 8px!important;
    padding:10px 10px 9px 14px!important;
    border-radius:16px!important;
    overflow:hidden!important;
    background:
      radial-gradient(circle at 100% 0,color-mix(in srgb,var(--solid) 16%,transparent) 0 31px,transparent 32px),
      linear-gradient(132deg,color-mix(in srgb,var(--solid) 27%,#fff) 0%,color-mix(in srgb,var(--solid) 13%,#fff) 58%,#fcfcfa 100%)!important;
    border:1px solid color-mix(in srgb,var(--solid) 37%,#d7ddd7)!important;
    box-shadow:0 5px 13px rgba(24,48,31,.085)!important;
  }
  .roster-mobile .ww571-roster-card::before,
  .home-roster-list .ww571-roster-card::before{width:4px!important;background:linear-gradient(180deg,var(--solid),var(--deep))!important;}

  .ww571-roster-card .ww512-hours-badge,
  .ww571-roster-card .ww569-hours-badge{
    grid-column:1!important;grid-row:1!important;
    width:48px!important;min-width:48px!important;height:48px!important;
    margin:0!important;border-radius:13px!important;
    background:linear-gradient(145deg,var(--solid),var(--deep))!important;
    box-shadow:0 4px 9px color-mix(in srgb,var(--deep) 18%,transparent)!important;
  }
  .ww571-roster-card .ww512-hours-badge strong{font-size:15px!important;line-height:1!important;color:#fff!important;font-weight:900!important;}
  .ww571-roster-card .ww512-hours-badge span{font-size:6.3px!important;line-height:1!important;letter-spacing:.08em!important;color:rgba(255,255,255,.85)!important;text-transform:uppercase!important;}

  .ww571-card-copy{grid-column:2!important;grid-row:1!important;align-self:center!important;min-width:0!important;}
  .ww571-title-row{display:block!important;min-width:0!important;}
  .ww571-title-row h3{
    margin:0!important;color:color-mix(in srgb,var(--deep) 76%,#17261c)!important;
    font-size:15px!important;line-height:1.08!important;font-weight:900!important;letter-spacing:-.025em!important;
    overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
  }
  .ww571-shift-time{margin-top:4px!important;gap:4px!important;font-size:10px!important;line-height:1!important;font-weight:760!important;color:color-mix(in srgb,var(--deep) 48%,#68736b)!important;}
  .ww571-shift-time svg{width:10px!important;height:10px!important;}

  /* Compact shared staff line: no "You", no bulky stacked employee pills. */
  .ww571-staff-row{
    grid-column:2 / -1!important;grid-row:2!important;
    display:flex!important;align-items:center!important;gap:6px!important;
    min-width:0!important;margin:0!important;padding:0!important;
  }
  .ww571-staff-label{
    flex:0 0 auto!important;padding:0!important;
    font-size:6.6px!important;line-height:18px!important;font-weight:900!important;letter-spacing:.08em!important;text-transform:uppercase!important;
    color:color-mix(in srgb,var(--deep) 50%,#7c887f)!important;
  }
  .ww571-people{
    display:flex!important;flex:1 1 auto!important;min-width:0!important;
    flex-wrap:wrap!important;align-items:center!important;gap:3px 8px!important;
  }
  .ww571-person-chip.ww572-person{
    display:inline-flex!important;align-items:center!important;gap:3px!important;
    min-height:18px!important;max-width:none!important;padding:0!important;
    border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;
    color:#33453a!important;white-space:nowrap!important;
  }
  .ww571-person-chip.ww572-person:not(:last-child)::after{
    content:"·"!important;margin-left:4px!important;color:color-mix(in srgb,var(--deep) 35%,#a3aaa4)!important;font-weight:900!important;
  }
  .ww572-person-avatar{width:17px!important;height:17px!important;flex:0 0 17px!important;font-size:5.9px!important;background:color-mix(in srgb,var(--solid) 15%,#edf3ed)!important;color:var(--deep)!important;}
  .ww572-person-name{max-width:102px!important;font-size:8.8px!important;line-height:1!important;font-weight:820!important;color:#35463b!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .ww571-you{display:none!important;}

  /* Admin: status stays attached to the person, but reduced to a small inline tag. */
  .ww572-person-state{
    display:inline-flex!important;align-items:center!important;gap:2px!important;
    min-height:15px!important;padding:0 4px!important;border-radius:999px!important;
    font-size:6.2px!important;line-height:15px!important;font-weight:850!important;
    white-space:nowrap!important;
  }
  .ww572-person-state svg{width:7px!important;height:7px!important;stroke-width:2.5!important;}
  .ww572-person.is-accepted .ww572-person-state{background:#e8f4e8!important;color:#397146!important;}
  .ww572-person.is-progress .ww572-person-state{background:#e7f2f8!important;color:#2d6682!important;}
  .ww572-person.is-completed .ww572-person-state{background:#e5f3e7!important;color:#2f6e3d!important;}
  .ww572-person.is-declined .ww572-person-state{background:#f9e9e6!important;color:#985047!important;}
  .ww572-person.is-waiting .ww572-person-state{background:#f1f1ed!important;color:#7b837d!important;}

  /* Right-side action/state is the single employee status location. */
  .ww571-employee-roster-card .ww571-actions{
    grid-column:3!important;grid-row:1!important;
    display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:4px!important;
    min-width:0!important;margin:0!important;
  }
  .ww571-employee-roster-card .ww571-actions:has(.rc-accept){
    grid-column:3!important;grid-row:1!important;justify-content:flex-end!important;margin:0!important;flex-direction:column!important;gap:3px!important;
  }
  .ww571-employee-roster-card:has(.ww571-actions .rc-accept){grid-template-rows:auto auto!important;}
  .ww571-employee-roster-card .ww571-actions .rc-act,
  .ww571-employee-roster-card .ww571-actions .rc-emp-state{
    min-height:29px!important;height:29px!important;padding:0 8px!important;border-radius:9px!important;font-size:8.5px!important;font-weight:850!important;white-space:nowrap!important;
  }
  .ww571-employee-roster-card .ww571-actions .rc-accept,
  .ww571-employee-roster-card .ww571-actions .rc-reject{min-width:60px!important;width:60px!important;height:27px!important;min-height:27px!important;font-size:8px!important;padding:0 5px!important;}
  .ww571-employee-roster-card .ww571-actions .rc-start{min-width:78px!important;}
  .ww571-employee-roster-card .ww571-actions .rc-declined{min-width:68px!important;}

  .ww571-card-chevron{width:28px!important;height:28px!important;min-width:28px!important;border-radius:8px!important;}

  /* Completed/declined remain restrained; colour belongs to the job card, not a warning block. */
  .ww571-roster-card.ww570-is-completed{opacity:1!important;}
  .ww571-roster-card.is-rejected{filter:none!important;}

  @media (max-width:390px){
    .roster-mobile .ww571-roster-card,.home-roster-list .ww571-roster-card{grid-template-columns:46px minmax(0,1fr) auto!important;column-gap:8px!important;margin-left:8px!important;margin-right:8px!important;padding-left:12px!important;padding-right:8px!important;}
    .ww571-roster-card .ww512-hours-badge,.ww571-roster-card .ww569-hours-badge{width:46px!important;min-width:46px!important;height:46px!important;}
    .ww571-title-row h3{font-size:14.8px!important;}
    .ww571-shift-time{font-size:9.5px!important;}
    .ww571-staff-label{font-size:6.2px!important;}
    .ww572-person-name{max-width:88px!important;font-size:8.3px!important;}
    .ww572-person-state{font-size:5.8px!important;padding:0 3px!important;}
  }
}

/* Desktop gets the same compact staff language without changing the wider roster layout. */
@media (min-width:1024px){
  .ww571-roster-card .ww571-you{display:none!important;}
  .ww571-roster-card .ww571-person-chip.ww572-person{gap:5px!important;}
}

/* v572 final admin compaction: three-person teams stay on one clean line. */
@media (max-width:1023px){
  .ww571-admin-roster-card .ww571-staff-row{gap:5px!important;}
  .ww571-admin-roster-card .ww571-people{flex-wrap:nowrap!important;gap:4px!important;overflow:visible!important;}
  .ww571-admin-roster-card .ww571-person-chip.ww572-person{gap:2px!important;min-width:0!important;flex:0 1 auto!important;}
  .ww571-admin-roster-card .ww572-person-avatar{display:none!important;}
  .ww571-admin-roster-card .ww572-person-name{max-width:76px!important;font-size:8.2px!important;}
  .ww571-admin-roster-card .ww572-person-state{
    width:14px!important;height:14px!important;min-height:14px!important;min-width:14px!important;
    padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
  }
  .ww571-admin-roster-card .ww572-person-state span{display:none!important;}
  .ww571-admin-roster-card .ww572-person-state svg{width:7px!important;height:7px!important;}
  .ww571-admin-roster-card .ww572-person.is-waiting .ww572-person-state::before{
    content:""!important;width:5px!important;height:5px!important;border-radius:50%!important;background:#8a928c!important;
  }
  .ww571-admin-roster-card .ww571-person-chip.ww572-person:not(:last-child)::after{margin-left:2px!important;}
  @media (max-width:390px){
    .ww571-admin-roster-card .ww572-person-name{max-width:68px!important;font-size:7.9px!important;}
    .ww571-admin-roster-card .ww571-staff-label{font-size:5.9px!important;}
  }
}

/* ---- app-polish-v573.css ---- */
/* EarthRoster v573 — four-person roster layout
   1–3 staff stay on one compact line. Exactly 4 staff switch to a balanced 2×2 grid.
   Same responsive structure is used on employee and admin roster cards. */
@media (max-width:1023px){
  .ww571-roster-card .ww571-staff-row[data-staff-count="4"]{
    align-items:flex-start!important;
    gap:7px!important;
    padding-top:1px!important;
  }
  .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-staff-label{
    line-height:19px!important;
  }
  .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:19px!important;
    gap:3px 10px!important;
    flex:1 1 auto!important;
    min-width:0!important;
    overflow:visible!important;
  }
  .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person{
    display:flex!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    gap:3px!important;
    overflow:hidden!important;
  }
  .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person::after{
    display:none!important;
    content:none!important;
  }
  .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-name{
    flex:1 1 auto!important;
    min-width:0!important;
    max-width:none!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  /* Employee cards keep tiny avatars in the 2×2 team grid for quick recognition. */
  .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-avatar{
    display:inline-flex!important;
    width:16px!important;
    height:16px!important;
    flex:0 0 16px!important;
    font-size:5.6px!important;
  }

  /* Admin: status stays with each name without creating tall status pills. */
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people{
    flex-wrap:unset!important;
    gap:3px 8px!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-name{
    font-size:8px!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-state{
    flex:0 0 14px!important;
  }

  /* Four people need only one extra compact row, not a large stacked card. */
  .roster-mobile .ww571-roster-card:has(.ww571-staff-row[data-staff-count="4"]),
  .home-roster-list .ww571-roster-card:has(.ww571-staff-row[data-staff-count="4"]){
    padding-bottom:10px!important;
  }

  @media (max-width:390px){
    .ww571-roster-card .ww571-staff-row[data-staff-count="4"]{gap:5px!important;}
    .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people{gap:3px 6px!important;}
    .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-name{font-size:7.8px!important;}
    .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-avatar{width:15px!important;height:15px!important;flex-basis:15px!important;}
  }
}

@media (min-width:1024px){
  .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:5px 16px!important;
    max-width:460px!important;
  }
  .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person::after{display:none!important;content:none!important;}
}

/* ---- app-polish-v574.css ---- */
/* EarthRoster v574 — compact 4-person employee response card
   Keeps the real v573 colourful card language, but prevents a four-person
   Awaiting shift from becoming oversized. No "You" or "Your hours" labels. */
@media (max-width:1023px){
  /* Four-person employee team: compact 2×2 names, no decorative avatar bubbles. */
  .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"]{
    grid-column:2 / -1!important;
    display:grid!important;
    grid-template-columns:52px minmax(0,1fr)!important;
    align-items:start!important;
    gap:4px 7px!important;
    padding-top:0!important;
  }
  .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-staff-label{
    line-height:18px!important;
    font-size:6.4px!important;
    letter-spacing:.08em!important;
  }
  .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:18px!important;
    gap:2px 12px!important;
    min-width:0!important;
    width:100%!important;
  }
  .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:18px!important;
    display:flex!important;
    align-items:center!important;
    gap:0!important;
    overflow:hidden!important;
  }
  .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-avatar{
    display:none!important;
  }
  .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person::before{
    content:""!important;
    width:4px!important;
    height:4px!important;
    flex:0 0 4px!important;
    margin-right:5px!important;
    border-radius:50%!important;
    background:color-mix(in srgb,var(--solid) 82%,#fff)!important;
    opacity:.9!important;
  }
  .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person::after{
    display:none!important;
    content:none!important;
  }
  .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-name{
    display:block!important;
    min-width:0!important;
    max-width:none!important;
    font-size:8.8px!important;
    font-weight:840!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  /* Response needed: two small actions sit side-by-side, not stacked. */
  .ww571-employee-roster-card .ww571-actions:has(.rc-accept){
    grid-column:3!important;
    grid-row:1!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:4px!important;
    margin:0!important;
    align-self:center!important;
  }
  .ww571-employee-roster-card:has(.ww571-actions .rc-accept){
    grid-template-columns:46px minmax(0,1fr) auto!important;
    grid-template-rows:auto auto!important;
    row-gap:5px!important;
    padding-top:9px!important;
    padding-bottom:9px!important;
  }
  .ww571-employee-roster-card .ww571-actions .rc-accept,
  .ww571-employee-roster-card .ww571-actions .rc-reject{
    min-width:0!important;
    width:auto!important;
    height:30px!important;
    min-height:30px!important;
    padding:0 9px!important;
    border-radius:9px!important;
    font-size:8.4px!important;
    line-height:1!important;
    font-weight:880!important;
    box-shadow:none!important;
  }
  .ww571-employee-roster-card .ww571-actions .rc-reject svg,
  .ww571-employee-roster-card .ww571-actions .rc-accept svg{
    width:10px!important;
    height:10px!important;
  }

  /* Keep the title usable beside both buttons. */
  .ww571-employee-roster-card:has(.ww571-actions .rc-accept) .ww571-card-copy{
    min-width:92px!important;
  }
  .ww571-employee-roster-card:has(.ww571-actions .rc-accept) .ww571-title-row h3{
    font-size:14px!important;
    max-width:150px!important;
  }
  .ww571-employee-roster-card:has(.ww571-actions .rc-accept) .ww571-shift-time{
    font-size:9.3px!important;
  }

  @media (max-width:390px){
    .ww571-employee-roster-card:has(.ww571-actions .rc-accept){
      grid-template-columns:44px minmax(0,1fr) auto!important;
      column-gap:7px!important;
    }
    .ww571-employee-roster-card .ww571-actions .rc-accept,
    .ww571-employee-roster-card .ww571-actions .rc-reject{
      height:28px!important;
      min-height:28px!important;
      padding:0 7px!important;
      font-size:7.8px!important;
    }
    .ww571-employee-roster-card:has(.ww571-actions .rc-accept) .ww571-title-row h3{
      font-size:13.4px!important;
      max-width:118px!important;
    }
    .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"]{
      grid-template-columns:46px minmax(0,1fr)!important;
      gap:3px 5px!important;
    }
    .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people{
      gap:2px 8px!important;
    }
    .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-name{
      font-size:8.3px!important;
    }
  }
}

/* v574 final polish: the shared staff label stays one clean word. */
@media (max-width:1023px){
  .ww571-roster-card .ww571-staff-label{
    white-space:nowrap!important;
  }
  .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"]{
    grid-template-columns:31px minmax(0,1fr)!important;
    gap:3px 7px!important;
  }
  .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-staff-label{
    font-size:6.6px!important;
    line-height:18px!important;
  }
  @media (max-width:390px){
    .ww571-employee-roster-card .ww571-staff-row[data-staff-count="4"]{
      grid-template-columns:29px minmax(0,1fr)!important;
    }
  }
}

/* ---- app-polish-v575.css ---- */
/* EarthRoster v575 — admin four-person status pairing
   Keep each employee name and response as one compact visual unit so a status
   can never look detached or associated with the neighbouring employee. */
@media (max-width:1023px){
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"]{
    grid-template-columns:31px minmax(0,1fr)!important;
    gap:3px 7px!important;
    align-items:start!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:22px!important;
    gap:4px 8px!important;
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    justify-self:start!important;
    width:max-content!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:19px!important;
    padding:1px 5px 1px 6px!important;
    gap:4px!important;
    border-radius:999px!important;
    border:1px solid rgba(39,67,47,.10)!important;
    background:rgba(255,255,255,.58)!important;
    box-shadow:0 1px 2px rgba(31,52,37,.04)!important;
    overflow:hidden!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person::after{
    display:none!important;
    content:none!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-avatar{
    display:none!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-name{
    flex:0 1 auto!important;
    min-width:0!important;
    max-width:86px!important;
    font-size:8.2px!important;
    line-height:17px!important;
    font-weight:840!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-state{
    flex:0 0 12px!important;
    width:12px!important;
    height:12px!important;
    min-width:12px!important;
    min-height:12px!important;
    padding:0!important;
    margin:0!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    border-radius:50%!important;
    background:transparent!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-state span{display:none!important;}
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-state svg{
    width:8px!important;
    height:8px!important;
    stroke-width:2.7!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-accepted{
    background:rgba(239,248,240,.82)!important;
    border-color:rgba(55,113,70,.13)!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-declined{
    background:rgba(251,240,238,.86)!important;
    border-color:rgba(152,80,71,.13)!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-waiting{
    background:rgba(246,247,244,.82)!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-progress{
    background:rgba(237,246,251,.86)!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-completed{
    background:rgba(236,247,239,.86)!important;
  }
  @media (max-width:390px){
    .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people{gap:4px 6px!important;}
    .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-name{max-width:76px!important;font-size:7.9px!important;}
    .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person{padding-left:5px!important;padding-right:4px!important;gap:3px!important;}
  }
}

@media (min-width:1024px){
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person{
    width:max-content!important;
    max-width:100%!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:5px!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-name{flex:0 1 auto!important;}
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-state{flex:0 0 auto!important;}
}

/* ---- app-polish-v576.css ---- */
/* EarthRoster v576 — plain staff names + inline response text
   Removes outlined/bubble treatment from admin staff. Each person is shown as
   simple roster typography with their response immediately beside their name. */
@media (max-width:1023px){
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"]{
    grid-template-columns:31px minmax(0,1fr)!important;
    gap:3px 7px!important;
    align-items:start!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:minmax(18px,auto)!important;
    gap:3px 10px!important;
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:18px!important;
    padding:0!important;
    gap:4px!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    overflow:visible!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person::before,
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person::after{
    display:none!important;
    content:none!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-avatar{
    display:none!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-name{
    flex:0 1 auto!important;
    min-width:0!important;
    max-width:76px!important;
    font-size:8.3px!important;
    line-height:18px!important;
    font-weight:850!important;
    color:#314238!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-state{
    flex:0 0 auto!important;
    width:auto!important;
    height:auto!important;
    min-width:0!important;
    min-height:0!important;
    padding:0!important;
    margin:0!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:2px!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    line-height:1!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-state span{
    display:inline!important;
    font-size:6.4px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:0!important;
    white-space:nowrap!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-state svg{
    width:7px!important;
    height:7px!important;
    flex:0 0 7px!important;
    stroke-width:2.5!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-accepted,
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-declined,
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-waiting,
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-progress,
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-completed{
    background:transparent!important;
    border:0!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-accepted .ww572-person-state{color:#3f764b!important;}
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-declined .ww572-person-state{color:#9b5048!important;}
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-waiting .ww572-person-state{color:#7a837d!important;}
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-progress .ww572-person-state{color:#326981!important;}
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-completed .ww572-person-state{color:#347342!important;}

  @media (max-width:390px){
    .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people{gap:3px 6px!important;}
    .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-name{max-width:67px!important;font-size:8px!important;}
    .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-state span{font-size:6px!important;}
  }
}

@media (min-width:1024px){
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-person-chip.ww572-person{
    border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;gap:5px!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-state{
    border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;
  }
  .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person-state span{display:inline!important;}
}

/* ---- app-polish-v577.css ---- */
/* EarthRoster v577 roster cards — mature colourful split-card design.
   Scope intentionally limited to roster cards only. */
@media (max-width:1023px){
  .roster-mobile .ww571-roster-card,
  .home-roster-list .ww571-roster-card{
    position:relative!important;
    display:grid!important;
    grid-template-columns:58px minmax(0,1fr) 38px!important;
    grid-template-rows:auto auto!important;
    column-gap:12px!important;
    row-gap:0!important;
    width:100%!important;
    min-height:124px!important;
    margin:0 0 12px!important;
    padding:0!important;
    overflow:hidden!important;
    border-radius:18px!important;
    border:1px solid color-mix(in srgb,var(--solid,#2e7b43) 36%,#ffffff 64%)!important;
    background:linear-gradient(135deg,color-mix(in srgb,var(--solid,#2e7b43) 94%,#ffffff 6%) 0%,var(--deep,#1d542d) 100%)!important;
    box-shadow:0 10px 24px rgba(27,61,37,.14),0 2px 5px rgba(27,61,37,.08)!important;
    transform:none!important;
  }
  .roster-mobile .ww571-roster-card::before,
  .home-roster-list .ww571-roster-card::before{
    content:""!important;position:absolute!important;inset:0 0 auto!important;height:72px!important;pointer-events:none!important;
    background:radial-gradient(circle at 92% -30%,rgba(255,255,255,.26),transparent 46%),linear-gradient(135deg,rgba(255,255,255,.08),transparent 50%)!important;
    opacity:1!important;
  }
  .roster-mobile .ww571-roster-card .ww512-hours-badge,
  .home-roster-list .ww571-roster-card .ww512-hours-badge{
    grid-column:1!important;grid-row:1!important;align-self:center!important;justify-self:center!important;z-index:1!important;
    width:48px!important;height:48px!important;min-width:48px!important;margin:12px 0 10px 10px!important;padding:0!important;
    border-radius:13px!important;border:1px solid rgba(255,255,255,.28)!important;
    background:rgba(10,42,22,.22)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.14)!important;color:#fff!important;
    display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:1px!important;
  }
  .roster-mobile .ww571-roster-card .ww512-hours-badge strong,
  .home-roster-list .ww571-roster-card .ww512-hours-badge strong{
    font-size:17px!important;line-height:1!important;font-weight:900!important;letter-spacing:-.03em!important;color:#fff!important;
  }
  .roster-mobile .ww571-roster-card .ww512-hours-badge span,
  .home-roster-list .ww571-roster-card .ww512-hours-badge span{
    font-size:7.2px!important;line-height:1.1!important;font-weight:850!important;letter-spacing:.09em!important;text-transform:uppercase!important;color:rgba(255,255,255,.72)!important;
  }
  .roster-mobile .ww571-roster-card .ww571-card-copy,
  .home-roster-list .ww571-roster-card .ww571-card-copy{
    grid-column:2!important;grid-row:1!important;align-self:center!important;z-index:1!important;min-width:0!important;margin:0!important;padding:12px 0 10px!important;
  }
  .roster-mobile .ww571-roster-card .ww571-title-row,
  .home-roster-list .ww571-roster-card .ww571-title-row{display:flex!important;align-items:center!important;min-width:0!important;margin:0 0 3px!important;}
  .roster-mobile .ww571-roster-card .ww571-title-row h3,
  .home-roster-list .ww571-roster-card .ww571-title-row h3{
    margin:0!important;max-width:100%!important;font-size:15.5px!important;line-height:1.1!important;font-weight:900!important;letter-spacing:-.02em!important;color:#fff!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-shadow:0 1px 1px rgba(0,0,0,.08)!important;
  }
  .roster-mobile .ww571-roster-card .ww571-shift-time,
  .home-roster-list .ww571-roster-card .ww571-shift-time{
    display:flex!important;align-items:center!important;gap:4px!important;margin:0!important;font-size:11.1px!important;line-height:1!important;font-weight:750!important;color:rgba(255,255,255,.83)!important;
  }
  .roster-mobile .ww571-roster-card .ww571-shift-time svg,
  .home-roster-list .ww571-roster-card .ww571-shift-time svg{width:12px!important;height:12px!important;stroke:currentColor!important;}
  .roster-mobile .ww571-roster-card .ww571-card-chevron,
  .home-roster-list .ww571-roster-card .ww571-card-chevron{
    grid-column:3!important;grid-row:1!important;align-self:center!important;justify-self:center!important;z-index:1!important;
    width:32px!important;height:36px!important;margin:0 8px 0 0!important;border-radius:11px!important;border:1px solid rgba(255,255,255,.25)!important;background:rgba(255,255,255,.12)!important;color:#fff!important;display:flex!important;align-items:center!important;justify-content:center!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important;
  }
  .roster-mobile .ww571-roster-card .ww571-card-chevron svg,
  .home-roster-list .ww571-roster-card .ww571-card-chevron svg{width:15px!important;height:15px!important;transform:none!important;stroke-width:2.2!important;}

  .roster-mobile .ww571-roster-card .ww571-staff-row,
  .home-roster-list .ww571-roster-card .ww571-staff-row{
    grid-column:1 / -1!important;grid-row:2!important;position:relative!important;z-index:1!important;
    display:grid!important;grid-template-columns:43px minmax(0,1fr)!important;align-items:start!important;gap:0 8px!important;
    width:100%!important;min-width:0!important;margin:0!important;padding:10px 12px 11px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(248,251,246,.98))!important;border-top:1px solid rgba(255,255,255,.42)!important;
  }
  .roster-mobile .ww571-roster-card .ww571-staff-label,
  .home-roster-list .ww571-roster-card .ww571-staff-label{
    display:block!important;margin:2px 0 0!important;padding:0!important;font-size:8px!important;line-height:1.2!important;font-weight:900!important;letter-spacing:.13em!important;text-transform:uppercase!important;color:#7b887f!important;white-space:nowrap!important;
  }
  .roster-mobile .ww571-roster-card .ww571-people,
  .home-roster-list .ww571-roster-card .ww571-people{
    display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:5px 16px!important;width:100%!important;min-width:0!important;margin:0!important;padding:0!important;
  }
  .roster-mobile .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people,
  .home-roster-list .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people{
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:20px!important;gap:3px 14px!important;
  }
  .roster-mobile .ww571-roster-card .ww571-person-chip,
  .home-roster-list .ww571-roster-card .ww571-person-chip{
    display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;gap:5px!important;min-width:0!important;width:auto!important;max-width:100%!important;height:20px!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important;color:#27382e!important;
  }
  .roster-mobile .ww571-roster-card .ww571-person-chip::before,
  .roster-mobile .ww571-roster-card .ww571-person-chip::after,
  .home-roster-list .ww571-roster-card .ww571-person-chip::before,
  .home-roster-list .ww571-roster-card .ww571-person-chip::after{display:none!important;content:none!important;}
  .roster-mobile .ww571-roster-card .ww572-person-avatar,
  .home-roster-list .ww571-roster-card .ww572-person-avatar{display:none!important;}
  .roster-mobile .ww571-roster-card .ww572-person-name,
  .home-roster-list .ww571-roster-card .ww572-person-name{
    display:block!important;flex:0 1 auto!important;min-width:0!important;max-width:92px!important;margin:0!important;padding:0!important;font-size:11px!important;line-height:20px!important;font-weight:850!important;letter-spacing:-.01em!important;color:#27382e!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  }
  .roster-mobile .ww571-admin-roster-card .ww572-person-state,
  .home-roster-list .ww571-admin-roster-card .ww572-person-state{
    display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;gap:2px!important;flex:0 0 auto!important;width:auto!important;height:auto!important;min-width:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;font-size:8.6px!important;line-height:1!important;font-weight:800!important;white-space:nowrap!important;
  }
  .roster-mobile .ww571-admin-roster-card .ww572-person-state svg,
  .home-roster-list .ww571-admin-roster-card .ww572-person-state svg{width:9px!important;height:9px!important;flex:0 0 9px!important;stroke-width:2.5!important;}
  .roster-mobile .ww571-admin-roster-card .ww572-person-state span,
  .home-roster-list .ww571-admin-roster-card .ww572-person-state span{display:inline!important;font-size:8.6px!important;line-height:1!important;font-weight:800!important;letter-spacing:0!important;}
  .roster-mobile .ww571-admin-roster-card .ww572-person.is-accepted .ww572-person-state,
  .home-roster-list .ww571-admin-roster-card .ww572-person.is-accepted .ww572-person-state{color:#2f7a43!important;}
  .roster-mobile .ww571-admin-roster-card .ww572-person.is-declined .ww572-person-state,
  .home-roster-list .ww571-admin-roster-card .ww572-person.is-declined .ww572-person-state{color:#b0493e!important;}
  .roster-mobile .ww571-admin-roster-card .ww572-person.is-waiting .ww572-person-state,
  .home-roster-list .ww571-admin-roster-card .ww572-person.is-waiting .ww572-person-state{color:#78827b!important;}
  .roster-mobile .ww571-admin-roster-card .ww572-person.is-progress .ww572-person-state,
  .home-roster-list .ww571-admin-roster-card .ww572-person.is-progress .ww572-person-state{color:#316d83!important;}
  .roster-mobile .ww571-admin-roster-card .ww572-person.is-completed .ww572-person-state,
  .home-roster-list .ww571-admin-roster-card .ww572-person.is-completed .ww572-person-state{color:#2f7a43!important;}

  /* Employee actions live in the coloured header without changing the shared card shell. */
  .roster-mobile .ww571-employee-roster-card .ww571-actions,
  .home-roster-list .ww571-employee-roster-card .ww571-actions{
    grid-column:3!important;grid-row:1!important;align-self:center!important;justify-self:end!important;z-index:2!important;display:flex!important;gap:5px!important;margin:0 8px 0 0!important;padding:0!important;
  }
  .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-act,
  .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-act{
    min-height:34px!important;height:34px!important;padding:0 9px!important;border-radius:10px!important;font-size:9px!important;font-weight:850!important;line-height:1!important;box-shadow:none!important;
  }
  .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-reject,
  .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-reject{background:rgba(255,255,255,.94)!important;color:#8b5149!important;border:1px solid rgba(255,255,255,.54)!important;}
  .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-accept,
  .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-accept,
  .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-start,
  .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-start{background:#fff!important;color:var(--deep,#1d542d)!important;border:1px solid rgba(255,255,255,.64)!important;}

  @media (max-width:374px){
    .roster-mobile .ww571-roster-card,.home-roster-list .ww571-roster-card{grid-template-columns:54px minmax(0,1fr) 34px!important;column-gap:9px!important;}
    .roster-mobile .ww571-roster-card .ww571-title-row h3,.home-roster-list .ww571-roster-card .ww571-title-row h3{font-size:14.5px!important;}
    .roster-mobile .ww571-roster-card .ww571-staff-row,.home-roster-list .ww571-roster-card .ww571-staff-row{grid-template-columns:36px minmax(0,1fr)!important;padding-left:10px!important;padding-right:10px!important;}
    .roster-mobile .ww571-roster-card .ww572-person-name,.home-roster-list .ww571-roster-card .ww572-person-name{max-width:76px!important;font-size:10.3px!important;}
    .roster-mobile .ww571-admin-roster-card .ww572-person-state span,.home-roster-list .ww571-admin-roster-card .ww572-person-state span{font-size:8px!important;}
  }
}

@media (min-width:1024px){
  .ww571-roster-card .ww572-person-avatar{display:none!important;}
  .ww571-roster-card .ww571-person-chip{border:0!important;background:transparent!important;box-shadow:none!important;}
}

/* ---- app-polish-v578.css ---- */
/* EarthRoster v578 — skinny professional roster cards.
   Scope: roster cards only. The header, Team Roster & Billing, filters,
   calendar/date controls and navigation are intentionally untouched. */
@media (max-width:1023px){
  .roster-mobile .ww571-roster-card,
  .home-roster-list .ww571-roster-card{
    position:relative!important;
    display:grid!important;
    grid-template-columns:48px minmax(0,1fr) auto!important;
    grid-template-rows:auto auto!important;
    align-items:center!important;
    column-gap:9px!important;
    row-gap:4px!important;
    width:auto!important;
    min-height:78px!important;
    margin:0 10px 8px!important;
    padding:8px 9px 8px 12px!important;
    overflow:hidden!important;
    border-radius:15px!important;
    border:1px solid color-mix(in srgb,var(--solid,#2e7b43) 78%,#ffffff 22%)!important;
    background:
      radial-gradient(circle at 92% -40%,rgba(255,255,255,.22),transparent 42%),
      linear-gradient(128deg,color-mix(in srgb,var(--solid,#2e7b43) 98%,#ffffff 2%) 0%,var(--solid,#2e7b43) 58%,var(--deep,#1d542d) 100%)!important;
    box-shadow:0 7px 16px color-mix(in srgb,var(--deep,#1d542d) 18%,transparent)!important;
    color:#fff!important;
    transform:none!important;
  }
  .roster-mobile .ww571-roster-card::before,
  .home-roster-list .ww571-roster-card::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    width:auto!important;height:auto!important;
    background:linear-gradient(110deg,rgba(255,255,255,.08),transparent 48%)!important;
    opacity:1!important;
    pointer-events:none!important;
  }
  .roster-mobile .ww571-roster-card::after,
  .home-roster-list .ww571-roster-card::after{display:none!important;content:none!important;}

  .ww571-roster-card .ww512-hours-badge,
  .ww571-roster-card .ww569-hours-badge{
    grid-column:1!important;grid-row:1!important;
    align-self:center!important;justify-self:start!important;z-index:1!important;
    width:46px!important;min-width:46px!important;height:46px!important;
    margin:0!important;padding:0!important;
    display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:2px!important;
    border-radius:12px!important;
    border:1px solid rgba(255,255,255,.30)!important;
    background:rgba(7,35,18,.23)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.14)!important;
    color:#fff!important;
  }
  .ww571-roster-card .ww512-hours-badge strong,
  .ww571-roster-card .ww569-hours-badge strong{
    margin:0!important;color:#fff!important;font-size:16px!important;line-height:1!important;font-weight:900!important;letter-spacing:-.03em!important;text-shadow:none!important;
  }
  .ww571-roster-card .ww512-hours-badge span,
  .ww571-roster-card .ww569-hours-badge span{
    margin:0!important;color:rgba(255,255,255,.76)!important;font-size:6.5px!important;line-height:1!important;font-weight:850!important;letter-spacing:.075em!important;text-transform:uppercase!important;
  }

  .ww571-roster-card .ww571-card-copy{
    grid-column:2!important;grid-row:1!important;align-self:center!important;z-index:1!important;min-width:0!important;margin:0!important;padding:0!important;
  }
  .ww571-roster-card .ww571-title-row{display:flex!important;align-items:center!important;min-width:0!important;margin:0 0 4px!important;gap:4px!important;}
  .ww571-roster-card .ww571-title-row h3{
    margin:0!important;min-width:0!important;max-width:100%!important;color:#fff!important;
    font-size:15.2px!important;line-height:1.06!important;font-weight:900!important;letter-spacing:-.022em!important;
    white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-shadow:0 1px 1px rgba(0,0,0,.07)!important;
  }
  .ww571-roster-card .ww571-shift-time{
    display:flex!important;align-items:center!important;gap:4px!important;margin:0!important;
    color:rgba(255,255,255,.84)!important;font-size:9.8px!important;line-height:1!important;font-weight:760!important;white-space:nowrap!important;
  }
  .ww571-roster-card .ww571-shift-time svg{width:10px!important;height:10px!important;stroke:currentColor!important;}

  /* One slim staff band inside the coloured card — no white lower panel. */
  .ww571-roster-card .ww571-staff-row{
    grid-column:2 / -1!important;grid-row:2!important;z-index:1!important;
    display:grid!important;grid-template-columns:28px minmax(0,1fr)!important;align-items:center!important;gap:3px 6px!important;
    width:100%!important;min-width:0!important;margin:0!important;padding:0!important;
    border:0!important;background:transparent!important;box-shadow:none!important;
  }
  .ww571-roster-card .ww571-staff-label{
    display:block!important;margin:0!important;padding:0!important;color:rgba(255,255,255,.58)!important;
    font-size:6.1px!important;line-height:16px!important;font-weight:900!important;letter-spacing:.09em!important;text-transform:uppercase!important;white-space:nowrap!important;
  }
  .ww571-roster-card .ww571-people{
    display:flex!important;align-items:center!important;flex-wrap:nowrap!important;gap:3px 11px!important;width:100%!important;min-width:0!important;margin:0!important;padding:0!important;overflow:hidden!important;
  }
  .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people{
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:15px!important;gap:1px 12px!important;overflow:visible!important;
  }
  .ww571-roster-card .ww571-person-chip,
  .ww571-roster-card .ww571-person-chip.ww572-person{
    display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;gap:4px!important;
    width:auto!important;max-width:100%!important;min-width:0!important;height:15px!important;min-height:15px!important;margin:0!important;padding:0!important;
    border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#fff!important;white-space:nowrap!important;overflow:hidden!important;
  }
  .ww571-roster-card .ww571-person-chip::before,
  .ww571-roster-card .ww571-person-chip::after{display:none!important;content:none!important;}
  .ww571-roster-card .ww572-person-avatar{display:none!important;}
  .ww571-roster-card .ww572-person-name{
    display:block!important;min-width:0!important;max-width:86px!important;margin:0!important;padding:0!important;
    color:#fff!important;font-size:8.3px!important;line-height:15px!important;font-weight:820!important;letter-spacing:-.005em!important;
    white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  }

  /* Admin response stays immediately attached to the correct employee. */
  .ww571-admin-roster-card .ww572-person-state{
    display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;gap:2px!important;flex:0 0 auto!important;
    width:auto!important;height:15px!important;min-height:15px!important;min-width:0!important;margin:0!important;padding:0!important;
    border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
    font-size:7.1px!important;line-height:15px!important;font-weight:850!important;white-space:nowrap!important;
  }
  .ww571-admin-roster-card .ww572-person-state svg{width:7px!important;height:7px!important;flex:0 0 7px!important;stroke-width:2.6!important;}
  .ww571-admin-roster-card .ww572-person-state span{display:inline!important;font-size:7.1px!important;line-height:15px!important;font-weight:850!important;}
  .ww571-admin-roster-card .ww572-person.is-accepted .ww572-person-state{color:#c9f4cf!important;}
  .ww571-admin-roster-card .ww572-person.is-declined .ww572-person-state{color:#ffd0c9!important;}
  .ww571-admin-roster-card .ww572-person.is-waiting .ww572-person-state{color:rgba(255,255,255,.67)!important;}
  .ww571-admin-roster-card .ww572-person.is-progress .ww572-person-state{color:#d0efff!important;}
  .ww571-admin-roster-card .ww572-person.is-completed .ww572-person-state{color:#d8f1db!important;}

  .ww571-admin-roster-card .ww571-card-chevron{
    grid-column:3!important;grid-row:1!important;align-self:center!important;justify-self:end!important;z-index:1!important;
    width:29px!important;height:31px!important;min-width:29px!important;margin:0!important;border-radius:9px!important;
    border:1px solid rgba(255,255,255,.23)!important;background:rgba(255,255,255,.12)!important;color:#fff!important;box-shadow:none!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
  }
  .ww571-admin-roster-card .ww571-card-chevron svg{width:13px!important;height:13px!important;stroke:currentColor!important;}

  /* Employee actions remain compact and do not make the card tall. */
  .ww571-employee-roster-card .ww571-actions{
    grid-column:3!important;grid-row:1!important;align-self:center!important;justify-self:end!important;z-index:1!important;
    display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-end!important;gap:4px!important;
    min-width:0!important;margin:0!important;padding:0!important;
  }
  .ww571-employee-roster-card .ww571-actions:has(.rc-accept){flex-direction:row!important;gap:4px!important;}
  .ww571-employee-roster-card .ww571-actions .rc-act,
  .ww571-employee-roster-card .ww571-actions .rc-emp-state,
  .ww571-employee-roster-card .ww571-actions .rc-accept,
  .ww571-employee-roster-card .ww571-actions .rc-reject{
    width:auto!important;min-width:0!important;height:27px!important;min-height:27px!important;margin:0!important;padding:0 7px!important;
    border-radius:8px!important;font-size:7.7px!important;line-height:1!important;font-weight:880!important;white-space:nowrap!important;box-shadow:none!important;
  }
  .ww571-employee-roster-card .ww571-actions .rc-accept,
  .ww571-employee-roster-card .ww571-actions .rc-start{
    background:#fff!important;color:var(--deep,#174e2b)!important;border:1px solid rgba(255,255,255,.72)!important;
  }
  .ww571-employee-roster-card .ww571-actions .rc-reject{
    background:rgba(255,255,255,.10)!important;color:#fff!important;border:1px solid rgba(255,255,255,.42)!important;
  }
  .ww571-employee-roster-card .ww571-actions svg{width:9px!important;height:9px!important;stroke:currentColor!important;}

  /* Four employees add only one very small staff line, not a tall panel. */
  .ww571-roster-card:has(.ww571-staff-row[data-staff-count="4"]){min-height:82px!important;}

  @media (max-width:390px){
    .roster-mobile .ww571-roster-card,.home-roster-list .ww571-roster-card{
      grid-template-columns:44px minmax(0,1fr) auto!important;column-gap:7px!important;margin-left:8px!important;margin-right:8px!important;padding-left:10px!important;padding-right:7px!important;
    }
    .ww571-roster-card .ww512-hours-badge,.ww571-roster-card .ww569-hours-badge{width:43px!important;min-width:43px!important;height:43px!important;}
    .ww571-roster-card .ww512-hours-badge strong,.ww571-roster-card .ww569-hours-badge strong{font-size:15px!important;}
    .ww571-roster-card .ww571-title-row h3{font-size:14px!important;}
    .ww571-roster-card .ww571-shift-time{font-size:9.1px!important;}
    .ww571-roster-card .ww571-staff-row{grid-template-columns:25px minmax(0,1fr)!important;gap:2px 5px!important;}
    .ww571-roster-card .ww571-staff-label{font-size:5.6px!important;}
    .ww571-roster-card .ww572-person-name{max-width:70px!important;font-size:7.6px!important;}
    .ww571-admin-roster-card .ww572-person-state,.ww571-admin-roster-card .ww572-person-state span{font-size:6.5px!important;}
    .ww571-employee-roster-card .ww571-actions .rc-act,
    .ww571-employee-roster-card .ww571-actions .rc-emp-state,
    .ww571-employee-roster-card .ww571-actions .rc-accept,
    .ww571-employee-roster-card .ww571-actions .rc-reject{height:25px!important;min-height:25px!important;padding:0 6px!important;font-size:7.2px!important;}
  }
}

/* v578 specificity lock: later legacy roster rules use three-class selectors.
   These card-only rules intentionally outrank them without touching any upper roster UI. */
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww571-roster-card,
  body .home-roster-list .ww571-roster-card{
    grid-template-columns:46px minmax(0,1fr) auto!important;
    grid-template-rows:46px auto!important;
    column-gap:8px!important;row-gap:3px!important;
    min-height:0!important;height:auto!important;
    margin:0 10px 8px!important;padding:7px 8px 7px 10px!important;
    border-radius:14px!important;
  }
  body.ww-roster-active .roster-mobile .ww571-roster-card .ww512-hours-badge,
  body.ww-roster-active .roster-mobile .ww571-roster-card .ww569-hours-badge,
  body .home-roster-list .ww571-roster-card .ww512-hours-badge,
  body .home-roster-list .ww571-roster-card .ww569-hours-badge{
    width:43px!important;min-width:43px!important;height:43px!important;margin:0!important;padding:0!important;border-radius:11px!important;
  }
  body.ww-roster-active .roster-mobile .ww571-roster-card .ww571-card-copy,
  body .home-roster-list .ww571-roster-card .ww571-card-copy{
    grid-column:2!important;grid-row:1!important;padding:0!important;margin:0!important;align-self:center!important;
  }
  body.ww-roster-active .roster-mobile .ww571-roster-card .ww571-title-row h3,
  body .home-roster-list .ww571-roster-card .ww571-title-row h3{font-size:14.5px!important;}
  body.ww-roster-active .roster-mobile .ww571-roster-card .ww571-shift-time,
  body .home-roster-list .ww571-roster-card .ww571-shift-time{font-size:9.2px!important;}

  body.ww-roster-active .roster-mobile .ww571-roster-card .ww571-staff-row,
  body .home-roster-list .ww571-roster-card .ww571-staff-row{
    grid-column:2 / -1!important;grid-row:2!important;
    display:grid!important;grid-template-columns:25px minmax(0,1fr)!important;align-items:center!important;gap:1px 5px!important;
    width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;
    margin:0!important;padding:0!important;
    background:transparent!important;border:0!important;box-shadow:none!important;
  }
  body.ww-roster-active .roster-mobile .ww571-roster-card .ww571-staff-label,
  body .home-roster-list .ww571-roster-card .ww571-staff-label{
    margin:0!important;padding:0!important;color:rgba(255,255,255,.58)!important;font-size:5.5px!important;line-height:14px!important;
  }
  body.ww-roster-active .roster-mobile .ww571-roster-card .ww571-people,
  body .home-roster-list .ww571-roster-card .ww571-people{
    display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:2px 9px!important;width:100%!important;min-width:0!important;margin:0!important;padding:0!important;overflow:hidden!important;
  }
  body.ww-roster-active .roster-mobile .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people,
  body .home-roster-list .ww571-roster-card .ww571-staff-row[data-staff-count="4"] .ww571-people{
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:14px!important;gap:1px 10px!important;overflow:visible!important;
  }
  body.ww-roster-active .roster-mobile .ww571-roster-card .ww571-person-chip,
  body .home-roster-list .ww571-roster-card .ww571-person-chip{
    height:14px!important;min-height:14px!important;gap:3px!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
  }
  body.ww-roster-active .roster-mobile .ww571-roster-card .ww572-person-name,
  body .home-roster-list .ww571-roster-card .ww572-person-name{
    max-width:76px!important;font-size:7.7px!important;line-height:14px!important;color:#fff!important;font-weight:820!important;
  }
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww572-person-state,
  body .home-roster-list .ww571-admin-roster-card .ww572-person-state{
    height:14px!important;min-height:14px!important;font-size:6.5px!important;line-height:14px!important;padding:0!important;background:transparent!important;border:0!important;
  }
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww572-person-state span,
  body .home-roster-list .ww571-admin-roster-card .ww572-person-state span{font-size:6.5px!important;line-height:14px!important;}
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww571-card-chevron,
  body .home-roster-list .ww571-admin-roster-card .ww571-card-chevron{
    grid-column:3!important;grid-row:1!important;width:27px!important;height:29px!important;min-width:27px!important;margin:0!important;border-radius:8px!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions{
    grid-column:3!important;grid-row:1!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:3px!important;margin:0!important;padding:0!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept),
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept){flex-direction:row!important;gap:3px!important;}
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-act,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-emp-state,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-accept,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-reject,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-act,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-emp-state,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-accept,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-reject{
    height:24px!important;min-height:24px!important;min-width:0!important;width:auto!important;padding:0 6px!important;border-radius:7px!important;font-size:7px!important;line-height:1!important;
  }
}
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-accepted .ww572-person-state,
  body .home-roster-list .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-accepted .ww572-person-state{color:#d7f6dc!important;}
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-declined .ww572-person-state,
  body .home-roster-list .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-declined .ww572-person-state{color:#ffd7d1!important;}
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-waiting .ww572-person-state,
  body .home-roster-list .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-waiting .ww572-person-state{color:rgba(255,255,255,.70)!important;}
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-progress .ww572-person-state,
  body .home-roster-list .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-progress .ww572-person-state{color:#d7f1ff!important;}
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-completed .ww572-person-state,
  body .home-roster-list .ww571-admin-roster-card .ww571-staff-row[data-staff-count="4"] .ww572-person.is-completed .ww572-person-state{color:#def4e1!important;}
}

/* ---- app-polish-v579.css ---- */
/* EarthRoster v579 — refined employee shift response control.
   Scope: ONLY the employee Accept / Decline control on roster cards.
   Card dimensions, colours, staff layout, roster header, billing panel,
   filters, calendar/date controls and navigation are intentionally untouched. */
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept),
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept){
    display:inline-flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:0!important;
    height:30px!important;
    min-height:30px!important;
    margin:0!important;
    padding:2px!important;
    overflow:hidden!important;
    border:1px solid rgba(255,255,255,.26)!important;
    border-radius:10px!important;
    background:rgba(8,31,24,.17)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important;
    backdrop-filter:blur(5px)!important;
    -webkit-backdrop-filter:blur(5px)!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    width:auto!important;
    min-width:0!important;
    height:26px!important;
    min-height:26px!important;
    margin:0!important;
    padding:0 7px!important;
    border:0!important;
    border-radius:7px!important;
    background:transparent!important;
    box-shadow:none!important;
    font-size:8.2px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:-.005em!important;
    white-space:nowrap!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject{
    color:rgba(255,255,255,.80)!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept{
    position:relative!important;
    color:#fff!important;
    background:rgba(255,255,255,.11)!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept::before,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept::before{
    content:""!important;
    position:absolute!important;
    left:-1px!important;
    top:5px!important;
    bottom:5px!important;
    width:1px!important;
    background:rgba(255,255,255,.19)!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) svg,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) svg{
    display:block!important;
    width:9px!important;
    height:9px!important;
    flex:0 0 9px!important;
    stroke:currentColor!important;
    stroke-width:2.4!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject:active,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept:active,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject:active,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept:active{
    transform:translateY(1px)!important;
  }
}

/* ---- app-polish-v580.css ---- */
/* EarthRoster v580 — visible skinny roster response controls.
   Scope: employee roster-card response/work-state controls only.
   Roster card dimensions, colours, staff layout, original upper roster sections,
   calendar, filters and navigation are intentionally untouched. */
@media (max-width:1023px){
  /* Response needed: one highly visible segmented control, still only 30px tall. */
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept),
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept){
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:0!important;
    height:30px!important;
    min-height:30px!important;
    margin:0!important;
    padding:2px!important;
    overflow:hidden!important;
    border:1px solid rgba(255,255,255,.68)!important;
    border-radius:9px!important;
    background:rgba(255,255,255,.88)!important;
    box-shadow:0 3px 8px rgba(8,28,18,.20),inset 0 1px 0 rgba(255,255,255,.96)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    width:auto!important;
    min-width:0!important;
    height:26px!important;
    min-height:26px!important;
    margin:0!important;
    padding:0 7px!important;
    border:0!important;
    border-radius:6px!important;
    box-shadow:none!important;
    font-size:8.2px!important;
    line-height:1!important;
    font-weight:900!important;
    letter-spacing:0!important;
    white-space:nowrap!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject{
    color:#a9443b!important;
    background:rgba(167,62,53,.07)!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept{
    position:relative!important;
    color:#fff!important;
    background:#2f7c45!important;
    box-shadow:0 1px 3px rgba(17,70,37,.24)!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept::before,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept::before{
    content:""!important;
    position:absolute!important;
    left:-2px!important;
    top:5px!important;
    bottom:5px!important;
    width:1px!important;
    background:rgba(29,70,42,.18)!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) svg,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) svg{
    display:block!important;
    width:9px!important;
    height:9px!important;
    flex:0 0 9px!important;
    stroke:currentColor!important;
    stroke-width:2.7!important;
  }

  /* Submitted/current work states stay compact but are now easy to read. */
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-start,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-in-progress,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-done,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-declined,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-start,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-in-progress,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-done,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-declined{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    height:27px!important;
    min-height:27px!important;
    padding:0 8px!important;
    border-radius:8px!important;
    font-size:7.8px!important;
    line-height:1!important;
    font-weight:900!important;
    white-space:nowrap!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-start,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-start{
    color:var(--deep,#174e2b)!important;background:#fff!important;border:1px solid rgba(255,255,255,.78)!important;box-shadow:0 2px 6px rgba(7,30,18,.15)!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-in-progress,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-in-progress{
    color:#fff!important;background:rgba(7,35,18,.28)!important;border:1px solid rgba(255,255,255,.35)!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-done,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-done{
    color:#164d2a!important;background:#e7f6e9!important;border:1px solid rgba(255,255,255,.65)!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-declined,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-declined{
    color:#842f2a!important;background:#fff0ed!important;border:1px solid rgba(255,255,255,.65)!important;
  }

  @media (max-width:390px){
    body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept),
    body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept){height:29px!important;min-height:29px!important;}
    body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
    body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept,
    body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
    body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept{height:25px!important;min-height:25px!important;padding:0 6px!important;font-size:7.6px!important;}
  }
}

/* ---- app-polish-v581.css ---- */
/* EarthRoster v581 — response visibility polish only.
   Scope lock: employee roster-card action controls only.
   DO NOT alter card geometry, staff layout, header, Team Roster & Billing,
   Add job, filter, calendar/date controls, or bottom navigation. */
@media (max-width:1023px){
  /* Response needed — one compact, high-contrast segmented control. */
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept),
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept){
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:0!important;
    height:32px!important;
    min-height:32px!important;
    margin:0!important;
    padding:2px!important;
    overflow:hidden!important;
    border:1px solid rgba(255,255,255,.82)!important;
    border-radius:10px!important;
    background:rgba(255,255,255,.96)!important;
    box-shadow:0 3px 9px rgba(7,28,17,.24),inset 0 1px 0 rgba(255,255,255,1)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    width:auto!important;
    min-width:0!important;
    height:28px!important;
    min-height:28px!important;
    margin:0!important;
    padding:0 8px!important;
    border:0!important;
    border-radius:7px!important;
    box-shadow:none!important;
    font-size:8.8px!important;
    line-height:1!important;
    font-weight:900!important;
    letter-spacing:0!important;
    white-space:nowrap!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject{
    color:#8f342e!important;
    background:#fff7f5!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept{
    position:relative!important;
    color:#fff!important;
    background:#23733d!important;
    box-shadow:0 1px 4px rgba(19,80,40,.28)!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept::before,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept::before{
    content:""!important;
    position:absolute!important;
    left:-2px!important;
    top:5px!important;
    bottom:5px!important;
    width:1px!important;
    background:rgba(25,71,39,.18)!important;
  }

  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) svg,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) svg{
    display:block!important;
    width:10px!important;
    height:10px!important;
    flex:0 0 10px!important;
    stroke:currentColor!important;
    stroke-width:2.8!important;
  }

  /* Accepted / active / finished states use the same compact visual weight. */
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-start,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-in-progress,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-done,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-declined,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-start,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-in-progress,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-done,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-declined{
    height:29px!important;
    min-height:29px!important;
    padding:0 9px!important;
    border-radius:9px!important;
    font-size:8.5px!important;
    line-height:1!important;
    font-weight:900!important;
    box-shadow:0 2px 6px rgba(7,28,17,.14)!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-start,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-start{
    color:#174d2a!important;background:#fff!important;border:1px solid rgba(255,255,255,.86)!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-in-progress,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-in-progress{
    color:#fff!important;background:rgba(8,37,20,.40)!important;border:1px solid rgba(255,255,255,.48)!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-done,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-done{
    color:#174d2a!important;background:#eff9f0!important;border:1px solid rgba(255,255,255,.82)!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-declined,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-declined{
    color:#8b342f!important;background:#fff3f0!important;border:1px solid rgba(255,255,255,.82)!important;
  }

  @media (max-width:390px){
    body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept),
    body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept){height:31px!important;min-height:31px!important;}
    body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
    body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept,
    body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
    body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept{
      height:27px!important;min-height:27px!important;padding:0 7px!important;font-size:8.2px!important;
    }
  }
}

/* State readability: retain the same skinny client-colour card instead of
   washing the entire employee card nearly white after Decline/Completed. */
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card.is-rejected,
  body .home-roster-list .ww571-employee-roster-card.is-rejected{
    color:#fff!important;
    border-color:rgba(255,184,174,.80)!important;
    background:
      radial-gradient(circle at 92% -40%,rgba(255,255,255,.18),transparent 42%),
      linear-gradient(128deg,color-mix(in srgb,var(--solid,#2e7b43) 90%,#7c2f2b 10%) 0%,var(--solid,#2e7b43) 57%,color-mix(in srgb,var(--deep,#1d542d) 86%,#6e2926 14%) 100%)!important;
    box-shadow:inset 4px 0 0 rgba(208,77,65,.92),0 7px 16px color-mix(in srgb,var(--deep,#1d542d) 18%,transparent)!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card.ww570-is-completed,
  body .home-roster-list .ww571-employee-roster-card.ww570-is-completed{
    color:#fff!important;
    border-color:rgba(255,255,255,.34)!important;
    background:
      radial-gradient(circle at 92% -40%,rgba(255,255,255,.18),transparent 42%),
      linear-gradient(128deg,color-mix(in srgb,var(--solid,#2e7b43) 88%,#58715e 12%) 0%,color-mix(in srgb,var(--solid,#2e7b43) 90%,#5b735f 10%) 58%,color-mix(in srgb,var(--deep,#1d542d) 88%,#4e6554 12%) 100%)!important;
    box-shadow:inset 4px 0 0 rgba(183,221,190,.72),0 7px 16px color-mix(in srgb,var(--deep,#1d542d) 16%,transparent)!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card.is-rejected .ww571-title-row h3,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card.is-rejected .ww571-shift-time,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card.is-rejected .ww572-person-name,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card.ww570-is-completed .ww571-title-row h3,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card.ww570-is-completed .ww571-shift-time,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card.ww570-is-completed .ww572-person-name,
  body .home-roster-list .ww571-employee-roster-card.is-rejected .ww571-title-row h3,
  body .home-roster-list .ww571-employee-roster-card.is-rejected .ww571-shift-time,
  body .home-roster-list .ww571-employee-roster-card.is-rejected .ww572-person-name,
  body .home-roster-list .ww571-employee-roster-card.ww570-is-completed .ww571-title-row h3,
  body .home-roster-list .ww571-employee-roster-card.ww570-is-completed .ww571-shift-time,
  body .home-roster-list .ww571-employee-roster-card.ww570-is-completed .ww572-person-name{
    color:#fff!important;
    opacity:1!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card.is-rejected .ww571-staff-label,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card.ww570-is-completed .ww571-staff-label,
  body .home-roster-list .ww571-employee-roster-card.is-rejected .ww571-staff-label,
  body .home-roster-list .ww571-employee-roster-card.ww570-is-completed .ww571-staff-label{
    color:rgba(255,255,255,.62)!important;
  }
}

/* ---- app-polish-v582.css ---- */
/* EarthRoster v582 — roster-card status truth + premium skinny finish.
   SCOPE LOCK: roster cards and roster-card controls only.
   Do not alter Roster header, Team Roster & Billing, Add job, filter,
   weekly calendar/date controls, bottom navigation, or other pages. */
@media (max-width:1023px){
  /* Keep the v578 skinny geometry, but give the card a more intentional edge. */
  body.ww-roster-active .roster-mobile .ww582-roster-card,
  body .home-roster-list .ww582-roster-card{
    border-radius:17px 13px 17px 13px!important;
    border:1px solid color-mix(in srgb,var(--solid,#2e7b43) 68%,#ffffff 32%)!important;
    box-shadow:
      inset 4px 0 0 color-mix(in srgb,var(--accent,#8fba91) 82%,#ffffff 18%),
      inset 0 1px 0 rgba(255,255,255,.18),
      0 8px 18px color-mix(in srgb,var(--deep,#1d542d) 20%,transparent)!important;
  }
  body.ww-roster-active .roster-mobile .ww582-roster-card::after,
  body .home-roster-list .ww582-roster-card::after{
    content:""!important;
    display:block!important;
    position:absolute!important;
    z-index:1!important;
    top:0!important;
    left:22px!important;
    right:44px!important;
    height:1px!important;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent)!important;
    pointer-events:none!important;
  }

  /* Admin: only claim a whole-team state when every assigned employee matches.
     Mixed response/work cards get a calm neutral summary; individual truth remains
     attached to each employee name below. */
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww582-team-summary,
  body .home-roster-list .ww571-admin-roster-card .ww582-team-summary{
    position:absolute!important;
    z-index:3!important;
    top:8px!important;
    right:43px!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    height:22px!important;
    max-width:100px!important;
    padding:0 7px!important;
    border-radius:999px!important;
    border:1px solid rgba(255,255,255,.42)!important;
    background:rgba(247,250,247,.90)!important;
    color:#315240!important;
    box-shadow:0 2px 7px rgba(7,28,17,.14),inset 0 1px 0 #fff!important;
    font-size:7.2px!important;
    line-height:1!important;
    font-weight:900!important;
    letter-spacing:.005em!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww582-team-summary.is-completed,
  body .home-roster-list .ww571-admin-roster-card .ww582-team-summary.is-completed{
    color:#21643a!important;background:#e8f7eb!important;border-color:#b8dec0!important;
  }
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww582-team-summary.is-progress,
  body .home-roster-list .ww571-admin-roster-card .ww582-team-summary.is-progress{
    color:#225e42!important;background:#e8f5ec!important;border-color:#b9dcc3!important;
  }
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww582-team-summary.is-declined,
  body .home-roster-list .ww571-admin-roster-card .ww582-team-summary.is-declined{
    color:#8e352f!important;background:#fff0ed!important;border-color:#efc1bb!important;
  }
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww582-team-summary.is-awaiting,
  body .home-roster-list .ww571-admin-roster-card .ww582-team-summary.is-awaiting{
    color:#775a16!important;background:#fff6dc!important;border-color:#ead7a0!important;
  }
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww582-team-summary.is-mixed-response,
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww582-team-summary.is-mixed-work,
  body .home-roster-list .ww571-admin-roster-card .ww582-team-summary.is-mixed-response,
  body .home-roster-list .ww571-admin-roster-card .ww582-team-summary.is-mixed-work{
    color:#344f42!important;background:rgba(246,249,246,.92)!important;border-color:rgba(255,255,255,.62)!important;
  }
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww571-card-copy,
  body .home-roster-list .ww571-admin-roster-card .ww571-card-copy{
    padding-right:94px!important;
  }

  /* Make each admin person's status unmistakably belong to that name. */
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww572-person,
  body .home-roster-list .ww571-admin-roster-card .ww572-person{
    gap:3px!important;
  }
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww572-person-state,
  body .home-roster-list .ww571-admin-roster-card .ww572-person-state{
    font-weight:900!important;
  }
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww572-person.is-awaiting .ww572-person-state,
  body .home-roster-list .ww571-admin-roster-card .ww572-person.is-awaiting .ww572-person-state{
    color:#ffe3a2!important;
  }

  /* Employee accepted state: a designed Start shift control rather than a basic box. */
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-start,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-start{
    position:relative!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    height:31px!important;
    min-height:31px!important;
    padding:0 11px 0 9px!important;
    border-radius:999px!important;
    border:1px solid rgba(224,199,130,.72)!important;
    background:linear-gradient(180deg,#ffffff 0%,#f7f4ea 100%)!important;
    color:var(--deep,#174e2b)!important;
    box-shadow:0 4px 9px rgba(5,27,16,.22),inset 0 1px 0 #fff!important;
    font-size:8.4px!important;
    line-height:1!important;
    font-weight:950!important;
    letter-spacing:-.005em!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-start svg,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-start svg{
    width:12px!important;height:12px!important;flex:0 0 12px!important;
    color:#245c38!important;
    filter:drop-shadow(0 1px 0 rgba(255,255,255,.8))!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-start:active,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-start:active{
    transform:translateY(1px)!important;
    box-shadow:0 2px 5px rgba(5,27,16,.18),inset 0 1px 0 #fff!important;
  }

  /* Response needed: retain the skinny segmented design, but make the choice
     unmistakably visible without inflating the card. */
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept),
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept){
    height:32px!important;min-height:32px!important;
    border:1px solid rgba(255,255,255,.84)!important;
    border-radius:11px!important;
    background:#fff!important;
    box-shadow:0 4px 10px rgba(7,28,17,.23),inset 0 1px 0 #fff!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept{
    height:28px!important;min-height:28px!important;padding:0 8px!important;font-size:8.5px!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-reject{
    color:#a13b34!important;background:#fff7f5!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions:has(.rc-accept) .rc-accept{
    color:#fff!important;background:linear-gradient(180deg,#33824b,#23683a)!important;
    box-shadow:0 2px 5px rgba(17,73,38,.28)!important;
  }

  /* One-person declined card: retain client colour, add a restrained red edge,
     and keep the explicit Declined badge readable. */
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card.is-rejected,
  body .home-roster-list .ww571-employee-roster-card.is-rejected{
    border-color:rgba(244,165,155,.76)!important;
    box-shadow:
      inset 4px 0 0 #d35a50,
      inset 0 1px 0 rgba(255,255,255,.17),
      0 8px 18px color-mix(in srgb,var(--deep,#1d542d) 17%,transparent)!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-declined,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-declined{
    height:29px!important;min-height:29px!important;padding:0 9px!important;border-radius:999px!important;
    color:#8b302a!important;background:#fff0ed!important;border:1px solid #efb9b2!important;
    box-shadow:0 3px 7px rgba(90,31,27,.15),inset 0 1px 0 #fff!important;
  }

  /* Personal work states stay clearly personal on employee cards. */
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-in-progress,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-in-progress{
    border-radius:999px!important;background:rgba(247,250,247,.92)!important;color:#285d40!important;border:1px solid rgba(255,255,255,.72)!important;
    box-shadow:0 3px 7px rgba(7,28,17,.14)!important;
  }
  body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-done,
  body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-done{
    border-radius:999px!important;background:#e7f6e9!important;color:#21643a!important;border:1px solid #b9dec0!important;
    box-shadow:0 3px 7px rgba(7,28,17,.13)!important;
  }

  @media (max-width:390px){
    body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww582-team-summary,
    body .home-roster-list .ww571-admin-roster-card .ww582-team-summary{max-width:88px!important;font-size:6.7px!important;padding:0 6px!important;}
    body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww571-card-copy,
    body .home-roster-list .ww571-admin-roster-card .ww571-card-copy{padding-right:82px!important;}
    body.ww-roster-active .roster-mobile .ww571-employee-roster-card .ww571-actions .rc-start,
    body .home-roster-list .ww571-employee-roster-card .ww571-actions .rc-start{height:29px!important;min-height:29px!important;padding:0 9px 0 8px!important;font-size:7.8px!important;}
  }
}
@media (max-width:1023px){
  /* High-contrast individual admin states on coloured cards, for all team sizes. */
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww572-person.is-accepted .ww572-person-state,
  body .home-roster-list .ww571-admin-roster-card .ww572-person.is-accepted .ww572-person-state{color:#d9f8df!important;text-shadow:0 1px 1px rgba(0,0,0,.10)!important;}
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww572-person.is-declined .ww572-person-state,
  body .home-roster-list .ww571-admin-roster-card .ww572-person.is-declined .ww572-person-state{color:#ffd7d0!important;text-shadow:0 1px 1px rgba(0,0,0,.10)!important;}
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww572-person.is-awaiting .ww572-person-state,
  body .home-roster-list .ww571-admin-roster-card .ww572-person.is-awaiting .ww572-person-state{color:#ffe2a0!important;text-shadow:0 1px 1px rgba(0,0,0,.10)!important;}
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww572-person.is-progress .ww572-person-state,
  body .home-roster-list .ww571-admin-roster-card .ww572-person.is-progress .ww572-person-state{color:#fff0a8!important;text-shadow:0 1px 1px rgba(0,0,0,.12)!important;}
  body.ww-roster-active .roster-mobile .ww571-admin-roster-card .ww572-person.is-completed .ww572-person-state,
  body .home-roster-list .ww571-admin-roster-card .ww572-person.is-completed .ww572-person-state{color:#d9f8df!important;text-shadow:0 1px 1px rgba(0,0,0,.10)!important;}
}

/* ---- app-polish-v583.css ---- */
/* EarthRoster v583 — implements the approved roster-card mockup design in the real app.
   SCOPE LOCK: roster cards only. Header, Team Roster & Billing, Add job, filter,
   weekly calendar/date controls, desktop roster grid and bottom navigation are untouched. */
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww583-card,
  body .home-roster-list .ww583-card{
    position:relative!important;
    display:grid!important;
    grid-template-columns:64px minmax(0,1fr) auto 28px!important;
    grid-template-rows:58px auto!important;
    column-gap:12px!important;
    row-gap:8px!important;
    align-items:center!important;
    width:auto!important;
    min-height:112px!important;
    margin:0 10px 12px!important;
    padding:12px 12px 11px 14px!important;
    overflow:hidden!important;
    border-radius:18px!important;
    border:1px solid color-mix(in srgb,var(--solid,#1f86b0) 62%,#bde8f7 38%)!important;
    background:
      radial-gradient(circle at 92% 0%,rgba(255,255,255,.13),transparent 39%),
      linear-gradient(135deg,
        color-mix(in srgb,var(--solid,#1f86b0) 74%,#54b7d8 26%) 0%,
        color-mix(in srgb,var(--solid,#1f86b0) 88%,#238eb3 12%) 52%,
        color-mix(in srgb,var(--deep,#13607d) 82%,#117aa0 18%) 100%)!important;
    color:#fff!important;
    box-shadow:
      inset 5px 0 0 color-mix(in srgb,var(--pop,#2fa3cc) 84%,#7ce8ff 16%),
      inset 0 1px 0 rgba(255,255,255,.25),
      0 10px 22px color-mix(in srgb,var(--deep,#13607d) 23%,transparent)!important;
    transform:none!important;
  }
  body.ww-roster-active .roster-mobile .ww583-card::before,
  body .home-roster-list .ww583-card::before{
    content:""!important;position:absolute!important;inset:0!important;pointer-events:none!important;
    background:linear-gradient(112deg,rgba(255,255,255,.07),transparent 45%,rgba(0,0,0,.035))!important;
  }
  body.ww-roster-active .roster-mobile .ww583-card::after,
  body .home-roster-list .ww583-card::after{display:none!important;content:none!important;}

  .ww583-card .ww583-hours{
    grid-column:1!important;grid-row:1!important;z-index:2!important;
    width:62px!important;height:62px!important;margin:0!important;padding:0!important;
    display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4px!important;
    border-radius:15px!important;border:1px solid rgba(255,255,255,.25)!important;
    background:rgba(8,46,72,.20)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.15)!important;color:#fff!important;
  }
  .ww583-card .ww583-hours strong{font-size:22px!important;line-height:1!important;font-weight:900!important;letter-spacing:-.035em!important;color:#fff!important;}
  .ww583-card .ww583-hours span{font-size:8px!important;line-height:1!important;font-weight:900!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:rgba(255,255,255,.78)!important;}

  .ww583-card .ww583-copy{
    grid-column:2!important;grid-row:1!important;align-self:center!important;z-index:2!important;min-width:0!important;
    display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:4px!important;margin:0!important;padding:0!important;
  }
  .ww583-card .ww583-copy h3{
    margin:0!important;max-width:100%!important;color:#fff!important;font-size:18px!important;line-height:1.05!important;font-weight:900!important;letter-spacing:-.025em!important;
    white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-shadow:0 1px 1px rgba(0,0,0,.08)!important;
  }
  .ww583-card .ww583-time{display:flex!important;align-items:center!important;gap:5px!important;color:rgba(255,255,255,.86)!important;font-size:11px!important;line-height:1!important;font-weight:780!important;white-space:nowrap!important;}
  .ww583-card .ww583-time svg{width:13px!important;height:13px!important;stroke:currentColor!important;}

  .ww583-card .ww583-chevron{
    grid-column:4!important;grid-row:1!important;z-index:2!important;align-self:center!important;justify-self:end!important;
    width:28px!important;height:38px!important;border-radius:11px!important;display:flex!important;align-items:center!important;justify-content:center!important;
    border:1px solid rgba(255,255,255,.18)!important;background:rgba(255,255,255,.10)!important;color:#fff!important;
  }
  .ww583-card .ww583-chevron svg{width:15px!important;height:15px!important;stroke:currentColor!important;transform:rotate(180deg)!important;}

  .ww583-card .ww583-summary{
    grid-column:3!important;grid-row:1!important;z-index:3!important;align-self:start!important;justify-self:end!important;margin-top:2px!important;
    min-height:28px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 12px!important;
    border-radius:999px!important;border:1px solid rgba(255,255,255,.70)!important;background:rgba(247,250,248,.92)!important;color:#335949!important;
    box-shadow:0 2px 7px rgba(5,37,55,.16),inset 0 1px 0 #fff!important;
    font-size:9px!important;font-weight:900!important;line-height:1!important;white-space:nowrap!important;
  }
  .ww583-card .ww583-summary.is-completed{background:#46a65e!important;border-color:#8ed59e!important;color:#fff!important;}
  .ww583-card .ww583-summary.is-progress{background:rgba(240,248,242,.92)!important;color:#2e6750!important;}
  .ww583-card .ww583-summary.is-declined{background:#b94b43!important;border-color:#ef9992!important;color:#fff!important;}
  .ww583-card .ww583-summary.is-awaiting{background:#fff5dc!important;border-color:#e5c885!important;color:#87600f!important;}
  .ww583-card .ww583-summary.is-draft{background:#f6f4ec!important;color:#6f6655!important;}

  .ww583-card .ww583-staff-band{
    grid-column:1 / -1!important;grid-row:2!important;z-index:2!important;display:grid!important;
    grid-template-columns:78px minmax(0,1fr)!important;align-items:stretch!important;gap:0!important;margin:0!important;padding:0!important;
    min-width:0!important;border-top:1px solid rgba(255,255,255,.15)!important;
  }
  .ww583-card .ww583-staff-label{
    display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;padding:12px 0 0 8px!important;
    color:rgba(255,255,255,.66)!important;font-size:8px!important;line-height:1!important;font-weight:900!important;letter-spacing:.13em!important;text-transform:uppercase!important;
  }
  .ww583-card .ww583-staff-grid{
    min-width:0!important;margin:8px 0 0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
    border:1px solid rgba(255,255,255,.17)!important;border-radius:10px!important;overflow:hidden!important;background:rgba(4,44,68,.055)!important;
  }
  .ww583-card .ww583-staff-band[data-staff-count="1"] .ww583-staff-grid{grid-template-columns:minmax(0,1fr)!important;}
  .ww583-card .ww583-staff-band[data-staff-count="2"] .ww583-staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .ww583-card .ww583-person{
    min-width:0!important;min-height:32px!important;padding:7px 10px!important;display:flex!important;align-items:center!important;gap:7px!important;color:#fff!important;
    border:0!important;background:transparent!important;box-shadow:none!important;white-space:nowrap!important;overflow:hidden!important;
  }
  .ww583-card .ww583-person:nth-child(odd){border-right:1px solid rgba(255,255,255,.12)!important;}
  .ww583-card .ww583-person:nth-child(n+3){border-top:1px solid rgba(255,255,255,.12)!important;}
  .ww583-card .ww583-staff-band[data-staff-count="1"] .ww583-person{border-right:0!important;}
  .ww583-card .ww583-staff-band[data-staff-count="2"] .ww583-person{border-top:0!important;}
  .ww583-card .ww583-staff-name{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;color:#fff!important;font-size:10px!important;line-height:1!important;font-weight:850!important;}
  .ww583-card .ww583-person-status{
    flex:0 0 auto!important;display:inline-flex!important;align-items:center!important;gap:4px!important;min-height:22px!important;padding:0 8px!important;
    border-radius:6px!important;font-size:8.5px!important;line-height:1!important;font-weight:900!important;border:1px solid transparent!important;
  }
  .ww583-card .ww583-person-status svg{width:10px!important;height:10px!important;stroke:currentColor!important;stroke-width:2.5!important;}
  .ww583-card .ww583-person-status.is-accepted{background:#2f9953!important;color:#eaffee!important;border-color:#49ad69!important;}
  .ww583-card .ww583-person-status.is-declined{background:#a9434d!important;color:#ffe5e8!important;border-color:#bd5a64!important;}
  .ww583-card .ww583-person-status.is-awaiting{background:#8c6a22!important;color:#ffe6a7!important;border-color:#a9812c!important;}
  .ww583-card .ww583-person-status.is-progress{background:#5f861e!important;color:#fff3a2!important;border-color:#7ea42d!important;}
  .ww583-card .ww583-person-status.is-completed{background:#318d50!important;color:#e8ffed!important;border-color:#4aa765!important;}

  .ww583-card .ww583-clock-chip{
    flex:0 0 auto!important;display:inline-flex!important;align-items:center!important;gap:4px!important;min-height:23px!important;padding:0 8px!important;border-radius:6px!important;
    background:#277b45!important;border:1px solid #3c965a!important;color:#eaffef!important;font-size:8.5px!important;font-weight:850!important;
  }
  .ww583-card .ww583-clock-chip svg{width:9px!important;height:9px!important;stroke:currentColor!important;}
  .ww583-card .ww583-complete-mark{width:18px!important;height:18px!important;border-radius:50%!important;background:#45a95f!important;color:#fff!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 18px!important;}
  .ww583-card .ww583-complete-mark svg{width:10px!important;height:10px!important;stroke:currentColor!important;}
  .ww583-card .ww583-inout{font-size:9px!important;color:rgba(255,255,255,.78)!important;white-space:nowrap!important;}
  .ww583-card .ww583-inout b{color:#fff!important;font-weight:900!important;margin-right:2px!important;}
  .ww583-card .ww583-completed-person{gap:6px!important;}

  /* Employee state/action area matches the approved mockup. */
  .ww583-employee-card .ww583-employee-action{
    grid-column:3!important;grid-row:1!important;z-index:3!important;align-self:center!important;justify-self:end!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;
  }
  .ww583-employee-card .ww583-self-badge{
    display:inline-flex!important;align-items:center!important;gap:4px!important;min-height:22px!important;padding:0 8px!important;border-radius:6px!important;
    font-size:8.5px!important;font-weight:900!important;line-height:1!important;
  }
  .ww583-employee-card .ww583-self-badge svg{width:10px!important;height:10px!important;stroke:currentColor!important;}
  .ww583-employee-card .ww583-self-badge.is-accepted{background:#2f9953!important;border:1px solid #49ad69!important;color:#effff2!important;}
  .ww583-employee-card .ww583-self-badge.is-draft{background:rgba(255,255,255,.18)!important;color:#fff!important;}

  .ww583-employee-card .ww583-start-shift{
    height:42px!important;min-height:42px!important;padding:0 18px!important;display:inline-flex!important;align-items:center!important;gap:8px!important;
    border-radius:999px!important;border:1px solid #d7bd78!important;background:linear-gradient(180deg,#fffefb,#f5f0e5)!important;color:#153c2b!important;
    box-shadow:0 5px 12px rgba(8,36,29,.24),inset 0 1px 0 #fff!important;font-size:12px!important;font-weight:900!important;line-height:1!important;white-space:nowrap!important;
  }
  .ww583-employee-card .ww583-start-shift svg{width:16px!important;height:16px!important;fill:#183f30!important;stroke:#183f30!important;}

  .ww583-employee-card .ww583-state-pill{
    min-height:32px!important;padding:0 12px!important;border-radius:999px!important;display:inline-flex!important;align-items:center!important;gap:6px!important;
    font-size:10px!important;font-weight:900!important;line-height:1!important;border:1px solid rgba(255,255,255,.68)!important;box-shadow:0 3px 8px rgba(8,36,29,.16)!important;
  }
  .ww583-employee-card .ww583-state-pill svg{width:11px!important;height:11px!important;stroke:currentColor!important;}
  .ww583-employee-card .ww583-state-pill.is-progress{background:rgba(244,249,246,.90)!important;color:#2c644b!important;}
  .ww583-employee-card .ww583-state-pill.is-progress i{width:8px!important;height:8px!important;border-radius:50%!important;background:#30a45d!important;display:block!important;}
  .ww583-employee-card .ww583-state-pill.is-completed{background:#45a35d!important;color:#fff!important;border-color:#78c88a!important;}
  .ww583-employee-card .ww583-state-pill.is-declined{background:#b9433e!important;color:#fff!important;border-color:#d47068!important;}

  .ww583-employee-card .ww583-response-control{
    height:40px!important;display:inline-flex!important;align-items:center!important;padding:2px!important;border-radius:13px!important;
    border:1px solid #d7c9ad!important;background:#fffefa!important;box-shadow:0 4px 11px rgba(8,36,29,.23),inset 0 1px 0 #fff!important;overflow:hidden!important;
  }
  .ww583-employee-card .ww583-response-control button{
    height:34px!important;min-height:34px!important;padding:0 10px!important;border:0!important;border-radius:10px!important;background:transparent!important;display:inline-flex!important;align-items:center!important;gap:5px!important;
    font-size:9.5px!important;font-weight:900!important;line-height:1!important;white-space:nowrap!important;box-shadow:none!important;
  }
  .ww583-employee-card .ww583-response-control button svg{width:11px!important;height:11px!important;stroke:currentColor!important;stroke-width:2.6!important;}
  .ww583-employee-card .ww583-response-control .ww583-decline{color:#a33e37!important;background:#fff5f3!important;border-right:1px solid #e9ded4!important;border-radius:10px 4px 4px 10px!important;}
  .ww583-employee-card .ww583-response-control .ww583-accept{color:#fff!important;background:linear-gradient(180deg,#31824a,#226b3b)!important;border-radius:4px 10px 10px 4px!important;box-shadow:0 2px 5px rgba(20,78,40,.24)!important;}

  .ww583-employee-card .ww583-plain-person{min-height:29px!important;padding:6px 10px!important;}

  /* Exact approved single-employee declined treatment. */
  body.ww-roster-active .roster-mobile .ww583-employee-card.is-declined,
  body .home-roster-list .ww583-employee-card.is-declined{
    border-color:#e58a84!important;
    background:linear-gradient(135deg,#fff1ef 0%,#f9e4e1 100%)!important;
    color:#5f2523!important;
    box-shadow:inset 5px 0 0 #c84540,inset 0 1px 0 rgba(255,255,255,.9),0 9px 20px rgba(119,47,42,.14)!important;
  }
  .ww583-employee-card.is-declined .ww583-hours{background:#cf6661!important;border-color:#e7a09b!important;color:#fff!important;}
  .ww583-employee-card.is-declined .ww583-copy h3{color:#752b29!important;text-shadow:none!important;}
  .ww583-employee-card.is-declined .ww583-time{color:#806b67!important;}
  .ww583-employee-card.is-declined .ww583-staff-band{border-top-color:#e8c8c4!important;}
  .ww583-employee-card.is-declined .ww583-staff-label{color:#9a7b78!important;}
  .ww583-employee-card.is-declined .ww583-staff-grid{border-color:#edd1ce!important;background:rgba(255,255,255,.32)!important;}
  .ww583-employee-card.is-declined .ww583-person{border-color:#edd1ce!important;}
  .ww583-employee-card.is-declined .ww583-staff-name{color:#25472f!important;}
  .ww583-employee-card.is-declined .ww583-chevron{color:#b3403a!important;border-color:rgba(190,75,68,.18)!important;background:rgba(190,75,68,.06)!important;}

  /* Keep one/two-person cards compact while preserving the approved structure. */
  .ww583-card:has(.ww583-staff-band[data-staff-count="1"]){min-height:98px!important;grid-template-rows:58px auto!important;}
  .ww583-card:has(.ww583-staff-band[data-staff-count="2"]){min-height:100px!important;grid-template-rows:58px auto!important;}

  @media (max-width:390px){
    body.ww-roster-active .roster-mobile .ww583-card,
    body .home-roster-list .ww583-card{grid-template-columns:56px minmax(0,1fr) auto 24px!important;column-gap:8px!important;padding-left:11px!important;padding-right:9px!important;}
    .ww583-card .ww583-hours{width:54px!important;height:56px!important;border-radius:13px!important;}
    .ww583-card .ww583-hours strong{font-size:19px!important;}
    .ww583-card .ww583-copy h3{font-size:16px!important;}
    .ww583-card .ww583-time{font-size:10px!important;}
    .ww583-card .ww583-summary{padding:0 8px!important;font-size:8px!important;max-width:96px!important;overflow:hidden!important;text-overflow:ellipsis!important;}
    .ww583-card .ww583-staff-band{grid-template-columns:58px minmax(0,1fr)!important;}
    .ww583-card .ww583-staff-label{padding-left:4px!important;font-size:7px!important;}
    .ww583-card .ww583-person{padding:6px!important;gap:5px!important;}
    .ww583-card .ww583-staff-name{font-size:9px!important;}
    .ww583-card .ww583-person-status{padding:0 5px!important;font-size:7.5px!important;}
    .ww583-card .ww583-person-status svg{width:8px!important;height:8px!important;}
    .ww583-employee-card .ww583-start-shift{height:38px!important;min-height:38px!important;padding:0 12px!important;font-size:10.5px!important;gap:6px!important;}
    .ww583-employee-card .ww583-response-control{height:38px!important;}
    .ww583-employee-card .ww583-response-control button{height:32px!important;padding:0 7px!important;font-size:8.5px!important;}
  }
}

@media (max-width:1023px){
  /* The approved in-progress/completed/mixed-work mockups use full-width staff rows,
     not two cramped half-width cells. Keep response/name grids 2x2, but let work
     states breathe so names and clock details stay fully readable. */
  .ww583-card .ww583-staff-band[data-mode="all-progress"] .ww583-staff-grid,
  .ww583-card .ww583-staff-band[data-mode="all-completed"] .ww583-staff-grid,
  .ww583-card .ww583-staff-band[data-mode="mixed-work"] .ww583-staff-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .ww583-card .ww583-staff-band[data-mode="all-progress"] .ww583-person,
  .ww583-card .ww583-staff-band[data-mode="all-completed"] .ww583-person,
  .ww583-card .ww583-staff-band[data-mode="mixed-work"] .ww583-person{
    border-right:0!important;
  }
  .ww583-card .ww583-staff-band[data-mode="all-progress"] .ww583-person:nth-child(n+2),
  .ww583-card .ww583-staff-band[data-mode="all-completed"] .ww583-person:nth-child(n+2),
  .ww583-card .ww583-staff-band[data-mode="mixed-work"] .ww583-person:nth-child(n+2){
    border-top:1px solid rgba(255,255,255,.12)!important;
  }
  .ww583-card .ww583-staff-band[data-mode="all-progress"] .ww583-staff-name,
  .ww583-card .ww583-staff-band[data-mode="all-completed"] .ww583-staff-name,
  .ww583-card .ww583-staff-band[data-mode="mixed-work"] .ww583-staff-name{
    min-width:96px!important;flex:0 0 96px!important;
  }
  .ww583-card .ww583-summary.is-progress::before{
    content:""!important;width:7px!important;height:7px!important;border-radius:50%!important;background:#2da55a!important;display:block!important;margin-right:6px!important;flex:0 0 7px!important;
  }
}

/* ---- app-polish-v584.css ---- */
/* EarthRoster v584 — compact professional roster cards.
   Scope lock: roster cards only. Upper roster controls/header/calendar/nav unchanged.
   Goal: preserve v583 approved design language while reducing vertical footprint. */
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww583-card,
  body .home-roster-list .ww583-card{
    grid-template-columns:52px minmax(0,1fr) auto 24px!important;
    grid-template-rows:44px auto!important;
    column-gap:9px!important;
    row-gap:4px!important;
    min-height:84px!important;
    margin:0 10px 8px!important;
    padding:8px 9px 7px 11px!important;
    border-radius:15px!important;
    box-shadow:
      inset 4px 0 0 color-mix(in srgb,var(--pop,#2fa3cc) 86%,#8cecff 14%),
      inset 0 1px 0 rgba(255,255,255,.24),
      0 6px 14px color-mix(in srgb,var(--deep,#13607d) 20%,transparent)!important;
  }

  .ww583-card .ww583-hours{
    width:50px!important;height:50px!important;border-radius:12px!important;gap:2px!important;
  }
  .ww583-card .ww583-hours strong{font-size:18px!important;letter-spacing:-.03em!important;}
  .ww583-card .ww583-hours span{font-size:6.8px!important;letter-spacing:.12em!important;}

  .ww583-card .ww583-copy{gap:2px!important;}
  .ww583-card .ww583-copy h3{font-size:15.5px!important;line-height:1.02!important;letter-spacing:-.02em!important;}
  .ww583-card .ww583-time{gap:4px!important;font-size:9.5px!important;}
  .ww583-card .ww583-time svg{width:11px!important;height:11px!important;}

  .ww583-card .ww583-chevron{
    width:24px!important;height:32px!important;border-radius:9px!important;
  }
  .ww583-card .ww583-chevron svg{width:13px!important;height:13px!important;}

  .ww583-card .ww583-summary{
    min-height:23px!important;padding:0 8px!important;margin-top:0!important;
    font-size:7.5px!important;border-radius:999px!important;
    box-shadow:0 2px 5px rgba(5,37,55,.13),inset 0 1px 0 #fff!important;
  }
  .ww583-card .ww583-summary.is-progress::before{width:6px!important;height:6px!important;margin-right:4px!important;flex-basis:6px!important;}

  .ww583-card .ww583-staff-band{
    grid-template-columns:52px minmax(0,1fr)!important;
    border-top:1px solid rgba(255,255,255,.13)!important;
  }
  .ww583-card .ww583-staff-label{
    padding:7px 0 0 3px!important;font-size:6.7px!important;letter-spacing:.12em!important;
  }
  .ww583-card .ww583-staff-grid{
    margin:4px 0 0!important;border:0!important;border-radius:0!important;overflow:visible!important;background:transparent!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .ww583-card .ww583-staff-band[data-staff-count="1"] .ww583-staff-grid{grid-template-columns:minmax(0,1fr)!important;}
  .ww583-card .ww583-staff-band[data-staff-count="2"] .ww583-staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}

  .ww583-card .ww583-person{
    min-height:23px!important;padding:3px 7px!important;gap:5px!important;
    border-radius:0!important;
  }
  .ww583-card .ww583-person:nth-child(odd){border-right:1px solid rgba(255,255,255,.10)!important;}
  .ww583-card .ww583-person:nth-child(n+3){border-top:1px solid rgba(255,255,255,.10)!important;}
  .ww583-card .ww583-staff-name{font-size:8.8px!important;line-height:1!important;font-weight:900!important;}

  /* Match the uploaded compact reference: statuses read as typography, not bulky badges. */
  .ww583-card .ww583-person-status{
    min-height:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;
    gap:3px!important;font-size:7.2px!important;line-height:1!important;font-weight:900!important;
  }
  .ww583-card .ww583-person-status svg{width:8px!important;height:8px!important;}
  .ww583-card .ww583-person-status.is-accepted{background:transparent!important;border:0!important;color:#a7efb6!important;}
  .ww583-card .ww583-person-status.is-declined{background:transparent!important;border:0!important;color:#ff9a99!important;}
  .ww583-card .ww583-person-status.is-awaiting{background:transparent!important;border:0!important;color:#ffd875!important;}
  .ww583-card .ww583-person-status.is-progress{background:transparent!important;border:0!important;color:#ffe071!important;}
  .ww583-card .ww583-person-status.is-completed{background:transparent!important;border:0!important;color:#b5f0c2!important;}

  .ww583-card .ww583-clock-chip{
    min-height:19px!important;padding:0 5px!important;border-radius:5px!important;font-size:7px!important;gap:3px!important;
  }
  .ww583-card .ww583-clock-chip svg{width:7px!important;height:7px!important;}
  .ww583-card .ww583-complete-mark{width:14px!important;height:14px!important;flex-basis:14px!important;}
  .ww583-card .ww583-complete-mark svg{width:8px!important;height:8px!important;}
  .ww583-card .ww583-inout{font-size:7.2px!important;}

  /* Keep work-state cards compact too. Two people stay side-by-side; 3–4 use 2x2. */
  .ww583-card .ww583-staff-band[data-mode="all-progress"] .ww583-staff-grid,
  .ww583-card .ww583-staff-band[data-mode="all-completed"] .ww583-staff-grid,
  .ww583-card .ww583-staff-band[data-mode="mixed-work"] .ww583-staff-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .ww583-card .ww583-staff-band[data-mode="all-progress"] .ww583-person,
  .ww583-card .ww583-staff-band[data-mode="all-completed"] .ww583-person,
  .ww583-card .ww583-staff-band[data-mode="mixed-work"] .ww583-person{
    border-right:0!important;
  }
  .ww583-card .ww583-staff-band[data-mode="all-progress"] .ww583-person:nth-child(odd),
  .ww583-card .ww583-staff-band[data-mode="all-completed"] .ww583-person:nth-child(odd),
  .ww583-card .ww583-staff-band[data-mode="mixed-work"] .ww583-person:nth-child(odd){border-right:1px solid rgba(255,255,255,.10)!important;}
  .ww583-card .ww583-staff-band[data-mode="all-progress"] .ww583-person:nth-child(n+3),
  .ww583-card .ww583-staff-band[data-mode="all-completed"] .ww583-person:nth-child(n+3),
  .ww583-card .ww583-staff-band[data-mode="mixed-work"] .ww583-person:nth-child(n+3){border-top:1px solid rgba(255,255,255,.10)!important;}
  .ww583-card .ww583-staff-band[data-mode="all-progress"] .ww583-staff-name,
  .ww583-card .ww583-staff-band[data-mode="all-completed"] .ww583-staff-name,
  .ww583-card .ww583-staff-band[data-mode="mixed-work"] .ww583-staff-name{
    min-width:0!important;flex:1 1 auto!important;
  }
  .ww583-card .ww583-completed-person{
    display:grid!important;grid-template-columns:minmax(0,1fr) 14px!important;grid-template-rows:auto auto!important;gap:2px 4px!important;align-content:center!important;
  }
  .ww583-card .ww583-completed-person .ww583-staff-name{grid-column:1!important;grid-row:1!important;}
  .ww583-card .ww583-completed-person .ww583-complete-mark{grid-column:2!important;grid-row:1!important;justify-self:end!important;}
  .ww583-card .ww583-completed-person .ww583-inout{grid-row:2!important;}
  .ww583-card .ww583-completed-person .ww583-inout:nth-child(3){grid-column:1!important;}
  .ww583-card .ww583-completed-person .ww583-inout:nth-child(4){grid-column:2!important;justify-self:end!important;}

  /* Employee action controls shrink with the card, without losing visibility. */
  .ww583-employee-card .ww583-self-badge{min-height:17px!important;padding:0 5px!important;font-size:6.8px!important;border-radius:5px!important;gap:3px!important;}
  .ww583-employee-card .ww583-self-badge svg{width:8px!important;height:8px!important;}
  .ww583-employee-card .ww583-start-shift{
    height:32px!important;min-height:32px!important;padding:0 11px!important;gap:5px!important;font-size:9.2px!important;
    box-shadow:0 3px 8px rgba(8,36,29,.22),inset 0 1px 0 #fff!important;
  }
  .ww583-employee-card .ww583-start-shift svg{width:12px!important;height:12px!important;}
  .ww583-employee-card .ww583-state-pill{min-height:24px!important;padding:0 8px!important;font-size:8px!important;gap:4px!important;}
  .ww583-employee-card .ww583-state-pill svg{width:9px!important;height:9px!important;}
  .ww583-employee-card .ww583-response-control{height:31px!important;padding:1px!important;border-radius:10px!important;}
  .ww583-employee-card .ww583-response-control button{height:27px!important;min-height:27px!important;padding:0 7px!important;font-size:7.8px!important;gap:3px!important;}
  .ww583-employee-card .ww583-response-control button svg{width:9px!important;height:9px!important;}
  .ww583-employee-card .ww583-plain-person{min-height:22px!important;padding:3px 7px!important;}

  /* One/two-person cards become even shorter. */
  .ww583-card:has(.ww583-staff-band[data-staff-count="1"]){min-height:72px!important;grid-template-rows:44px auto!important;}
  .ww583-card:has(.ww583-staff-band[data-staff-count="2"]){min-height:74px!important;grid-template-rows:44px auto!important;}

  /* Single declined card keeps the refined red treatment but at the same compact scale. */
  body.ww-roster-active .roster-mobile .ww583-employee-card.is-declined,
  body .home-roster-list .ww583-employee-card.is-declined{
    box-shadow:inset 4px 0 0 #c84540,inset 0 1px 0 rgba(255,255,255,.9),0 6px 14px rgba(119,47,42,.13)!important;
  }

  @media (max-width:390px){
    body.ww-roster-active .roster-mobile .ww583-card,
    body .home-roster-list .ww583-card{grid-template-columns:48px minmax(0,1fr) auto 22px!important;column-gap:7px!important;padding:7px 8px 6px 10px!important;}
    .ww583-card .ww583-hours{width:46px!important;height:47px!important;border-radius:11px!important;}
    .ww583-card .ww583-hours strong{font-size:16.5px!important;}
    .ww583-card .ww583-copy h3{font-size:14px!important;}
    .ww583-card .ww583-time{font-size:8.8px!important;}
    .ww583-card .ww583-summary{font-size:6.8px!important;padding:0 6px!important;max-width:88px!important;}
    .ww583-card .ww583-staff-band{grid-template-columns:45px minmax(0,1fr)!important;}
    .ww583-card .ww583-staff-name{font-size:8.1px!important;}
    .ww583-card .ww583-person-status{font-size:6.6px!important;}
    .ww583-employee-card .ww583-start-shift{height:30px!important;min-height:30px!important;padding:0 8px!important;font-size:8.4px!important;}
    .ww583-employee-card .ww583-response-control button{padding:0 5px!important;font-size:7.1px!important;}
  }
}

/* ---- app-polish-v585.css ---- */
/* EarthRoster v585 — one consistent roster-card system.
   SCOPE LOCK: roster cards only. Upper roster header, Team Roster & Billing,
   Add job, filter, calendar/date controls and navigation are unchanged. */
@media (max-width:1023px){
  /* One shared skeleton for admin + employee and for 1–4 staff. */
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    grid-template-columns:52px minmax(0,1fr) auto 24px!important;
    grid-template-rows:44px auto!important;
    column-gap:9px!important;row-gap:4px!important;
    min-height:76px!important;margin:0 10px 8px!important;padding:8px 9px 7px 11px!important;
    border-radius:16px!important;
    border:1px solid color-mix(in srgb,var(--solid,#238651) 64%,#cdebd8 36%)!important;
    background:
      radial-gradient(circle at 90% -10%,rgba(255,255,255,.13),transparent 38%),
      linear-gradient(135deg,color-mix(in srgb,var(--solid,#238651) 82%,#45a66c 18%),color-mix(in srgb,var(--deep,#145837) 90%,#1b7448 10%))!important;
    box-shadow:inset 4px 0 0 color-mix(in srgb,var(--pop,#49a866) 86%,#a8efbd 14%),inset 0 1px 0 rgba(255,255,255,.24),0 6px 14px color-mix(in srgb,var(--deep,#145837) 20%,transparent)!important;
  }
  .ww585-card .ww583-hours{width:50px!important;height:50px!important;border-radius:12px!important;gap:2px!important;}
  .ww585-card .ww583-hours strong{font-size:18px!important;}
  .ww585-card .ww583-hours span{font-size:6.8px!important;}
  .ww585-card .ww583-copy{grid-column:2!important;grid-row:1!important;gap:2px!important;}
  .ww585-admin-card .ww583-copy{grid-column:2 / 4!important;}
  .ww585-card .ww583-copy h3{font-size:15.5px!important;line-height:1.03!important;}
  .ww585-card .ww583-time{gap:4px!important;font-size:9.5px!important;}
  .ww585-card .ww583-time svg{width:11px!important;height:11px!important;}
  .ww585-card .ww583-chevron{grid-column:4!important;grid-row:1!important;width:24px!important;height:32px!important;border-radius:9px!important;}
  .ww585-card .ww583-chevron svg{width:13px!important;height:13px!important;}

  /* Always the same staff area. 1/2 staff occupy the first row; 3/4 add row two. */
  .ww585-card .ww585-staff-band{grid-template-columns:52px minmax(0,1fr)!important;border-top:1px solid rgba(255,255,255,.14)!important;}
  .ww585-card .ww583-staff-label{padding:7px 0 0 3px!important;font-size:6.7px!important;letter-spacing:.12em!important;}
  .ww585-card .ww585-staff-grid{
    margin:4px 0 0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
    border:0!important;border-radius:0!important;background:transparent!important;overflow:visible!important;
  }
  .ww585-card .ww585-person{min-height:23px!important;padding:3px 7px!important;gap:5px!important;border-radius:0!important;}
  .ww585-card .ww585-person:nth-child(odd){border-right:1px solid rgba(255,255,255,.10)!important;}
  .ww585-card .ww585-person:nth-child(n+3){border-top:1px solid rgba(255,255,255,.10)!important;}
  .ww585-card .ww583-staff-name{font-size:8.8px!important;line-height:1!important;font-weight:900!important;}

  /* Admin statuses: always beside the employee who owns the status. No overall mixed-team badge. */
  .ww585-person-state{margin-left:auto;display:inline-flex!important;align-items:center!important;gap:3px!important;min-height:18px!important;padding:0 6px!important;border-radius:999px!important;font-size:6.8px!important;font-weight:900!important;line-height:1!important;white-space:nowrap!important;border:1px solid transparent!important;}
  .ww585-person-state svg{width:7px!important;height:7px!important;stroke:currentColor!important;}
  .ww585-person-state small{font-size:6px!important;font-weight:800!important;opacity:.82!important;margin-left:1px!important;}
  .ww585-person-state.is-accepted{background:#2f9953!important;color:#f0fff3!important;border-color:#58b774!important;}
  .ww585-person-state.is-declined{background:#b6423d!important;color:#fff1ef!important;border-color:#dc6c65!important;}
  .ww585-person-state.is-awaiting{background:#8c6a22!important;color:#fff0bc!important;border-color:#b28b39!important;}
  .ww585-person-state.is-progress{background:#426f43!important;color:#e9ffd9!important;border-color:#70a36a!important;}
  .ww585-person-state.is-completed{background:#23874b!important;color:#edfff2!important;border-color:#58ad72!important;}

  /* One fixed action location on employee cards for every state. */
  .ww585-action-area{grid-column:3!important;grid-row:1!important;z-index:4!important;align-self:center!important;justify-self:end!important;display:flex!important;align-items:center!important;max-width:190px!important;}
  .ww585-response{display:inline-flex!important;align-items:center!important;gap:5px!important;}
  .ww585-response button,.ww585-start-shift,.ww585-action-pill{height:28px!important;min-height:28px!important;border-radius:999px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;padding:0 9px!important;font-size:7.8px!important;line-height:1!important;font-weight:900!important;white-space:nowrap!important;}
  .ww585-response button svg,.ww585-start-shift svg,.ww585-action-pill svg{width:9px!important;height:9px!important;stroke:currentColor!important;}
  .ww585-decline{border:1px solid #ef8b82!important;background:linear-gradient(180deg,#d95a52,#b93f39)!important;color:#fff!important;box-shadow:0 3px 7px rgba(90,27,23,.18),inset 0 1px 0 rgba(255,255,255,.25)!important;}
  .ww585-accept{border:1px solid #79cf8e!important;background:linear-gradient(180deg,#3cab61,#238748)!important;color:#fff!important;box-shadow:0 3px 7px rgba(20,83,44,.19),inset 0 1px 0 rgba(255,255,255,.22)!important;}
  .ww585-accepted-start{display:inline-flex!important;align-items:center!important;gap:5px!important;}
  .ww585-action-pill{border:1px solid rgba(255,255,255,.32)!important;}
  .ww585-action-pill.is-accepted{background:#2b934f!important;color:#effff3!important;border-color:#5dbc76!important;}
  .ww585-action-pill.is-declined{background:#bd443e!important;color:#fff!important;border-color:#eb8179!important;}
  .ww585-action-pill.is-progress{background:#daf1df!important;color:#285f3e!important;border-color:#8fc9a0!important;}
  .ww585-action-pill.is-completed{background:#39a05a!important;color:#fff!important;border-color:#7acc8c!important;}
  .ww585-action-pill.is-awaiting{background:#f4dfad!important;color:#70540d!important;border-color:#dabd76!important;}
  .ww585-start-shift{border:1.5px solid #e5bb53!important;background:linear-gradient(180deg,rgba(10,58,40,.96),rgba(6,43,30,.98))!important;color:#f5cc67!important;box-shadow:0 3px 8px rgba(4,31,22,.24),inset 0 1px 0 rgba(255,255,255,.11)!important;}
  .ww585-start-shift svg{fill:#f5cc67!important;stroke:#f5cc67!important;}
  .ww585-action-stack{display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:2px!important;}
  .ww585-action-stack small{font-size:6.3px!important;font-weight:800!important;color:rgba(255,255,255,.78)!important;white-space:nowrap!important;}

  /* Employee declined = same geometry, stronger red treatment. */
  body.ww-roster-active .roster-mobile .ww585-employee-card.is-declined,
  body .home-roster-list .ww585-employee-card.is-declined{
    --solid:#c95c54!important;--deep:#8f332f!important;--pop:#e77d73!important;
    border-color:#df766d!important;
    background:radial-gradient(circle at 90% -10%,rgba(255,255,255,.18),transparent 40%),linear-gradient(135deg,#c66057,#9e3d37)!important;
    box-shadow:inset 4px 0 0 #ef7d72,inset 0 1px 0 rgba(255,255,255,.25),0 6px 14px rgba(111,37,32,.18)!important;
  }

  /* Staff count changes rows only; card language/shape never changes. */
  .ww585-card:has(.ww585-staff-band[data-staff-count="1"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="2"]){min-height:74px!important;}
  .ww585-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="4"]){min-height:84px!important;}

  @media(max-width:390px){
    body.ww-roster-active .roster-mobile .ww585-card,body .home-roster-list .ww585-card{grid-template-columns:48px minmax(0,1fr) auto 22px!important;column-gap:7px!important;padding:7px 8px 6px 10px!important;}
    .ww585-card .ww583-hours{width:46px!important;height:47px!important;}
    .ww585-card .ww583-copy h3{font-size:14px!important;}
    .ww585-card .ww583-time{font-size:8.7px!important;}
    .ww585-card .ww585-staff-band{grid-template-columns:45px minmax(0,1fr)!important;}
    .ww585-card .ww583-staff-name{font-size:8px!important;}
    .ww585-person-state{font-size:6.1px!important;padding:0 4px!important;}
    .ww585-person-state small{display:none!important;}
    .ww585-response button,.ww585-start-shift,.ww585-action-pill{height:27px!important;min-height:27px!important;padding:0 7px!important;font-size:7.1px!important;}
  }
}

/* ---- app-polish-v586.css ---- */
/* EarthRoster v586 — approved compact roster-state visual system.
   SCOPE LOCK: roster cards only. No changes to the roster header, billing panel,
   Add job, filter, calendar/date strip, navigation, clock logic, or shift logic. */
@media (max-width:1023px){
  /* Keep the v585 compact single card skeleton, but give it the refined inset edge
     and softer depth from the approved references. */
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    border-radius:15px!important;
    border-width:1px!important;
    box-shadow:
      inset 3px 0 0 color-mix(in srgb,var(--pop,#49a866) 82%,#b8f4c7 18%),
      inset 0 0 0 1px rgba(255,255,255,.16),
      inset 0 1px 0 rgba(255,255,255,.25),
      0 5px 12px color-mix(in srgb,var(--deep,#145837) 18%,transparent)!important;
  }
  .ww585-card .ww583-hours{
    border-radius:12px!important;
    background:color-mix(in srgb,var(--deep,#145837) 78%,rgba(0,0,0,.12) 22%)!important;
    border-color:rgba(255,255,255,.15)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12)!important;
  }
  .ww585-card .ww583-copy h3{font-weight:900!important;letter-spacing:-.02em!important;}
  .ww585-card .ww583-time{color:rgba(255,255,255,.84)!important;}

  /* Response buttons — strong enough to notice, still compact enough for 4 cards. */
  .ww585-response{gap:6px!important;}
  .ww585-response button{
    height:29px!important;min-height:29px!important;padding:0 11px!important;
    border-radius:999px!important;font-size:8px!important;letter-spacing:.005em!important;
  }
  .ww585-decline{
    border:1px solid #f09a92!important;
    background:linear-gradient(180deg,#dd6159 0%,#c8433d 100%)!important;
    color:#fff!important;
    box-shadow:0 3px 7px rgba(111,38,32,.18),inset 0 1px 0 rgba(255,255,255,.28)!important;
  }
  .ww585-accept{
    border:1px solid #83d79a!important;
    background:linear-gradient(180deg,#43ac64 0%,#258a49 100%)!important;
    color:#fff!important;
    box-shadow:0 3px 7px rgba(20,83,44,.18),inset 0 1px 0 rgba(255,255,255,.25)!important;
  }

  /* Accepted + Start shift — keep the supportive accepted state, make Start shift
     a proper EarthRoster control instead of a white or gold-heavy button. */
  .ww585-action-pill.is-accepted{
    background:linear-gradient(180deg,#3aa35b,#27884a)!important;
    color:#f3fff5!important;
    border-color:#70c888!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18)!important;
  }
  .ww585-start-shift{
    height:30px!important;min-height:30px!important;padding:0 11px!important;
    border:1px solid #86cba0!important;
    border-radius:999px!important;
    background:linear-gradient(180deg,#205f43 0%,#174d36 100%)!important;
    color:#f3fff6!important;
    box-shadow:0 4px 9px rgba(8,55,35,.20),inset 0 1px 0 rgba(255,255,255,.19)!important;
    font-size:8px!important;font-weight:900!important;letter-spacing:.01em!important;
  }
  .ww585-start-shift:hover,.ww585-start-shift:focus-visible{
    background:linear-gradient(180deg,#28704e 0%,#19563b 100%)!important;
    border-color:#a1dab3!important;
  }
  .ww585-start-shift svg{fill:#dff7e6!important;stroke:#dff7e6!important;}

  /* In progress — dark translucent state panel with fresh green text, matching the
     approved reference instead of the old pale/white pill. */
  .ww585-action-pill.is-progress{
    background:rgba(13,70,42,.36)!important;
    color:#a9ec9e!important;
    border-color:rgba(130,210,143,.38)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important;
  }
  .ww585-action-pill.is-progress svg{stroke:#a9ec9e!important;}
  .ww585-action-stack small{
    color:rgba(255,255,255,.78)!important;
    font-size:6.4px!important;
    letter-spacing:.005em!important;
  }

  /* Completed — positive green status, no white washout. */
  .ww585-action-pill.is-completed{
    background:linear-gradient(180deg,#43a760 0%,#2e8e4e 100%)!important;
    color:#fff!important;
    border-color:#78ca8d!important;
    box-shadow:0 3px 7px rgba(17,75,39,.15),inset 0 1px 0 rgba(255,255,255,.20)!important;
  }

  /* Declined employee shift — soft pale red card, strong red status, dark readable
     text. Same card geometry as every other state; only the state treatment changes. */
  body.ww-roster-active .roster-mobile .ww585-employee-card.is-declined,
  body .home-roster-list .ww585-employee-card.is-declined{
    --solid:#f7e8e5!important;
    --deep:#f7e8e5!important;
    --pop:#d35c55!important;
    border:1px solid #dc6b63!important;
    background:
      radial-gradient(circle at 90% -12%,rgba(255,255,255,.70),transparent 42%),
      linear-gradient(135deg,#fbecea 0%,#f7e3df 58%,#f3dbd7 100%)!important;
    box-shadow:
      inset 3px 0 0 #d65b54,
      inset 0 0 0 1px rgba(255,255,255,.56),
      inset 0 1px 0 rgba(255,255,255,.95),
      0 5px 12px rgba(125,55,49,.11)!important;
  }
  .ww585-employee-card.is-declined .ww583-hours{
    background:linear-gradient(180deg,#d8736c,#c85d56)!important;
    border-color:rgba(171,62,55,.20)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 3px 7px rgba(133,53,47,.12)!important;
  }
  .ww585-employee-card.is-declined .ww583-hours strong,
  .ww585-employee-card.is-declined .ww583-hours span{color:#fff9f8!important;}
  .ww585-employee-card.is-declined .ww583-copy h3{color:#812b27!important;text-shadow:none!important;}
  .ww585-employee-card.is-declined .ww583-time{color:#8f4b46!important;}
  .ww585-employee-card.is-declined .ww583-time svg{stroke:#a2504a!important;}
  .ww585-employee-card.is-declined .ww585-staff-band{border-top-color:rgba(163,65,58,.17)!important;}
  .ww585-employee-card.is-declined .ww583-staff-label{color:#a84f49!important;}
  .ww585-employee-card.is-declined .ww585-person:nth-child(odd){border-right-color:rgba(163,65,58,.12)!important;}
  .ww585-employee-card.is-declined .ww585-person:nth-child(n+3){border-top-color:rgba(163,65,58,.12)!important;}
  .ww585-employee-card.is-declined .ww583-staff-name{color:#63332f!important;text-shadow:none!important;}
  .ww585-employee-card.is-declined .ww583-chevron{
    color:#b14e47!important;background:rgba(255,255,255,.30)!important;
    border-color:rgba(178,77,70,.22)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.62)!important;
  }
  .ww585-employee-card.is-declined .ww583-chevron svg{stroke:#b14e47!important;}
  .ww585-employee-card.is-declined .ww585-action-pill.is-declined{
    height:29px!important;min-height:29px!important;padding:0 11px!important;
    border:1px solid #e37a72!important;
    background:linear-gradient(180deg,#d95851 0%,#c5433d 100%)!important;
    color:#fff!important;
    box-shadow:0 4px 9px rgba(145,54,47,.16),inset 0 1px 0 rgba(255,255,255,.28)!important;
  }

  /* Admin individual statuses stay attached to each employee but use the same
     softer visual language as the employee state controls. */
  .ww585-person-state.is-accepted{background:#2e9651!important;border-color:#5db675!important;}
  .ww585-person-state.is-declined{background:#b94741!important;border-color:#db736c!important;}
  .ww585-person-state.is-awaiting{background:#8b6923!important;border-color:#b38a3a!important;}
  .ww585-person-state.is-progress{background:#326744!important;color:#d9ffd5!important;border-color:#62946c!important;}
  .ww585-person-state.is-completed{background:#2c8e4d!important;border-color:#60b778!important;}

  /* Preserve the density requirement: 1/2 staff remain very slim; 3/4 add only
     one compact staff row. */
  .ww585-card:has(.ww585-staff-band[data-staff-count="1"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="2"]){min-height:74px!important;}
  .ww585-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="4"]){min-height:84px!important;}

  @media(max-width:390px){
    .ww585-response button,.ww585-start-shift,.ww585-action-pill{font-size:7.2px!important;padding-left:8px!important;padding-right:8px!important;}
    .ww585-start-shift{height:28px!important;min-height:28px!important;}
  }
}

/* ---- app-polish-v587.css ---- */
/* EarthRoster v587 — restore approved roster-card proportions and states.
   SCOPE LOCK: roster cards only. Do not change roster header, Team Roster & Billing,
   Add job, filter, calendar/date strip, bottom navigation, or clock/shift logic. */
@media (max-width:1023px){
  /* Shared card shell — same geometry for employee/admin, 1–4 staff. */
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    position:relative!important;
    display:grid!important;
    grid-template-columns:76px minmax(0,1fr) 30px!important;
    grid-template-rows:72px auto!important;
    column-gap:14px!important;
    row-gap:7px!important;
    align-items:center!important;
    width:auto!important;
    min-height:118px!important;
    margin:0 14px 12px!important;
    padding:11px 14px 11px 16px!important;
    border-radius:19px!important;
    border:1px solid color-mix(in srgb,var(--solid,#238651) 62%,#cdebd8 38%)!important;
    background:
      radial-gradient(circle at 92% 0%,rgba(255,255,255,.12),transparent 42%),
      linear-gradient(135deg,
        color-mix(in srgb,var(--solid,#238651) 88%,#48a970 12%) 0%,
        color-mix(in srgb,var(--deep,#145837) 91%,var(--solid,#238651) 9%) 100%)!important;
    color:#fff!important;
    box-shadow:
      inset 4px 0 0 color-mix(in srgb,var(--pop,#49a866) 84%,#9ee6b5 16%),
      inset 0 0 0 1px rgba(255,255,255,.13),
      inset 0 1px 0 rgba(255,255,255,.22),
      0 7px 16px color-mix(in srgb,var(--deep,#145837) 18%,transparent)!important;
    overflow:hidden!important;
  }

  /* Hours tile like the approved reference — substantial, but compact. */
  .ww585-card .ww583-hours{
    grid-column:1!important;grid-row:1!important;
    width:72px!important;height:72px!important;
    margin:0!important;padding:0!important;
    display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;
    border-radius:17px!important;
    border:1px solid rgba(255,255,255,.13)!important;
    background:color-mix(in srgb,var(--deep,#145837) 76%,rgba(0,0,0,.08) 24%)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.13)!important;
  }
  .ww585-card .ww583-hours strong{font-size:27px!important;line-height:1!important;font-weight:900!important;letter-spacing:-.035em!important;color:#fff!important;}
  .ww585-card .ww583-hours span{font-size:10px!important;line-height:1!important;font-weight:900!important;letter-spacing:.13em!important;text-transform:uppercase!important;color:rgba(255,255,255,.77)!important;}

  /* Client + time. */
  .ww585-card .ww583-copy{grid-column:2!important;grid-row:1!important;align-self:center!important;display:flex!important;flex-direction:column!important;gap:6px!important;min-width:0!important;}
  .ww585-card .ww583-copy h3{margin:0!important;color:#fff!important;font-size:20px!important;line-height:1.02!important;font-weight:900!important;letter-spacing:-.025em!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .ww585-card .ww583-time{display:flex!important;align-items:center!important;gap:6px!important;color:rgba(255,255,255,.85)!important;font-size:12.5px!important;line-height:1!important;font-weight:780!important;white-space:nowrap!important;}
  .ww585-card .ww583-time svg{width:14px!important;height:14px!important;stroke:currentColor!important;}

  /* Employee cards are directly tappable; hide the extra arrow so the action area stays clean. */
  .ww585-employee-card .ww583-chevron{display:none!important;}
  .ww585-admin-card .ww583-chevron{grid-column:3!important;grid-row:1!important;width:30px!important;height:42px!important;border-radius:11px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;justify-self:end!important;background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.14)!important;}
  .ww585-admin-card .ww583-chevron svg{width:15px!important;height:15px!important;stroke:#fff!important;}

  /* Staff band — exact same skeleton for 1, 2, 3 and 4 people. */
  .ww585-card .ww585-staff-band{
    grid-column:1 / -1!important;grid-row:2!important;
    display:grid!important;grid-template-columns:92px minmax(0,1fr)!important;align-items:stretch!important;gap:0!important;
    margin:0!important;padding:0!important;min-width:0!important;
    border-top:1px solid rgba(255,255,255,.16)!important;
  }
  .ww585-card .ww583-staff-label{
    display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;
    padding:12px 0 0 7px!important;color:rgba(255,255,255,.66)!important;
    font-size:9.5px!important;line-height:1!important;font-weight:900!important;letter-spacing:.13em!important;text-transform:uppercase!important;
  }
  .ww585-card .ww585-staff-grid{
    min-width:0!important;margin:7px 0 0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
    border:0!important;border-radius:0!important;background:transparent!important;overflow:visible!important;
  }
  .ww585-card .ww585-person{
    min-width:0!important;min-height:31px!important;padding:6px 10px!important;display:flex!important;align-items:center!important;gap:7px!important;
    border-radius:0!important;background:transparent!important;box-shadow:none!important;white-space:nowrap!important;overflow:hidden!important;
  }
  .ww585-card .ww585-person:nth-child(odd){border-right:1px solid rgba(255,255,255,.10)!important;}
  .ww585-card .ww585-person:nth-child(n+3){border-top:1px solid rgba(255,255,255,.10)!important;}
  .ww585-card .ww583-staff-name{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;color:#fff!important;font-size:12.5px!important;line-height:1!important;font-weight:850!important;}

  /* Employee action slot is always lower-right, like the approved references. */
  .ww585-employee-card .ww585-staff-band{padding-right:260px!important;}
  .ww585-employee-card .ww585-action-area{
    position:absolute!important;right:18px!important;bottom:14px!important;z-index:6!important;
    display:flex!important;align-items:center!important;justify-content:flex-end!important;max-width:250px!important;
  }

  /* Awaiting: clear red/green pair. */
  .ww585-response{display:inline-flex!important;align-items:center!important;gap:10px!important;}
  .ww585-response button{
    height:42px!important;min-height:42px!important;padding:0 18px!important;border-radius:999px!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;
    font-size:13px!important;line-height:1!important;font-weight:900!important;white-space:nowrap!important;
  }
  .ww585-response button svg{width:14px!important;height:14px!important;stroke:currentColor!important;stroke-width:2.6!important;}
  .ww585-decline{border:1px solid #f29a94!important;background:linear-gradient(180deg,#df5b55 0%,#c9433e 100%)!important;color:#fff!important;box-shadow:0 4px 9px rgba(112,34,30,.18),inset 0 1px 0 rgba(255,255,255,.28)!important;}
  .ww585-accept{border:1px solid #77cf8e!important;background:linear-gradient(180deg,#39aa5e 0%,#23894a 100%)!important;color:#fff!important;box-shadow:0 4px 9px rgba(18,78,40,.18),inset 0 1px 0 rgba(255,255,255,.24)!important;}

  /* Accepted + Start shift: same compact row, no white and no gold-heavy button. */
  .ww585-accepted-start{display:inline-flex!important;align-items:center!important;gap:10px!important;}
  .ww585-action-pill,.ww585-start-shift{
    height:40px!important;min-height:40px!important;border-radius:999px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;
    padding:0 16px!important;font-size:12.5px!important;line-height:1!important;font-weight:900!important;white-space:nowrap!important;
  }
  .ww585-action-pill svg,.ww585-start-shift svg{width:14px!important;height:14px!important;stroke:currentColor!important;}
  .ww585-action-pill.is-accepted{background:rgba(55,165,88,.62)!important;color:#effff3!important;border:1px solid rgba(127,218,148,.56)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.13)!important;}
  .ww585-start-shift{border:1px solid #78c891!important;background:linear-gradient(180deg,#2d8f53 0%,#1c6f42 100%)!important;color:#fff!important;box-shadow:0 4px 10px rgba(8,52,33,.20),inset 0 1px 0 rgba(255,255,255,.18)!important;}
  .ww585-start-shift svg{fill:#fff!important;stroke:#fff!important;}

  /* In progress: integrated dark translucent panel, green text + clock time. */
  .ww585-action-stack{display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:4px!important;}
  .ww585-action-pill.is-progress{
    height:40px!important;min-height:40px!important;padding:0 16px!important;
    background:rgba(10,74,44,.34)!important;color:#a9ef9e!important;border:1px solid rgba(128,214,145,.30)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.07)!important;
  }
  .ww585-action-pill.is-progress svg{stroke:#a9ef9e!important;}
  .ww585-action-stack small{font-size:11px!important;font-weight:650!important;color:rgba(255,255,255,.73)!important;white-space:nowrap!important;}

  /* Completed: positive, compact and readable. */
  .ww585-action-pill.is-completed{
    height:40px!important;min-height:40px!important;padding:0 17px!important;
    background:linear-gradient(180deg,#45ad67 0%,#2d8f50 100%)!important;color:#fff!important;border:1px solid #78cb8f!important;
    box-shadow:0 4px 9px rgba(16,70,37,.15),inset 0 1px 0 rgba(255,255,255,.19)!important;
  }
  .ww585-action-pill.is-declined{
    height:40px!important;min-height:40px!important;padding:0 17px!important;
    background:linear-gradient(180deg,#dc5751 0%,#c43f3a 100%)!important;color:#fff!important;border:1px solid #e47a73!important;
    box-shadow:0 4px 9px rgba(132,45,39,.15),inset 0 1px 0 rgba(255,255,255,.24)!important;
  }

  /* Single-employee declined state: pale red reference, never thick solid red. */
  body.ww-roster-active .roster-mobile .ww585-employee-card.is-declined,
  body .home-roster-list .ww585-employee-card.is-declined{
    --solid:#f7e8e5!important;--deep:#f4dfdc!important;--pop:#d45e57!important;
    border:1px solid #dd6a63!important;
    background:linear-gradient(135deg,#fcefee 0%,#f7e4e1 62%,#f5dfdc 100%)!important;
    color:#6f2824!important;
    box-shadow:inset 4px 0 0 #d4554e,inset 0 0 0 1px rgba(255,255,255,.65),inset 0 1px 0 rgba(255,255,255,.92),0 7px 16px rgba(117,51,46,.11)!important;
  }
  .ww585-employee-card.is-declined .ww583-hours{background:linear-gradient(180deg,#d97069,#c75c56)!important;border-color:rgba(171,62,55,.18)!important;}
  .ww585-employee-card.is-declined .ww583-hours strong,.ww585-employee-card.is-declined .ww583-hours span{color:#fff!important;}
  .ww585-employee-card.is-declined .ww583-copy h3{color:#7b2925!important;text-shadow:none!important;}
  .ww585-employee-card.is-declined .ww583-time{color:#8d4a45!important;}
  .ww585-employee-card.is-declined .ww583-time svg{stroke:#9d5049!important;}
  .ww585-employee-card.is-declined .ww585-staff-band{border-top-color:rgba(164,67,59,.17)!important;}
  .ww585-employee-card.is-declined .ww583-staff-label{color:#a74a44!important;}
  .ww585-employee-card.is-declined .ww583-staff-name{color:#6a312d!important;text-shadow:none!important;}
  .ww585-employee-card.is-declined .ww585-person:nth-child(odd){border-right-color:rgba(164,67,59,.10)!important;}
  .ww585-employee-card.is-declined .ww585-person:nth-child(n+3){border-top-color:rgba(164,67,59,.10)!important;}

  /* Admin states: plain, attached to the correct employee, no overall team badge. */
  .ww585-person-state{margin-left:auto!important;display:inline-flex!important;align-items:center!important;gap:5px!important;min-height:23px!important;padding:0 8px!important;border-radius:999px!important;font-size:9px!important;font-weight:900!important;line-height:1!important;white-space:nowrap!important;border:1px solid transparent!important;}
  .ww585-person-state svg{width:9px!important;height:9px!important;stroke:currentColor!important;}
  .ww585-person-state small{font-size:7px!important;font-weight:800!important;opacity:.80!important;margin-left:2px!important;}
  .ww585-person-state.is-accepted{background:#2f9953!important;color:#effff2!important;border-color:#59b974!important;}
  .ww585-person-state.is-declined{background:#b64540!important;color:#fff0ef!important;border-color:#dd7069!important;}
  .ww585-person-state.is-awaiting{background:#8d6a22!important;color:#fff0bd!important;border-color:#b48b3a!important;}
  .ww585-person-state.is-progress{background:#386947!important;color:#dcffd7!important;border-color:#65976f!important;}
  .ww585-person-state.is-completed{background:#2b8d4d!important;color:#effff3!important;border-color:#5db878!important;}

  /* Density: enough room to read, still roughly 4 cards on a typical phone screen. */
  .ww585-card:has(.ww585-staff-band[data-staff-count="1"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="2"]){min-height:118px!important;}
  .ww585-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="4"]){min-height:138px!important;}

  @media(max-width:390px){
    body.ww-roster-active .roster-mobile .ww585-card,body .home-roster-list .ww585-card{grid-template-columns:68px minmax(0,1fr) 26px!important;padding:10px 11px 10px 13px!important;margin-left:10px!important;margin-right:10px!important;}
    .ww585-card .ww583-hours{width:65px!important;height:65px!important;border-radius:15px!important;}
    .ww585-card .ww583-hours strong{font-size:24px!important;}
    .ww585-card .ww583-hours span{font-size:9px!important;}
    .ww585-card .ww583-copy h3{font-size:18px!important;}
    .ww585-card .ww583-time{font-size:11.5px!important;}
    .ww585-card .ww585-staff-band{grid-template-columns:82px minmax(0,1fr)!important;}
    .ww585-card .ww583-staff-name{font-size:11.5px!important;}
    .ww585-employee-card .ww585-staff-band{padding-right:220px!important;}
    .ww585-response{gap:7px!important;}
    .ww585-response button{height:38px!important;min-height:38px!important;padding:0 13px!important;font-size:11.5px!important;}
    .ww585-action-pill,.ww585-start-shift{height:38px!important;min-height:38px!important;padding:0 12px!important;font-size:11.5px!important;}
    .ww585-employee-card .ww585-action-area{right:14px!important;bottom:12px!important;max-width:215px!important;}
  }
}

/* ---- app-polish-v588.css ---- */
/* EarthRoster v588 — approved roster-card baseline from user reference screenshots.
   SCOPE LOCK: roster cards only. Header, Team Roster & Billing, Add job, filter,
   calendar/date selector, navigation and clock/geofence logic stay untouched. */
@media (max-width:1023px){
  /* One card family for employee/admin and 1–4 staff. */
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    position:relative!important;
    display:grid!important;
    grid-template-columns:76px minmax(0,1fr) 34px!important;
    grid-template-rows:70px auto!important;
    column-gap:14px!important;
    row-gap:0!important;
    align-items:center!important;
    width:auto!important;
    min-height:122px!important;
    margin:0 14px 11px!important;
    padding:10px 14px 9px 15px!important;
    border-radius:19px!important;
    border:1px solid color-mix(in srgb,var(--solid,#238651) 63%,#d7efe0 37%)!important;
    background:
      radial-gradient(circle at 8% 0%,rgba(255,255,255,.11),transparent 34%),
      linear-gradient(128deg,
        color-mix(in srgb,var(--solid,#238651) 92%,#48a970 8%) 0%,
        color-mix(in srgb,var(--deep,#145837) 92%,var(--solid,#238651) 8%) 100%)!important;
    color:#fff!important;
    box-shadow:
      inset 4px 0 0 color-mix(in srgb,var(--pop,#49a866) 86%,#9ee6b5 14%),
      inset 0 0 0 1px rgba(255,255,255,.15),
      inset 0 1px 0 rgba(255,255,255,.19),
      0 7px 15px color-mix(in srgb,var(--deep,#145837) 17%,transparent)!important;
    overflow:hidden!important;
  }

  /* Approved reference proportions: substantial hours tile, readable copy. */
  .ww585-card .ww583-hours{
    grid-column:1!important;grid-row:1!important;
    width:72px!important;height:72px!important;
    margin:0!important;padding:0!important;
    display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;
    border-radius:17px!important;
    border:1px solid rgba(255,255,255,.10)!important;
    background:color-mix(in srgb,var(--deep,#145837) 78%,rgba(0,0,0,.07) 22%)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12)!important;
  }
  .ww585-card .ww583-hours strong{font-size:28px!important;line-height:.96!important;font-weight:900!important;letter-spacing:-.035em!important;color:#fff!important;}
  .ww585-card .ww583-hours span{font-size:10px!important;line-height:1!important;font-weight:900!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:rgba(255,255,255,.80)!important;}

  .ww585-card .ww583-copy{
    grid-column:2!important;grid-row:1!important;align-self:center!important;min-width:0!important;
    display:flex!important;flex-direction:column!important;gap:6px!important;
  }
  .ww585-card .ww583-copy h3{margin:0!important;color:#fff!important;font-size:20px!important;line-height:1.02!important;font-weight:900!important;letter-spacing:-.025em!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .ww585-card .ww583-time{display:flex!important;align-items:center!important;gap:6px!important;color:rgba(255,255,255,.86)!important;font-size:12.5px!important;line-height:1!important;font-weight:780!important;white-space:nowrap!important;}
  .ww585-card .ww583-time svg{width:14px!important;height:14px!important;stroke:currentColor!important;}

  /* Admin chevron stays discreet. Employee card is itself tappable. */
  .ww585-employee-card .ww583-chevron{display:none!important;}
  .ww585-admin-card .ww583-chevron{grid-column:3!important;grid-row:1!important;width:32px!important;height:44px!important;border-radius:12px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;justify-self:end!important;background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.15)!important;}
  .ww585-admin-card .ww583-chevron svg{width:15px!important;height:15px!important;stroke:#fff!important;}

  /* Staff row = same skeleton for every employee count. */
  .ww585-card .ww585-staff-band{
    grid-column:1 / -1!important;grid-row:2!important;
    display:grid!important;grid-template-columns:92px minmax(0,1fr)!important;align-items:stretch!important;
    gap:0!important;margin:0!important;padding:0!important;min-width:0!important;
    border-top:1px solid rgba(255,255,255,.16)!important;
  }
  .ww585-card .ww583-staff-label{
    display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;
    padding:12px 0 0 7px!important;
    color:rgba(255,255,255,.70)!important;font-size:9.5px!important;line-height:1!important;font-weight:900!important;letter-spacing:.13em!important;text-transform:uppercase!important;
  }
  .ww585-card .ww585-staff-grid{
    min-width:0!important;margin:7px 0 0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
    border:0!important;border-radius:0!important;background:transparent!important;overflow:visible!important;
  }
  .ww585-card .ww585-person{
    min-width:0!important;min-height:31px!important;padding:6px 10px!important;display:flex!important;align-items:center!important;gap:6px!important;
    border-radius:0!important;background:transparent!important;box-shadow:none!important;white-space:nowrap!important;overflow:hidden!important;
  }
  .ww585-card .ww585-person:nth-child(odd){border-right:1px solid rgba(255,255,255,.10)!important;}
  .ww585-card .ww585-person:nth-child(n+3){border-top:1px solid rgba(255,255,255,.10)!important;}
  .ww585-card .ww583-staff-name{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;color:#fff!important;font-size:12.5px!important;line-height:1!important;font-weight:850!important;}

  /* Employee action area follows the reference: lower-right for normal states. */
  .ww585-employee-card .ww585-staff-band{padding-right:240px!important;}
  .ww585-employee-card .ww585-action-area{
    position:absolute!important;right:17px!important;bottom:14px!important;z-index:6!important;
    display:flex!important;align-items:center!important;justify-content:flex-end!important;max-width:232px!important;
  }

  /* Awaiting — reference red/green buttons. */
  .ww585-response{display:inline-flex!important;align-items:center!important;gap:10px!important;}
  .ww585-response button{
    height:42px!important;min-height:42px!important;padding:0 18px!important;border-radius:999px!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;
    font-size:13px!important;line-height:1!important;font-weight:900!important;white-space:nowrap!important;
  }
  .ww585-response button svg{width:14px!important;height:14px!important;stroke:currentColor!important;stroke-width:2.6!important;}
  .ww585-decline{border:1px solid #f2938d!important;background:linear-gradient(180deg,#dd5751 0%,#c9403b 100%)!important;color:#fff!important;box-shadow:0 4px 9px rgba(111,31,27,.19),inset 0 1px 0 rgba(255,255,255,.28)!important;}
  .ww585-accept{border:1px solid #78ce8e!important;background:linear-gradient(180deg,#3cad61 0%,#23894a 100%)!important;color:#fff!important;box-shadow:0 4px 9px rgba(18,78,40,.19),inset 0 1px 0 rgba(255,255,255,.24)!important;}

  /* Accepted + professional Start shift — dark green, clean mint edge. */
  .ww585-accepted-start{display:inline-flex!important;align-items:center!important;gap:9px!important;}
  .ww585-action-pill,.ww585-start-shift{
    height:40px!important;min-height:40px!important;border-radius:999px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;
    padding:0 15px!important;font-size:12.5px!important;line-height:1!important;font-weight:900!important;white-space:nowrap!important;
  }
  .ww585-action-pill svg,.ww585-start-shift svg{width:14px!important;height:14px!important;stroke:currentColor!important;}
  .ww585-action-pill.is-accepted{background:linear-gradient(180deg,rgba(57,170,92,.74),rgba(36,137,73,.74))!important;color:#f3fff5!important;border:1px solid rgba(127,218,148,.60)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)!important;}
  .ww585-start-shift{border:1px solid #73c98c!important;background:linear-gradient(180deg,#196b43 0%,#0d5033 100%)!important;color:#f2fff6!important;box-shadow:0 4px 10px rgba(7,48,30,.22),inset 0 1px 0 rgba(255,255,255,.17)!important;}
  .ww585-start-shift svg{fill:#a9e8b8!important;stroke:#a9e8b8!important;}

  /* In progress — same integrated panel as the approved reference. */
  .ww585-action-stack{display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:4px!important;}
  .ww585-action-pill.is-progress{height:40px!important;min-height:40px!important;padding:0 16px!important;background:rgba(9,71,42,.28)!important;color:#a9ef9e!important;border:1px solid rgba(128,214,145,.27)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.07)!important;}
  .ww585-action-pill.is-progress svg{stroke:#a9ef9e!important;}
  .ww585-action-stack small{font-size:11px!important;font-weight:650!important;color:rgba(255,255,255,.72)!important;white-space:nowrap!important;}

  /* Completed — positive and compact. */
  .ww585-action-pill.is-completed{height:40px!important;min-height:40px!important;padding:0 17px!important;background:linear-gradient(180deg,#45ad67 0%,#2d8f50 100%)!important;color:#fff!important;border:1px solid #78cb8f!important;box-shadow:0 4px 9px rgba(16,70,37,.15),inset 0 1px 0 rgba(255,255,255,.19)!important;}
  .ww585-action-pill.is-declined{height:40px!important;min-height:40px!important;padding:0 17px!important;background:linear-gradient(180deg,#da554f 0%,#c53f3a 100%)!important;color:#fff!important;border:1px solid #e37a73!important;box-shadow:0 4px 9px rgba(132,45,39,.15),inset 0 1px 0 rgba(255,255,255,.23)!important;}

  /* Completed card places the Completed pill in the approved top-right position. */
  .ww585-employee-card.is-completed .ww585-action-area{right:17px!important;top:17px!important;bottom:auto!important;}
  .ww585-employee-card.is-completed .ww583-copy{padding-right:145px!important;}
  .ww585-employee-card.is-completed .ww585-staff-band{padding-right:0!important;}

  /* Pale declined card — exact approved family, never a heavy solid-red block. */
  body.ww-roster-active .roster-mobile .ww585-employee-card.is-declined,
  body .home-roster-list .ww585-employee-card.is-declined{
    --solid:#f8ebe9!important;--deep:#f5e1df!important;--pop:#d65e57!important;
    border:1px solid #dc6a63!important;
    background:linear-gradient(132deg,#fff3f1 0%,#f9e7e5 62%,#f6e1df 100%)!important;
    color:#6f2824!important;
    box-shadow:inset 4px 0 0 #d6534c,inset 0 0 0 1px rgba(255,255,255,.70),inset 0 1px 0 rgba(255,255,255,.94),0 7px 15px rgba(117,51,46,.10)!important;
  }
  .ww585-employee-card.is-declined .ww583-hours{background:linear-gradient(180deg,#d96d66,#c75a54)!important;border-color:rgba(171,62,55,.18)!important;}
  .ww585-employee-card.is-declined .ww583-hours strong,.ww585-employee-card.is-declined .ww583-hours span{color:#fff!important;}
  .ww585-employee-card.is-declined .ww583-copy h3{color:#7b2925!important;text-shadow:none!important;}
  .ww585-employee-card.is-declined .ww583-time{color:#8c4843!important;}
  .ww585-employee-card.is-declined .ww583-time svg{stroke:#9d5049!important;}
  .ww585-employee-card.is-declined .ww585-staff-band{border-top-color:rgba(164,67,59,.17)!important;}
  .ww585-employee-card.is-declined .ww583-staff-label{color:#a84c46!important;}
  .ww585-employee-card.is-declined .ww583-staff-name{color:#67302c!important;text-shadow:none!important;}
  .ww585-employee-card.is-declined .ww585-person:nth-child(odd){border-right-color:rgba(164,67,59,.10)!important;}
  .ww585-employee-card.is-declined .ww585-person:nth-child(n+3){border-top-color:rgba(164,67,59,.10)!important;}

  /* Admin individual statuses stay attached to the correct employee. */
  .ww585-person-state{margin-left:auto!important;display:inline-flex!important;align-items:center!important;gap:4px!important;min-height:22px!important;padding:0 7px!important;border-radius:999px!important;font-size:8.8px!important;font-weight:900!important;line-height:1!important;white-space:nowrap!important;border:1px solid transparent!important;}
  .ww585-person-state svg{width:9px!important;height:9px!important;stroke:currentColor!important;}
  .ww585-person-state small{font-size:7px!important;font-weight:800!important;opacity:.82!important;margin-left:1px!important;}
  .ww585-person-state.is-accepted{background:#2f9953!important;color:#effff2!important;border-color:#59b974!important;}
  .ww585-person-state.is-declined{background:#b64540!important;color:#fff0ef!important;border-color:#dd7069!important;}
  .ww585-person-state.is-awaiting{background:#8d6a22!important;color:#fff0bd!important;border-color:#b48b3a!important;}
  .ww585-person-state.is-progress{background:#386947!important;color:#dcffd7!important;border-color:#65976f!important;}
  .ww585-person-state.is-completed{background:#2b8d4d!important;color:#effff3!important;border-color:#5db878!important;}

  /* 1–2 staff remain baseline height. 3–4 add only one compact row. */
  .ww585-card:has(.ww585-staff-band[data-staff-count="1"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="2"]){min-height:122px!important;}
  .ww585-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="4"]){min-height:151px!important;}

  /* Multi-staff employee cards keep the same shell. Names fill the same staff grid;
     the employee's own action moves into the top-right only to prevent name overlap. */
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]) .ww585-staff-band,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-staff-band,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-staff-band{padding-right:0!important;}
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]) .ww585-action-area,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-action-area,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-action-area{right:15px!important;top:15px!important;bottom:auto!important;max-width:225px!important;}
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]) .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww583-copy{padding-right:215px!important;}

  @media(max-width:390px){
    body.ww-roster-active .roster-mobile .ww585-card,body .home-roster-list .ww585-card{grid-template-columns:68px minmax(0,1fr) 28px!important;padding:9px 11px 8px 13px!important;margin-left:10px!important;margin-right:10px!important;}
    .ww585-card .ww583-hours{width:65px!important;height:65px!important;border-radius:15px!important;}
    .ww585-card .ww583-hours strong{font-size:24px!important;}
    .ww585-card .ww583-hours span{font-size:9px!important;}
    .ww585-card .ww583-copy h3{font-size:18px!important;}
    .ww585-card .ww583-time{font-size:11.5px!important;}
    .ww585-card .ww585-staff-band{grid-template-columns:80px minmax(0,1fr)!important;}
    .ww585-card .ww583-staff-name{font-size:11.5px!important;}
    .ww585-employee-card .ww585-staff-band{padding-right:205px!important;}
    .ww585-response{gap:7px!important;}
    .ww585-response button{height:38px!important;min-height:38px!important;padding:0 12px!important;font-size:11.5px!important;}
    .ww585-action-pill,.ww585-start-shift{height:38px!important;min-height:38px!important;padding:0 12px!important;font-size:11.5px!important;}
    .ww585-employee-card .ww585-action-area{right:13px!important;bottom:11px!important;max-width:205px!important;}
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]) .ww585-action-area,
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-action-area,
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-action-area{right:12px!important;top:12px!important;}
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]) .ww583-copy,
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww583-copy,
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww583-copy{padding-right:185px!important;}
  }
}

/* v588 runtime refinements after mobile verification: keep long client names readable
   and place completed In/Out detail exactly under the scheduled time. */
@media (max-width:1023px){
  .ww585-card .ww588-work-detail{margin-top:1px!important;color:rgba(255,255,255,.73)!important;font-size:11px!important;line-height:1!important;font-weight:650!important;white-space:nowrap!important;}

  /* Employee cards do not need the unused chevron grid column. */
  .ww585-employee-card{grid-template-columns:76px minmax(0,1fr)!important;}

  /* Multi-staff cards use the same shell/buttons, but compact the action footprint. */
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]) .ww585-accepted-start .is-accepted,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-accepted-start .is-accepted,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-accepted-start .is-accepted{display:none!important;}
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]) .ww585-start-shift,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-start-shift,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-start-shift{height:36px!important;min-height:36px!important;padding:0 12px!important;font-size:11px!important;}
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]).is-accepted .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]).is-accepted .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]).is-accepted .ww583-copy{padding-right:108px!important;}

  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]).is-progress .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]).is-progress .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]).is-progress .ww583-copy{padding-right:126px!important;}
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]).is-completed .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]).is-completed .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]).is-completed .ww583-copy{padding-right:116px!important;}

  /* Awaiting multi-staff shifts keep both approved response buttons but make them a
     compact top-right pair so the staff grid can remain unchanged. */
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]).is-awaiting .ww585-response button,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]).is-awaiting .ww585-response button,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]).is-awaiting .ww585-response button{height:35px!important;min-height:35px!important;padding:0 10px!important;font-size:10.5px!important;gap:5px!important;}
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]).is-awaiting .ww585-response,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]).is-awaiting .ww585-response,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]).is-awaiting .ww585-response{gap:6px!important;}
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]).is-awaiting .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]).is-awaiting .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]).is-awaiting .ww583-copy{padding-right:152px!important;}
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]).is-awaiting .ww583-copy h3,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]).is-awaiting .ww583-copy h3,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]).is-awaiting .ww583-copy h3{font-size:17px!important;white-space:normal!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;}

  @media(max-width:390px){
    .ww585-employee-card{grid-template-columns:68px minmax(0,1fr)!important;}
    .ww585-card .ww588-work-detail{font-size:10px!important;}
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]).is-accepted .ww583-copy,
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]).is-accepted .ww583-copy,
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]).is-accepted .ww583-copy{padding-right:98px!important;}
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]).is-awaiting .ww583-copy,
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]).is-awaiting .ww583-copy,
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]).is-awaiting .ww583-copy{padding-right:142px!important;}
  }
}

/* ---- app-polish-v589.css ---- */
/* EarthRoster v589 — roster-card alignment corrections from approved reference.
   SCOPE LOCK: roster cards only. No header/calendar/Add Job/filter/nav changes. */
@media (max-width:1023px){
  /* Employee action/status always belongs below the divider, inside the staff band. */
  .ww585-employee-card .ww585-staff-band{
    grid-template-columns:58px minmax(0,1fr) auto!important;
    align-items:center!important;
    column-gap:8px!important;
    padding-right:0!important;
  }
  .ww585-employee-card .ww583-staff-label{
    grid-column:1!important;
    align-self:start!important;
    padding:11px 0 0 5px!important;
  }
  .ww585-employee-card .ww585-staff-grid{
    grid-column:2!important;
    align-self:stretch!important;
    margin:5px 0!important;
    min-width:0!important;
  }
  .ww585-employee-card .ww585-action-area{
    position:static!important;
    grid-column:3!important;
    align-self:center!important;
    justify-self:end!important;
    margin:0 0 0 4px!important;
    max-width:none!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    z-index:auto!important;
  }

  /* 1–2 staff stay one row; 3–4 fill the same 2-column grid, no new card design. */
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-staff-grid{grid-template-columns:minmax(0,1fr)!important;}
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]) .ww585-staff-grid,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-staff-grid,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww583-staff-name,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww583-staff-name{font-size:10.6px!important;}
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-person,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-person{padding-left:5px!important;padding-right:5px!important;}

  /* Response needed: approved red/green controls sit wholly beneath divider. */
  .ww585-employee-card .ww585-response{gap:7px!important;}
  .ww585-employee-card .ww585-response button{
    height:34px!important;min-height:34px!important;
    padding:0 12px!important;
    font-size:11px!important;
    gap:5px!important;
    box-shadow:0 3px 8px rgba(16,48,29,.16),inset 0 1px 0 rgba(255,255,255,.26)!important;
  }
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-response button,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-response button{
    height:31px!important;min-height:31px!important;padding:0 9px!important;font-size:9.8px!important;
  }

  /* Accepted: clean mint action, no gold/white treatment. */
  .ww585-employee-card .ww585-accepted-start{gap:7px!important;}
  .ww585-employee-card .ww585-action-pill.is-accepted{
    height:31px!important;min-height:31px!important;padding:0 10px!important;
    background:linear-gradient(180deg,#3aa05a 0%,#27874a 100%)!important;
    color:#f1fff4!important;border:1px solid rgba(126,209,146,.62)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18)!important;
  }
  .ww585-employee-card .ww585-start-shift{
    height:34px!important;min-height:34px!important;padding:0 13px!important;
    border-radius:999px!important;
    border:1px solid #8fcda1!important;
    background:linear-gradient(180deg,#e9f7ed 0%,#d5eedc 100%)!important;
    color:#174b2d!important;
    box-shadow:0 3px 8px rgba(20,76,43,.16),inset 0 1px 0 rgba(255,255,255,.92)!important;
    font-size:10.8px!important;font-weight:900!important;
  }
  .ww585-employee-card .ww585-start-shift svg{fill:#23844a!important;stroke:#23844a!important;}
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]) .ww585-accepted-start .is-accepted,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-accepted-start .is-accepted,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-accepted-start .is-accepted{display:none!important;}

  /* In progress: one integrated lower-right panel, matching approved reference. */
  .ww585-employee-card .ww585-action-stack{
    min-width:132px!important;
    padding:8px 11px 7px!important;
    border-radius:14px!important;
    border:1px solid rgba(137,211,151,.22)!important;
    background:rgba(16,77,47,.22)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important;
    display:flex!important;flex-direction:column!important;align-items:center!important;gap:4px!important;
  }
  .ww585-employee-card .ww585-action-stack .ww585-action-pill.is-progress{
    height:auto!important;min-height:0!important;padding:0!important;
    border:0!important;background:transparent!important;box-shadow:none!important;
    color:#a9ef9e!important;font-size:11.3px!important;
  }
  .ww585-employee-card .ww585-action-stack small{
    color:rgba(255,255,255,.76)!important;font-size:10.1px!important;line-height:1.05!important;font-weight:650!important;
  }
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-action-stack,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-action-stack{min-width:114px!important;padding-left:8px!important;padding-right:8px!important;}

  /* Completed stays compact in the same lower action slot for consistency. */
  .ww585-employee-card.is-completed .ww585-action-area{position:static!important;grid-column:3!important;margin-left:4px!important;}
  .ww585-employee-card.is-completed .ww583-copy{padding-right:0!important;}
  .ww585-employee-card .ww585-action-pill.is-completed{height:32px!important;min-height:32px!important;padding:0 12px!important;font-size:10.8px!important;}

  /* Declined employee card: soft red reference treatment, same geometry. */
  body.ww-roster-active .roster-mobile .ww585-employee-card.is-declined,
  body .home-roster-list .ww585-employee-card.is-declined{
    border:1px solid #dc6b63!important;
    background:linear-gradient(135deg,#fbecea 0%,#f7e3df 58%,#f3dbd7 100%)!important;
    box-shadow:inset 3px 0 0 #d65b54,inset 0 0 0 1px rgba(255,255,255,.56),0 5px 12px rgba(125,55,49,.11)!important;
  }
  .ww585-employee-card.is-declined .ww585-action-pill.is-declined{height:32px!important;min-height:32px!important;padding:0 12px!important;font-size:10.8px!important;}

  /* Admin: individual statuses are plain inline text, not outlined circles/pills. */
  .ww585-admin-card .ww585-person-state{
    margin-left:auto!important;
    min-height:0!important;height:auto!important;
    padding:0!important;
    border:0!important;border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    gap:4px!important;
    font-size:9px!important;font-weight:900!important;
  }
  .ww585-admin-card .ww585-person-state svg{width:9px!important;height:9px!important;}
  .ww585-admin-card .ww585-person-state small{font-size:7.3px!important;margin-left:2px!important;}
  .ww585-admin-card .ww585-person-state.is-accepted{color:#a9efb8!important;}
  .ww585-admin-card .ww585-person-state.is-declined{color:#ff9b94!important;}
  .ww585-admin-card .ww585-person-state.is-awaiting{color:#f2cd79!important;}
  .ww585-admin-card .ww585-person-state.is-progress{color:#b7efad!important;}
  .ww585-admin-card .ww585-person-state.is-completed{color:#b5f2bf!important;}

  /* Preserve per-job/client colours — only an employee-declined card switches to pale red. */
  .ww585-admin-card,.ww585-employee-card:not(.is-declined){filter:none!important;}

  @media(max-width:390px){
    .ww585-employee-card .ww585-staff-band{grid-template-columns:50px minmax(0,1fr) auto!important;column-gap:5px!important;}
    .ww585-employee-card .ww585-response{gap:5px!important;}
    .ww585-employee-card .ww585-response button{height:31px!important;min-height:31px!important;padding:0 9px!important;font-size:9.7px!important;}
    .ww585-employee-card .ww585-start-shift{height:31px!important;min-height:31px!important;padding:0 10px!important;font-size:9.8px!important;}
    .ww585-employee-card .ww585-action-stack{min-width:118px!important;padding:7px 8px 6px!important;}
    .ww585-employee-card .ww585-action-stack .ww585-action-pill.is-progress{font-size:10px!important;}
    .ww585-employee-card .ww585-action-stack small{font-size:9px!important;}
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww583-staff-name,
    .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww583-staff-name{font-size:9.8px!important;}
  }
}

/* v589 final runtime correction: actions now live below the divider, so the client
   title no longer needs the old top-right action padding on multi-staff cards. */
@media (max-width:1023px){
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]) .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww583-copy{padding-right:0!important;}
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]) .ww583-copy h3,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww583-copy h3,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww583-copy h3{font-size:18px!important;white-space:nowrap!important;display:block!important;overflow:hidden!important;text-overflow:ellipsis!important;}
}
@media (max-width:1023px){
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]) .ww583-copy h3,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]) .ww583-copy h3,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]) .ww583-copy h3{max-width:none!important;width:auto!important;}
}

/* Admin multi-staff clarity: full names stay readable; plain status text sits
   directly beneath each name inside the same 2-column cell. No status bubbles. */
@media (max-width:1023px){
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="2"]) .ww585-person,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-person,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-person{
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:4px!important;
    padding:6px 8px!important;
    white-space:normal!important;
  }
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="2"]) .ww583-staff-name,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]) .ww583-staff-name,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]) .ww583-staff-name{
    width:100%!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
    font-size:11.2px!important;
  }
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="2"]) .ww585-person-state,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-person-state,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-person-state{
    margin-left:0!important;
    font-size:8.4px!important;
  }
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]){min-height:158px!important;}
}

/* Clear v588's former top-right action reserves now that every employee action
   lives below the divider in the lower band. */
@media (max-width:1023px){
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]).is-accepted .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]).is-accepted .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]).is-accepted .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]).is-progress .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]).is-progress .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]).is-progress .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]).is-completed .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]).is-completed .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]).is-completed .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="2"]).is-awaiting .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="3"]).is-awaiting .ww583-copy,
  .ww585-employee-card:has(.ww585-staff-band[data-staff-count="4"]).is-awaiting .ww583-copy{padding-right:0!important;}
}

/* ---- app-polish-v590.css ---- */
/* EarthRoster v590 — HARD LOCK: compact roster-card density.
   User requirement: keep the approved v588/v589 card family and fit at least
   four cards on a normal iPhone-height roster view where practical.
   SCOPE: roster-card sizing/spacing only. No header/calendar/Add Job/nav changes. */
@media (max-width:1023px){
  /* Compact base card. Keep the same visual family, just remove vertical waste. */
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    grid-template-columns:60px minmax(0,1fr) 30px!important;
    grid-template-rows:52px auto!important;
    column-gap:10px!important;
    min-height:94px!important;
    margin:0 14px 7px!important;
    padding:7px 10px 7px 11px!important;
    border-radius:17px!important;
    box-shadow:
      inset 3px 0 0 color-mix(in srgb,var(--pop,#49a866) 84%,#9ee6b5 16%),
      inset 0 0 0 1px rgba(255,255,255,.14),
      inset 0 1px 0 rgba(255,255,255,.17),
      0 5px 11px color-mix(in srgb,var(--deep,#145837) 14%,transparent)!important;
  }

  .ww585-card .ww583-hours{
    width:57px!important;height:57px!important;
    border-radius:14px!important;gap:3px!important;
  }
  .ww585-card .ww583-hours strong{font-size:22px!important;line-height:.96!important;}
  .ww585-card .ww583-hours span{font-size:8.5px!important;letter-spacing:.12em!important;}

  .ww585-card .ww583-copy{gap:3px!important;}
  .ww585-card .ww583-copy h3{font-size:16px!important;line-height:1.03!important;}
  .ww585-card .ww583-time{font-size:10.8px!important;gap:5px!important;}
  .ww585-card .ww583-time svg{width:12px!important;height:12px!important;}

  .ww585-admin-card .ww583-chevron{
    width:28px!important;height:36px!important;border-radius:10px!important;
  }
  .ww585-admin-card .ww583-chevron svg{width:13px!important;height:13px!important;}

  /* The divider/staff band stays exactly in the same structural position. */
  .ww585-card .ww585-staff-band{
    grid-template-columns:62px minmax(0,1fr)!important;
    min-height:34px!important;
  }
  .ww585-card .ww583-staff-label{
    padding:9px 0 0 4px!important;
    font-size:8.3px!important;letter-spacing:.12em!important;
  }
  .ww585-card .ww585-staff-grid{
    margin:4px 0 0!important;
  }
  .ww585-card .ww585-person{
    min-height:24px!important;
    padding:4px 7px!important;
    gap:4px!important;
  }
  .ww585-card .ww583-staff-name{
    font-size:10.3px!important;line-height:1!important;
  }

  /* One/two staff remain ultra-slim; three/four add only one compact row. */
  .ww585-card:has(.ww585-staff-band[data-staff-count="1"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="2"]){min-height:94px!important;}
  .ww585-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="4"]){min-height:109px!important;}

  /* Employee lower-band actions: compact but still comfortably tappable. */
  .ww585-employee-card .ww585-staff-band{
    grid-template-columns:52px minmax(0,1fr) auto!important;
    column-gap:6px!important;
    padding-right:0!important;
  }
  .ww585-employee-card .ww585-action-area{
    position:static!important;
    grid-column:3!important;
    align-self:center!important;
    justify-self:end!important;
    right:auto!important;bottom:auto!important;
    max-width:none!important;
    margin:3px 0 0 4px!important;
  }
  .ww585-response{gap:6px!important;}
  .ww585-response button{
    height:31px!important;min-height:31px!important;
    padding:0 11px!important;
    font-size:10px!important;gap:5px!important;
  }
  .ww585-response button svg{width:11px!important;height:11px!important;}

  .ww585-action-pill,.ww585-start-shift{
    height:31px!important;min-height:31px!important;
    padding:0 11px!important;
    font-size:10px!important;gap:5px!important;
  }
  .ww585-action-pill svg,.ww585-start-shift svg{width:11px!important;height:11px!important;}

  /* In-progress panel remains under divider but trims wasted height. */
  .ww585-employee-card .ww585-action-stack{
    min-width:112px!important;
    padding:5px 8px!important;
    border-radius:11px!important;
    gap:2px!important;
  }
  .ww585-employee-card .ww585-action-stack .ww585-action-pill.is-progress{
    font-size:10.4px!important;
  }
  .ww585-employee-card .ww585-action-stack small{
    font-size:8.8px!important;
  }

  .ww585-employee-card .ww585-action-pill.is-completed,
  .ww585-employee-card .ww585-action-pill.is-declined{
    height:31px!important;min-height:31px!important;
    padding:0 11px!important;font-size:10px!important;
  }

  /* Admin multi-person status stays plain inline text, and no card may jump to 158px. */
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="2"]) .ww585-person,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-person,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-person{
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:4px!important;
    padding:4px 6px!important;
    white-space:nowrap!important;
  }
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="2"]) .ww583-staff-name,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]) .ww583-staff-name,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]) .ww583-staff-name{
    width:auto!important;
    max-width:58%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    font-size:9.7px!important;
  }
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="2"]) .ww585-person-state,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-person-state,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-person-state{
    margin-left:0!important;
    font-size:7.6px!important;
    gap:3px!important;
  }
  .ww585-admin-card .ww585-person-state svg{width:8px!important;height:8px!important;}
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]){min-height:109px!important;}

  /* Keep declined reference geometry identical, only palette changes. */
  body.ww-roster-active .roster-mobile .ww585-employee-card.is-declined,
  body .home-roster-list .ww585-employee-card.is-declined{
    min-height:94px!important;
  }
}

@media (max-width:390px){
  .ww585-card .ww583-copy h3{font-size:15px!important;}
  .ww585-card .ww583-time{font-size:10.2px!important;}
  .ww585-card .ww583-staff-name{font-size:9.8px!important;}
  .ww585-response button,
  .ww585-action-pill,.ww585-start-shift{padding-left:9px!important;padding-right:9px!important;font-size:9.5px!important;}
}

/* ---- app-polish-v591.css ---- */
/* EarthRoster v591 — skinny-fit roster cards.
   VISUAL BASELINE: keep the approved v589/v590 card design exactly; change only
   card dimensions/internal spacing so the cards sit neatly and stay dense.
   SCOPE LOCK: no roster header, Team Roster & Billing, Add Job, filter,
   calendar/date selector, navigation, geofence, clock or completion logic changes. */
@media (max-width:1023px){
  /* Readable compact shell. Preserve colours, borders, shadows and card family. */
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    grid-template-columns:58px minmax(0,1fr) 28px!important;
    grid-template-rows:49px auto!important;
    column-gap:9px!important;
    row-gap:0!important;
    min-height:92px!important;
    margin:0 12px 7px!important;
    padding:6px 9px 6px 10px!important;
    border-radius:16px!important;
  }

  .ww585-card .ww583-hours{
    width:55px!important;height:55px!important;
    border-radius:13px!important;gap:3px!important;
  }
  .ww585-card .ww583-hours strong{font-size:22px!important;line-height:.96!important;}
  .ww585-card .ww583-hours span{font-size:8px!important;letter-spacing:.12em!important;}

  .ww585-card .ww583-copy{gap:3px!important;min-width:0!important;}
  .ww585-card .ww583-copy h3{
    font-size:16.5px!important;line-height:1.02!important;
    white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  }
  .ww585-card .ww583-time{font-size:10.7px!important;gap:5px!important;}
  .ww585-card .ww583-time svg{width:12px!important;height:12px!important;}

  .ww585-admin-card .ww583-chevron{
    width:27px!important;height:35px!important;border-radius:9px!important;
  }
  .ww585-admin-card .ww583-chevron svg{width:12px!important;height:12px!important;}

  /* Staff band stays directly under the divider and uses the same 2-column layout. */
  .ww585-card .ww585-staff-band{
    grid-template-columns:59px minmax(0,1fr)!important;
    min-height:34px!important;
  }
  .ww585-card .ww583-staff-label{
    padding:7px 0 0 3px!important;
    font-size:8px!important;letter-spacing:.12em!important;
  }
  .ww585-card .ww585-staff-grid{margin:3px 0 0!important;}
  .ww585-card .ww585-person{
    min-height:22px!important;
    padding:3px 6px!important;
    gap:3px!important;
  }
  .ww585-card .ww583-staff-name{
    font-size:10.3px!important;line-height:1!important;
  }

  /* Admin multi-staff: same visual arrangement the user approved — name then
     small inline status underneath, but compressed enough to stay skinny. */
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="2"]) .ww585-person,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-person,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-person{
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:2px!important;
    padding:3px 6px!important;
    white-space:normal!important;
  }
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="2"]) .ww583-staff-name,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]) .ww583-staff-name,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]) .ww583-staff-name{
    width:100%!important;max-width:100%!important;
    overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
    font-size:10.3px!important;
  }
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="2"]) .ww585-person-state,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]) .ww585-person-state,
  .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]) .ww585-person-state{
    margin-left:0!important;
    font-size:7.5px!important;
    line-height:1!important;
    gap:3px!important;
  }
  .ww585-admin-card .ww585-person-state svg{width:8px!important;height:8px!important;}
  .ww585-admin-card .ww585-person-state small{font-size:6.8px!important;}

  /* Staff-count height lock. 3/4 staff add only one small second row. */
  .ww585-card:has(.ww585-staff-band[data-staff-count="1"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="2"]){
    min-height:92px!important;
  }
  .ww585-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="4"]){
    min-height:108px!important;
  }

  /* Employee actions remain BELOW the divider, but don't enlarge the card. */
  .ww585-employee-card .ww585-staff-band{
    grid-template-columns:50px minmax(0,1fr) auto!important;
    column-gap:5px!important;
    padding-right:0!important;
  }
  .ww585-employee-card .ww585-action-area{
    position:static!important;
    grid-column:3!important;
    align-self:center!important;justify-self:end!important;
    margin:2px 0 0 4px!important;
    right:auto!important;bottom:auto!important;max-width:none!important;
  }
  .ww585-response{gap:5px!important;}
  .ww585-response button{
    height:30px!important;min-height:30px!important;
    padding:0 10px!important;font-size:9.5px!important;gap:4px!important;
  }
  .ww585-response button svg{width:10px!important;height:10px!important;}
  .ww585-action-pill,.ww585-start-shift{
    height:30px!important;min-height:30px!important;
    padding:0 10px!important;font-size:9.5px!important;gap:4px!important;
  }
  .ww585-action-pill svg,.ww585-start-shift svg{width:10px!important;height:10px!important;}

  .ww585-employee-card .ww585-action-stack{
    min-width:108px!important;
    padding:5px 8px!important;
    border-radius:10px!important;
    gap:2px!important;
  }
  .ww585-employee-card .ww585-action-stack .ww585-action-pill.is-progress{
    font-size:9.4px!important;
  }
  .ww585-employee-card .ww585-action-stack small{font-size:8.4px!important;}

  .ww585-employee-card .ww585-action-pill.is-completed,
  .ww585-employee-card .ww585-action-pill.is-declined{
    height:30px!important;min-height:30px!important;
    padding:0 10px!important;font-size:9.5px!important;
  }

  /* Declined keeps the exact soft-red approved treatment, only dimensions shrink. */
  body.ww-roster-active .roster-mobile .ww585-employee-card.is-declined,
  body .home-roster-list .ww585-employee-card.is-declined{
    min-height:92px!important;
  }
}

@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    grid-template-columns:54px minmax(0,1fr) 26px!important;
    margin-left:10px!important;margin-right:10px!important;
    padding-left:9px!important;padding-right:8px!important;
  }
  .ww585-card .ww583-hours{width:52px!important;height:52px!important;}
  .ww585-card .ww583-copy h3{font-size:15.5px!important;}
  .ww585-card .ww583-time{font-size:10px!important;}
  .ww585-card .ww583-staff-name{font-size:9.8px!important;}
  .ww585-response button,.ww585-action-pill,.ww585-start-shift{
    padding-left:8px!important;padding-right:8px!important;font-size:9px!important;
  }
}

@media (max-width:1023px){
  /* A solo staff member uses the available staff width instead of being confined
     to half the 2-column grid. This keeps the full name readable. */
  .ww585-card .ww585-staff-band[data-staff-count="1"] .ww585-staff-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .ww585-card .ww585-staff-band[data-staff-count="1"] .ww585-person{
    border-right:0!important;
  }
}

/* ---- app-polish-v592.css ---- */
/* EarthRoster v592 — spread-across staff layout.
   USER-APPROVED BASELINE: preserve v591 skinny colourful card family.
   ONLY CHANGE: staff names are spread across the card instead of stacked.
   SCOPE LOCK: no header, Team Roster & Billing, Add Job, filter, calendar,
   navigation, geofence, clock/completion logic, card colours or card family changes. */
@media (max-width:1023px){
  /* Staff band always starts below the existing divider. */
  .ww585-card .ww585-staff-band{
    display:grid!important;
    grid-template-columns:46px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    column-gap:8px!important;
    row-gap:2px!important;
    align-items:center!important;
    min-height:36px!important;
    padding-top:3px!important;
  }
  .ww585-card .ww583-staff-label{
    grid-column:1!important;
    grid-row:1!important;
    align-self:start!important;
    padding:6px 0 0 2px!important;
    font-size:7.8px!important;
    letter-spacing:.12em!important;
  }

  /* 1–4 people now spread horizontally across ONE staff row.
     No vertical name stacking for multi-person shifts. */
  .ww585-card .ww585-staff-grid{
    grid-column:2!important;
    grid-row:1!important;
    display:grid!important;
    align-items:center!important;
    width:100%!important;
    margin:0!important;
    gap:0!important;
  }
  .ww585-card .ww585-staff-band[data-staff-count="1"] .ww585-staff-grid{grid-template-columns:minmax(0,1fr)!important;}
  .ww585-card .ww585-staff-band[data-staff-count="2"] .ww585-staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .ww585-card .ww585-staff-band[data-staff-count="3"] .ww585-staff-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .ww585-card .ww585-staff-band[data-staff-count="4"] .ww585-staff-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}

  .ww585-card .ww585-person{
    min-width:0!important;
    min-height:27px!important;
    padding:3px 5px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    border-top:0!important;
    border-right:1px solid rgba(255,255,255,.10)!important;
  }
  .ww585-card .ww585-person:last-child{border-right:0!important;}
  .ww585-card .ww583-staff-name{
    width:100%!important;
    max-width:100%!important;
    font-size:9.25px!important;
    line-height:1.05!important;
    font-weight:800!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  /* Employee: names remain plain and spread across. Action/state stays in its
     own lower-right row, fully below the divider and below the names. */
  .ww585-employee-card .ww585-action-area{
    grid-column:2!important;
    grid-row:2!important;
    justify-self:end!important;
    align-self:center!important;
    margin:0!important;
    padding:0!important;
  }
  .ww585-employee-card .ww585-staff-band{
    padding-bottom:1px!important;
  }

  /* Admin: same spread-across positions. Individual status remains attached
     to each employee but without outlined circles / badge shells. */
  .ww585-admin-card .ww585-person{
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:2px!important;
  }
  .ww585-admin-card .ww585-person-state{
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
    border-radius:0!important;
    font-size:6.8px!important;
    line-height:1!important;
    gap:2px!important;
    white-space:nowrap!important;
  }
  .ww585-admin-card .ww585-person-state svg{width:7px!important;height:7px!important;}
  .ww585-admin-card .ww585-person-state small{font-size:6.2px!important;}
  .ww585-admin-card .ww585-person-state.is-accepted{color:#9ce8aa!important;}
  .ww585-admin-card .ww585-person-state.is-declined{color:#ffaaa2!important;}
  .ww585-admin-card .ww585-person-state.is-awaiting{color:#ffd46c!important;}
  .ww585-admin-card .ww585-person-state.is-progress{color:#b8f3af!important;}
  .ww585-admin-card .ww585-person-state.is-completed{color:#a9efb8!important;}

  /* The spread row actually lets 3/4-person cards stay slimmer than v591. */
  .ww585-card:has(.ww585-staff-band[data-staff-count="1"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="2"]){min-height:92px!important;}
  .ww585-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="4"]){min-height:98px!important;}

  /* Declined state keeps the approved soft pale-red card; only the staff row
     geometry changes. */
  .ww585-employee-card.is-declined .ww585-person{border-right-color:rgba(163,65,58,.10)!important;}
}

@media (max-width:390px){
  .ww585-card .ww585-staff-band{grid-template-columns:42px minmax(0,1fr)!important;column-gap:5px!important;}
  .ww585-card .ww585-person{padding-left:3px!important;padding-right:3px!important;}
  .ww585-card .ww583-staff-name{font-size:8.6px!important;}
  .ww585-admin-card .ww585-person-state{font-size:6.2px!important;}
  .ww585-response button,.ww585-start-shift,.ww585-action-pill{height:28px!important;min-height:28px!important;}
}
@media (max-width:1023px){
  /* Older completed-state rules reserved a third track. v592 keeps Completed in
     the same lower-right action row as every other employee state. */
  .ww585-employee-card.is-completed .ww585-action-area,
  .ww585-employee-card.is-declined .ww585-action-area,
  .ww585-employee-card.is-progress .ww585-action-area,
  .ww585-employee-card.is-accepted .ww585-action-area,
  .ww585-employee-card.is-awaiting .ww585-action-area{
    grid-column:2!important;
    grid-row:2!important;
    justify-self:end!important;
  }
}

/* ---- app-polish-v593.css ---- */
/* EarthRoster v593 — cleaner spread-across staff status layout.
   BASELINE LOCK: preserve v592/v591 skinny colourful card family and 4-card density.
   SCOPE: roster-card staff/status presentation only on mobile/tablet.
   Desktop (>=1024px), header, Team Roster & Billing, Add Job, filter, calendar,
   navigation, geofence and clock/completion logic remain untouched. */
@media (max-width:1023px){
  /* Keep one fixed card family. The staff band uses the same label + content area
     whether 1, 2, 3 or 4 people are assigned. */
  .ww585-card .ww585-staff-band{
    grid-template-columns:44px minmax(0,1fr)!important;
    column-gap:7px!important;
    row-gap:2px!important;
    min-height:34px!important;
    padding-top:2px!important;
    padding-bottom:1px!important;
  }
  .ww585-card .ww583-staff-label{
    grid-column:1!important;
    grid-row:1!important;
    padding:5px 0 0 2px!important;
    font-size:7.5px!important;
    letter-spacing:.13em!important;
  }
  .ww585-card .ww585-staff-grid{
    grid-column:2!important;
    grid-row:1!important;
    width:100%!important;
    margin:0!important;
    display:grid!important;
    align-items:stretch!important;
    gap:0!important;
  }
  .ww585-card .ww585-staff-band[data-staff-count="1"] .ww585-staff-grid{grid-template-columns:minmax(0,1fr)!important;}
  .ww585-card .ww585-staff-band[data-staff-count="2"] .ww585-staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .ww585-card .ww585-staff-band[data-staff-count="3"] .ww585-staff-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .ww585-card .ww585-staff-band[data-staff-count="4"] .ww585-staff-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}

  /* Each staff slot is a clean equal-width column. No stacked groups. */
  .ww585-card .ww585-person{
    min-width:0!important;
    min-height:25px!important;
    padding:3px 5px!important;
    border-top:0!important;
    border-right:1px solid rgba(255,255,255,.095)!important;
    display:flex!important;
    justify-content:flex-start!important;
  }
  .ww585-card .ww585-person:last-child{border-right:0!important;}
  .ww585-card .ww583-staff-name{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    font-size:9.15px!important;
    line-height:1.05!important;
    font-weight:850!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  /* Employee cards: coworkers stay plain. The logged-in employee's own response
     or work state remains in the single action row below the staff names. */
  .ww585-employee-card .ww585-person{
    align-items:center!important;
    flex-direction:row!important;
  }
  .ww585-employee-card .ww585-action-area{
    grid-column:2!important;
    grid-row:2!important;
    justify-self:end!important;
    align-self:center!important;
    margin:0!important;
    padding:0!important;
  }
  .ww585-employee-card .ww585-staff-band{
    grid-template-rows:auto auto!important;
  }

  /* Admin: same four columns, but every employee owns a compact status line.
     Status never becomes a team-level label, so mixed clock states remain truthful. */
  .ww585-admin-card .ww585-person{
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:2px!important;
  }
  .ww585-admin-card .ww585-person-state{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    align-items:center!important;
    column-gap:3px!important;
    row-gap:1px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    min-height:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    font-size:6.9px!important;
    line-height:1!important;
    font-weight:800!important;
    white-space:nowrap!important;
  }
  .ww585-admin-card .ww585-person-state svg{
    grid-column:1!important;
    grid-row:1!important;
    width:7px!important;
    height:7px!important;
  }
  .ww585-admin-card .ww585-person-state > span{
    grid-column:2!important;
    grid-row:1!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .ww585-admin-card .ww585-person-state small{
    grid-column:1 / -1!important;
    grid-row:2!important;
    padding-left:10px!important;
    font-size:6.2px!important;
    line-height:1!important;
    color:rgba(255,255,255,.72)!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .ww585-admin-card .ww585-person-state.is-accepted{color:#a8e9b4!important;}
  .ww585-admin-card .ww585-person-state.is-declined{color:#ffaba3!important;}
  .ww585-admin-card .ww585-person-state.is-awaiting{color:#ffd36e!important;}
  .ww585-admin-card .ww585-person-state.is-progress{color:#b9f4ad!important;}
  .ww585-admin-card .ww585-person-state.is-completed{color:#b2efbd!important;}

  /* Density lock: refinements must not make these cards grow. */
  .ww585-card:has(.ww585-staff-band[data-staff-count="1"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="2"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="4"]){
    min-height:94px!important;
  }

  /* Declined keeps the existing soft pale-red state; only separator tint changes. */
  .ww585-employee-card.is-declined .ww585-person{border-right-color:rgba(163,65,58,.10)!important;}
}

@media (max-width:390px){
  .ww585-card .ww585-staff-band{grid-template-columns:41px minmax(0,1fr)!important;column-gap:4px!important;}
  .ww585-card .ww585-person{padding-left:3px!important;padding-right:3px!important;}
  .ww585-card .ww583-staff-name{font-size:8.55px!important;}
  .ww585-admin-card .ww585-person-state{font-size:6.3px!important;}
  .ww585-admin-card .ww585-person-state small{font-size:5.8px!important;padding-left:9px!important;}
}

/* ---- app-polish-v594.css ---- */
/* EarthRoster v594 — Signature Edge mobile roster cards.
   USER-REQUESTED REDESIGN: mobile roster cards only.
   BASELINE LOCKS:
   - Keep v593 individual employee/admin status logic unchanged.
   - Keep staff names spread across 1–4 equal columns.
   - Keep at least ~4-card density on normal iPhone-height screens.
   - Keep per-job/client colours. Only employee-declined cards use pale red.
   - Desktop roster and all non-card roster UI remain untouched. */
@media (max-width:1023px){
  /* Signature shell: a subtly asymmetric shape with a recessed left spine,
     double-edge highlight and a small clipped-looking lower-left corner.
     Geometry remains compact; this is styling, not a new card family. */
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    min-height:92px!important;
    margin:0 11px 7px!important;
    padding:7px 9px 6px 10px!important;
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 56%,rgba(255,255,255,.72) 44%)!important;
    border-radius:17px 17px 17px 7px!important;
    background:
      radial-gradient(120% 90% at 92% -18%,rgba(255,255,255,.16) 0%,transparent 43%),
      linear-gradient(118deg,color-mix(in srgb,var(--solid,#238651) 94%,#ffffff 6%) 0%,color-mix(in srgb,var(--deep,#145837) 94%,#000000 6%) 100%)!important;
    box-shadow:
      inset 4px 0 0 color-mix(in srgb,var(--pop,#49a866) 82%,#d4f4dc 18%),
      inset 0 1px 0 rgba(255,255,255,.24),
      inset 0 -1px 0 rgba(0,0,0,.10),
      0 4px 9px color-mix(in srgb,var(--deep,#145837) 17%,transparent),
      0 9px 18px -12px rgba(14,43,25,.34)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card::before,
  body .home-roster-list .ww585-card::before{
    content:""!important;
    position:absolute!important;
    z-index:-1!important;
    left:5px!important;
    top:5px!important;
    bottom:5px!important;
    width:3px!important;
    border-radius:999px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.72),color-mix(in srgb,var(--pop,#49a866) 86%,#fff 14%) 42%,rgba(255,255,255,.10))!important;
    opacity:.56!important;
    pointer-events:none!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card::after,
  body .home-roster-list .ww585-card::after{
    content:""!important;
    position:absolute!important;
    right:-24px!important;
    bottom:-34px!important;
    width:88px!important;
    height:72px!important;
    border-radius:50%!important;
    background:radial-gradient(circle,rgba(255,255,255,.11),transparent 69%)!important;
    pointer-events:none!important;
  }

  /* Hours tile becomes a refined inset tab rather than a floating square. */
  .ww585-card .ww583-hours{
    width:51px!important;
    height:50px!important;
    align-self:start!important;
    border-radius:13px 13px 13px 5px!important;
    border:1px solid rgba(255,255,255,.16)!important;
    background:
      linear-gradient(180deg,rgba(6,50,31,.52),rgba(5,38,25,.38)),
      color-mix(in srgb,var(--deep,#145837) 78%,#0b2a1b 22%)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 2px 7px rgba(0,0,0,.10)!important;
  }
  .ww585-card .ww583-hours strong{font-size:18.5px!important;line-height:.95!important;letter-spacing:-.03em!important;}
  .ww585-card .ww583-hours span{font-size:6.6px!important;letter-spacing:.16em!important;opacity:.82!important;}

  /* Main copy: slightly stronger hierarchy without increasing card height. */
  .ww585-card .ww583-copy{gap:1px!important;align-self:start!important;padding-top:1px!important;}
  .ww585-card .ww583-copy h3{
    font-size:15.8px!important;
    line-height:1.02!important;
    font-weight:900!important;
    letter-spacing:-.025em!important;
    text-shadow:0 1px 0 rgba(0,0,0,.10)!important;
  }
  .ww585-card .ww583-time{font-size:9.2px!important;line-height:1!important;opacity:.92!important;gap:4px!important;}
  .ww585-card .ww583-time svg{width:10px!important;height:10px!important;opacity:.9!important;}
  .ww588-work-detail{font-size:7.4px!important;line-height:1.05!important;opacity:.80!important;margin-top:2px!important;}

  /* Staff band: one elegant glass-line separator, equal-width columns, no stacking. */
  .ww585-card .ww585-staff-band{
    min-height:31px!important;
    padding-top:3px!important;
    padding-bottom:0!important;
    border-top:1px solid rgba(255,255,255,.18)!important;
    grid-template-columns:42px minmax(0,1fr)!important;
    column-gap:5px!important;
    row-gap:1px!important;
  }
  .ww585-card .ww583-staff-label{
    padding:5px 0 0 1px!important;
    font-size:6.6px!important;
    letter-spacing:.15em!important;
    opacity:.72!important;
  }
  .ww585-card .ww585-staff-grid{
    width:100%!important;
    gap:0!important;
    margin:0!important;
    align-items:center!important;
  }
  .ww585-card .ww585-staff-band[data-staff-count="1"] .ww585-staff-grid{grid-template-columns:minmax(0,1fr)!important;}
  .ww585-card .ww585-staff-band[data-staff-count="2"] .ww585-staff-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .ww585-card .ww585-staff-band[data-staff-count="3"] .ww585-staff-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .ww585-card .ww585-staff-band[data-staff-count="4"] .ww585-staff-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
  .ww585-card .ww585-person{
    min-height:23px!important;
    padding:3px 6px!important;
    border-top:0!important;
    border-right:1px solid rgba(255,255,255,.10)!important;
    background:linear-gradient(180deg,rgba(255,255,255,.015),rgba(0,0,0,.018))!important;
  }
  .ww585-card .ww585-person:first-child{padding-left:2px!important;}
  .ww585-card .ww585-person:last-child{border-right:0!important;padding-right:2px!important;}
  .ww585-card .ww583-staff-name{
    font-size:8.9px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:-.015em!important;
  }

  /* Employee action zone remains BELOW the divider and the names, but uses a
     slightly elevated action rail for clearer separation and touch affordance. */
  .ww585-employee-card .ww585-staff-band{grid-template-rows:auto auto!important;}
  .ww585-employee-card .ww585-action-area{
    grid-column:2!important;
    grid-row:2!important;
    justify-self:end!important;
    align-self:center!important;
    margin:-1px 0 0!important;
    padding:0!important;
  }
  .ww585-response{gap:6px!important;}
  .ww585-response button,
  .ww585-start-shift,
  .ww585-action-pill{
    height:28px!important;
    min-height:28px!important;
    padding:0 10px!important;
    border-radius:10px!important;
    font-size:8.2px!important;
    font-weight:900!important;
    letter-spacing:.005em!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.26),0 2px 6px rgba(0,0,0,.12)!important;
  }
  .ww585-response button svg,.ww585-start-shift svg,.ww585-action-pill svg{width:9px!important;height:9px!important;}
  .ww585-decline{
    border:1px solid rgba(255,174,167,.72)!important;
    background:linear-gradient(180deg,#db5f58,#bd423c)!important;
    color:#fff!important;
  }
  .ww585-accept{
    border:1px solid rgba(147,226,168,.72)!important;
    background:linear-gradient(180deg,#43aa63,#278849)!important;
    color:#fff!important;
  }
  .ww585-start-shift{
    border:1px solid rgba(181,228,194,.74)!important;
    background:linear-gradient(180deg,#e8f5eb 0%,#d7ecdc 100%)!important;
    color:#16472c!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.94),0 3px 8px rgba(7,45,27,.18)!important;
  }
  .ww585-start-shift svg{fill:#228149!important;stroke:#228149!important;}
  .ww585-action-pill.is-accepted{background:rgba(54,164,86,.90)!important;color:#f6fff8!important;border-color:rgba(138,221,160,.52)!important;}
  .ww585-action-pill.is-completed{background:linear-gradient(180deg,#45aa64,#2d8d4e)!important;color:#fff!important;border-color:rgba(137,216,155,.62)!important;}
  .ww585-action-pill.is-awaiting{background:rgba(139,105,35,.88)!important;color:#ffeab3!important;border-color:rgba(237,198,104,.45)!important;}
  .ww585-action-pill.is-declined{background:linear-gradient(180deg,#da5b54,#bd433d)!important;color:#fff!important;border-color:rgba(246,154,146,.62)!important;}

  /* In-progress is the distinctive compact lower-right panel the user approved. */
  .ww585-employee-card .ww585-action-stack{
    min-width:112px!important;
    padding:5px 8px 5px!important;
    border-radius:11px 11px 11px 5px!important;
    border:1px solid rgba(151,222,166,.20)!important;
    background:linear-gradient(180deg,rgba(10,65,40,.26),rgba(8,49,31,.32))!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.07)!important;
    gap:2px!important;
  }
  .ww585-employee-card .ww585-action-stack .ww585-action-pill.is-progress{
    height:auto!important;min-height:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;
    color:#aaf09e!important;font-size:8.8px!important;
  }
  .ww585-employee-card .ww585-action-stack small{font-size:7.4px!important;color:rgba(255,255,255,.78)!important;}

  /* Admin: individual state is now a clean two-line micro-label under each name.
     No team-level state and no outlined circles/pill shells. */
  .ww585-admin-card .ww585-person{
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:2px!important;
  }
  .ww585-admin-card .ww585-person-state{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    column-gap:3px!important;
    row-gap:1px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    font-size:6.6px!important;
    line-height:1!important;
    font-weight:850!important;
    white-space:nowrap!important;
  }
  .ww585-admin-card .ww585-person-state svg{grid-column:1!important;grid-row:1!important;width:7px!important;height:7px!important;}
  .ww585-admin-card .ww585-person-state > span{grid-column:2!important;grid-row:1!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .ww585-admin-card .ww585-person-state small{grid-column:1/-1!important;grid-row:2!important;padding-left:10px!important;font-size:5.9px!important;opacity:.72!important;}
  .ww585-admin-card .ww585-person-state.is-accepted{color:#a8ebb5!important;}
  .ww585-admin-card .ww585-person-state.is-declined{color:#ffaaa2!important;}
  .ww585-admin-card .ww585-person-state.is-awaiting{color:#ffd36e!important;}
  .ww585-admin-card .ww585-person-state.is-progress{color:#b5f0ab!important;}
  .ww585-admin-card .ww585-person-state.is-completed{color:#a9efb8!important;}

  /* Soft pale-red declined treatment stays special and preserves new geometry. */
  body.ww-roster-active .roster-mobile .ww585-employee-card.is-declined,
  body .home-roster-list .ww585-employee-card.is-declined{
    border-color:#dc7169!important;
    border-radius:17px 17px 17px 7px!important;
    background:
      radial-gradient(120% 90% at 92% -18%,rgba(255,255,255,.72) 0%,transparent 45%),
      linear-gradient(118deg,#faece9 0%,#f6e1dd 100%)!important;
    box-shadow:inset 4px 0 0 #d65b54,inset 0 1px 0 rgba(255,255,255,.92),inset 0 -1px 0 rgba(150,64,57,.08),0 4px 10px rgba(122,50,44,.11)!important;
  }
  .ww585-employee-card.is-declined::before{background:linear-gradient(180deg,#f08b83,#d55750)!important;opacity:.76!important;}
  .ww585-employee-card.is-declined .ww583-hours{background:linear-gradient(180deg,#d97770,#c75c55)!important;border-color:rgba(163,65,58,.18)!important;}
  .ww585-employee-card.is-declined .ww583-copy h3{color:#822c28!important;text-shadow:none!important;}
  .ww585-employee-card.is-declined .ww583-time{color:#8f4a45!important;}
  .ww585-employee-card.is-declined .ww583-staff-label{color:#a64c46!important;opacity:.82!important;}
  .ww585-employee-card.is-declined .ww583-staff-name{color:#65332f!important;text-shadow:none!important;}
  .ww585-employee-card.is-declined .ww585-staff-band{border-top-color:rgba(162,65,58,.16)!important;}
  .ww585-employee-card.is-declined .ww585-person{border-right-color:rgba(162,65,58,.10)!important;background:transparent!important;}

  /* Density hard-lock: the visual redesign cannot grow the card family. */
  .ww585-card:has(.ww585-staff-band[data-staff-count="1"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="2"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="4"]){min-height:92px!important;max-height:104px!important;}
}

@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{margin-left:9px!important;margin-right:9px!important;padding-left:9px!important;padding-right:8px!important;}
  .ww585-card .ww583-hours{width:48px!important;height:48px!important;}
  .ww585-card .ww583-copy h3{font-size:14.6px!important;}
  .ww585-card .ww583-time{font-size:8.7px!important;}
  .ww585-card .ww585-staff-band{grid-template-columns:39px minmax(0,1fr)!important;column-gap:3px!important;}
  .ww585-card .ww585-person{padding-left:3px!important;padding-right:3px!important;}
  .ww585-card .ww583-staff-name{font-size:8.2px!important;}
  .ww585-admin-card .ww585-person-state{font-size:6.0px!important;}
  .ww585-admin-card .ww585-person-state small{font-size:5.4px!important;padding-left:9px!important;}
  .ww585-response button,.ww585-start-shift,.ww585-action-pill{height:27px!important;min-height:27px!important;padding-left:8px!important;padding-right:8px!important;font-size:7.6px!important;}
  .ww585-employee-card .ww585-action-stack{min-width:104px!important;padding:4px 7px!important;}
}

/* ---- app-polish-v595.css ---- */
/* EarthRoster v595 — card-matched mobile action colours.
   Scope: roster-card controls only on mobile/tablet.
   Keep v594 geometry, compact density, spread staff layout, states and logic unchanged. */
@media (max-width:1023px){
  /* Shared card-adaptive action language. Each control now derives from the
     roster card's own --solid/--deep/--pop palette instead of universal green/red. */
  body.ww-roster-active .roster-mobile .ww585-card .ww585-start-shift,
  body .home-roster-list .ww585-card .ww585-start-shift{
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 58%,rgba(255,255,255,.78) 42%)!important;
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--pop,#49a866) 24%,#ffffff 76%) 0%,
      color-mix(in srgb,var(--solid,#238651) 20%,#eef5ef 80%) 100%)!important;
    color:color-mix(in srgb,var(--deep,#145837) 88%,#0c1b12 12%)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 3px 8px color-mix(in srgb,var(--deep,#145837) 18%,transparent)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww585-start-shift svg,
  body .home-roster-list .ww585-card .ww585-start-shift svg{
    fill:color-mix(in srgb,var(--deep,#145837) 78%,var(--solid,#238651) 22%)!important;
    stroke:color-mix(in srgb,var(--deep,#145837) 78%,var(--solid,#238651) 22%)!important;
  }

  /* Accepted and completed now harmonise with the card colour instead of always green. */
  body.ww-roster-active .roster-mobile .ww585-card .ww585-action-pill.is-accepted,
  body .home-roster-list .ww585-card .ww585-action-pill.is-accepted,
  body.ww-roster-active .roster-mobile .ww585-card .ww585-action-pill.is-completed,
  body .home-roster-list .ww585-card .ww585-action-pill.is-completed{
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 62%,rgba(255,255,255,.52) 38%)!important;
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--pop,#49a866) 68%,rgba(255,255,255,.14) 32%) 0%,
      color-mix(in srgb,var(--solid,#238651) 78%,var(--deep,#145837) 22%) 100%)!important;
    color:#fff!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.23),0 2px 6px color-mix(in srgb,var(--deep,#145837) 18%,transparent)!important;
  }

  /* Awaiting is a subtle card-tone chip; state is carried by wording/icon. */
  body.ww-roster-active .roster-mobile .ww585-card .ww585-action-pill.is-awaiting,
  body .home-roster-list .ww585-card .ww585-action-pill.is-awaiting{
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 48%,rgba(255,255,255,.34) 52%)!important;
    background:color-mix(in srgb,var(--deep,#145837) 72%,rgba(255,255,255,.10) 28%)!important;
    color:color-mix(in srgb,var(--pop,#49a866) 58%,#fff 42%)!important;
  }

  /* In-progress panel also follows the card colour, so a blue job gets a blue
     progress panel, purple gets purple, etc. */
  body.ww-roster-active .roster-mobile .ww585-card .ww585-action-stack,
  body .home-roster-list .ww585-card .ww585-action-stack{
    border-color:color-mix(in srgb,var(--pop,#49a866) 36%,rgba(255,255,255,.12) 64%)!important;
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--deep,#145837) 76%,transparent 24%) 0%,
      color-mix(in srgb,var(--deep,#145837) 88%,rgba(0,0,0,.08) 12%) 100%)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww585-action-stack .ww585-action-pill.is-progress,
  body .home-roster-list .ww585-card .ww585-action-stack .ww585-action-pill.is-progress{
    color:color-mix(in srgb,var(--pop,#49a866) 62%,#fff 38%)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww585-action-stack .ww585-action-pill.is-progress svg,
  body .home-roster-list .ww585-card .ww585-action-stack .ww585-action-pill.is-progress svg{
    stroke:color-mix(in srgb,var(--pop,#49a866) 62%,#fff 38%)!important;
  }

  /* Response buttons use the card palette rather than universal traffic-light
     backgrounds. Decline = darker/outlined card tone; Accept = lighter/filled
     card tone. X/check and labels keep the actions unambiguous. */
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-decline,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-decline{
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 48%,rgba(255,255,255,.42) 52%)!important;
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--deep,#145837) 82%,rgba(255,255,255,.07) 18%) 0%,
      color-mix(in srgb,var(--deep,#145837) 94%,#000 6%) 100%)!important;
    color:color-mix(in srgb,var(--pop,#49a866) 38%,#fff 62%)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-accept,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-accept{
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 64%,rgba(255,255,255,.62) 36%)!important;
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--pop,#49a866) 75%,rgba(255,255,255,.12) 25%) 0%,
      color-mix(in srgb,var(--solid,#238651) 84%,var(--deep,#145837) 16%) 100%)!important;
    color:#fff!important;
  }

  /* Declined cards intentionally remain the approved pale-red exception and
     therefore retain a red-toned declined status that matches that card. */
  body.ww-roster-active .roster-mobile .ww585-employee-card.is-declined .ww585-action-pill.is-declined,
  body .home-roster-list .ww585-employee-card.is-declined .ww585-action-pill.is-declined{
    border-color:#df827b!important;
    background:linear-gradient(180deg,#d96760,#bf4c46)!important;
    color:#fff!important;
  }
}

/* ---- app-polish-v596.css ---- */
/* EarthRoster v596 — premium paired response control.
   Scope lock: Decline/Accept controls only. Card geometry, colours, staff layout,
   upper roster UI, desktop roster and shift logic remain unchanged. */
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response{
    display:inline-flex!important;
    align-items:center!important;
    gap:3px!important;
    height:31px!important;
    padding:2px!important;
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 38%,rgba(255,255,255,.34) 62%)!important;
    border-radius:12px!important;
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--deep,#145837) 72%,rgba(255,255,255,.10) 28%) 0%,
      color-mix(in srgb,var(--deep,#145837) 88%,rgba(0,0,0,.08) 12%) 100%)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 4px 10px color-mix(in srgb,var(--deep,#145837) 22%,transparent)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response button,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response button{
    position:relative!important;
    height:25px!important;min-height:25px!important;
    padding:0 9px 0 7px!important;
    border-radius:9px!important;
    gap:5px!important;
    font-size:8px!important;
    font-weight:900!important;
    letter-spacing:.015em!important;
    transition:transform .12s ease,filter .12s ease!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.20)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response button svg,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response button svg{
    width:14px!important;height:14px!important;
    padding:3px!important;
    border-radius:5px!important;
    background:rgba(255,255,255,.13)!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)!important;
    stroke:currentColor!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-decline,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-decline{
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 28%,rgba(255,255,255,.26) 72%)!important;
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--deep,#145837) 78%,var(--solid,#238651) 22%) 0%,
      color-mix(in srgb,var(--deep,#145837) 94%,#000 6%) 100%)!important;
    color:color-mix(in srgb,var(--pop,#49a866) 26%,#fff 74%)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-accept,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-accept{
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 72%,rgba(255,255,255,.50) 28%)!important;
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--pop,#49a866) 82%,rgba(255,255,255,.12) 18%) 0%,
      color-mix(in srgb,var(--solid,#238651) 78%,var(--deep,#145837) 22%) 100%)!important;
    color:#fff!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.30),0 2px 6px color-mix(in srgb,var(--deep,#145837) 25%,transparent)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-response button:active,
  body .home-roster-list .ww585-response button:active{transform:translateY(1px) scale(.985)!important;}
}

/* ---- app-polish-v597.css ---- */
/* EarthRoster v597 — Faceted Edge mobile roster card redesign.
   Requested scope: MOBILE roster-card appearance + employee Decline/Accept control only.
   Hard locks retained: compact four-card density, spread-across staff names, individual states,
   per-job colours, pale-red declined exception, desktop roster + upper roster UI unchanged. */
@media (max-width:1023px){
  /* New signature shape: softly faceted top-right + pinched lower-left, with a
     fine luminous top rail and anchored left spine. Geometry stays compact. */
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    min-height:116px!important;
    max-height:120px!important;
    margin:0 11px 7px!important;
    padding:7px 9px 6px 10px!important;
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 52%,rgba(255,255,255,.52) 48%)!important;
    border-radius:19px 10px 18px 8px!important;
    background:
      linear-gradient(180deg,rgba(255,255,255,.11),transparent 22%),
      radial-gradient(105% 90% at 96% 0%,rgba(255,255,255,.15),transparent 43%),
      linear-gradient(122deg,color-mix(in srgb,var(--solid,#238651) 96%,#fff 4%),color-mix(in srgb,var(--deep,#145837) 94%,#000 6%))!important;
    box-shadow:
      inset 4px 0 0 color-mix(in srgb,var(--pop,#49a866) 78%,#fff 22%),
      inset 0 1px 0 rgba(255,255,255,.28),
      inset 0 -1px 0 rgba(0,0,0,.11),
      0 3px 7px color-mix(in srgb,var(--deep,#145837) 16%,transparent),
      0 11px 19px -14px rgba(8,32,18,.46)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card::before,
  body .home-roster-list .ww585-card::before{
    content:""!important;
    position:absolute!important;
    z-index:3!important;
    left:8px!important;
    right:21px!important;
    top:0!important;
    height:2px!important;
    width:auto!important;
    bottom:auto!important;
    border-radius:0 999px 999px 0!important;
    background:linear-gradient(90deg,
      color-mix(in srgb,var(--pop,#49a866) 78%,#fff 22%),
      rgba(255,255,255,.44) 44%,
      rgba(255,255,255,.04) 100%)!important;
    opacity:.78!important;
    pointer-events:none!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card::after,
  body .home-roster-list .ww585-card::after{
    content:""!important;
    position:absolute!important;
    right:0!important;
    top:0!important;
    bottom:auto!important;
    width:19px!important;
    height:19px!important;
    border-radius:0 9px 0 0!important;
    clip-path:polygon(0 0,100% 0,100% 100%)!important;
    background:linear-gradient(225deg,rgba(255,255,255,.30),rgba(255,255,255,.02) 58%)!important;
    opacity:.72!important;
    pointer-events:none!important;
  }

  /* Refined integrated hours tab. */
  .ww585-card .ww583-hours{
    width:51px!important;
    height:50px!important;
    border-radius:14px 8px 14px 6px!important;
    border:1px solid rgba(255,255,255,.17)!important;
    background:
      linear-gradient(150deg,rgba(255,255,255,.04),transparent 32%),
      linear-gradient(180deg,color-mix(in srgb,var(--deep,#145837) 90%,#091f15 10%),color-mix(in srgb,var(--deep,#145837) 74%,#07170f 26%))!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.17),inset -1px -1px 0 rgba(0,0,0,.11),0 2px 7px rgba(0,0,0,.10)!important;
  }
  .ww585-card .ww583-hours strong{font-size:19px!important;font-weight:950!important;letter-spacing:-.04em!important;}
  .ww585-card .ww583-hours span{font-size:6.6px!important;font-weight:850!important;letter-spacing:.17em!important;}

  /* Slightly cleaner copy without adding vertical height. */
  .ww585-card .ww583-copy h3{
    font-size:15.6px!important;
    line-height:1.02!important;
    font-weight:900!important;
    letter-spacing:-.028em!important;
    text-shadow:0 1px 1px rgba(0,0,0,.10)!important;
  }
  .ww585-card .ww583-time{font-size:9.1px!important;line-height:1!important;opacity:.93!important;}

  /* Staff band remains spread across; separators become subtler. */
  .ww585-card .ww585-staff-band{
    border-top:1px solid rgba(255,255,255,.20)!important;
  }
  .ww585-card .ww585-person{
    border-right:1px solid rgba(255,255,255,.085)!important;
    background:transparent!important;
  }
  .ww585-card .ww583-staff-name{font-weight:880!important;letter-spacing:-.018em!important;}

  /* Premium response deck: strongly visible, still card-colour aware.
     It stays BELOW the divider and does not grow the card family. */
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response{
    display:inline-grid!important;
    grid-template-columns:1fr 1.08fr!important;
    align-items:center!important;
    gap:4px!important;
    height:32px!important;
    min-width:146px!important;
    padding:3px!important;
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 52%,rgba(255,255,255,.58) 48%)!important;
    border-radius:13px 9px 13px 7px!important;
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--deep,#145837) 70%,rgba(255,255,255,.14) 30%),
      color-mix(in srgb,var(--deep,#145837) 91%,#000 9%))!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.21),
      0 4px 9px color-mix(in srgb,var(--deep,#145837) 24%,transparent)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response button,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response button{
    position:relative!important;
    height:26px!important;
    min-height:26px!important;
    min-width:0!important;
    padding:0 8px!important;
    border-radius:10px 7px 10px 6px!important;
    gap:5px!important;
    font-size:8.6px!important;
    line-height:1!important;
    font-weight:950!important;
    letter-spacing:.005em!important;
    white-space:nowrap!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.24)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response button svg,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response button svg{
    width:13px!important;height:13px!important;
    padding:2.5px!important;
    border-radius:5px 3px 5px 3px!important;
    stroke:currentColor!important;
    background:rgba(255,255,255,.13)!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)!important;
  }

  /* Decline uses the card's deepest tone: decisive but not a random red block. */
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-decline,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-decline{
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 36%,rgba(255,255,255,.26) 64%)!important;
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--deep,#145837) 82%,var(--solid,#238651) 18%),
      color-mix(in srgb,var(--deep,#145837) 96%,#000 4%))!important;
    color:color-mix(in srgb,var(--pop,#49a866) 24%,#fff 76%)!important;
    text-shadow:0 1px 1px rgba(0,0,0,.18)!important;
  }

  /* Accept is the high-contrast hero action: a light tint made from the card
     palette, so it is immediately visible but still belongs to that job card. */
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-accept,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-accept{
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 54%,#fff 46%)!important;
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--pop,#49a866) 24%,#fff 76%),
      color-mix(in srgb,var(--solid,#238651) 20%,#f6f7ef 80%))!important;
    color:color-mix(in srgb,var(--deep,#145837) 88%,#111 12%)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.98),0 2px 5px color-mix(in srgb,var(--deep,#145837) 22%,transparent)!important;
    text-shadow:none!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-accept svg,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-accept svg{
    background:color-mix(in srgb,var(--pop,#49a866) 28%,#fff 72%)!important;
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pop,#49a866) 42%,rgba(255,255,255,.42) 58%)!important;
  }

  /* Keep the rest of the state controls in the same premium geometric family. */
  .ww585-start-shift,.ww585-action-pill,.ww585-employee-card .ww585-action-stack{
    border-radius:12px 8px 12px 7px!important;
  }
  .ww585-start-shift{font-weight:950!important;}
  .ww585-action-pill{font-weight:900!important;}

  /* Declined card remains the approved pale-red exception, but shares the new shape. */
  body.ww-roster-active .roster-mobile .ww585-employee-card.is-declined,
  body .home-roster-list .ww585-employee-card.is-declined{
    border-radius:19px 10px 18px 8px!important;
    border-color:#dc7169!important;
    background:
      linear-gradient(180deg,rgba(255,255,255,.40),transparent 30%),
      linear-gradient(122deg,#faece9,#f5dfdb)!important;
    box-shadow:inset 4px 0 0 #d85a52,inset 0 1px 0 rgba(255,255,255,.95),0 4px 10px rgba(122,50,44,.11)!important;
  }

  /* Hard density lock. */
  .ww585-card:has(.ww585-staff-band[data-staff-count="1"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="2"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="4"]){min-height:116px!important;max-height:120px!important;}
}

@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{margin-left:9px!important;margin-right:9px!important;}
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response{min-width:138px!important;height:31px!important;}
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response button,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response button{height:25px!important;min-height:25px!important;font-size:8.1px!important;padding:0 7px!important;}
}

/* ---- app-polish-v598.css ---- */
/* EarthRoster v598 — Professional mobile roster cards.
   Scope: mobile roster-card shell and roster-card actions only.
   Purpose: remove the v597 faceted/mixed-radius styling and replace it with a
   clean, uniform, professional card/button system. No roster logic changes. */
@media (max-width:1023px){
  /* Clean card silhouette: one radius, no decorative clipping or corner tricks. */
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    min-height:110px!important;
    max-height:none!important;
    margin:0 11px 8px!important;
    padding:8px 10px 7px 11px!important;
    border:1px solid color-mix(in srgb,var(--pop,#49a866) 44%,rgba(255,255,255,.54) 56%)!important;
    border-radius:15px!important;
    background:linear-gradient(135deg,
      color-mix(in srgb,var(--solid,#238651) 94%,#fff 6%) 0%,
      color-mix(in srgb,var(--deep,#145837) 94%,#000 6%) 100%)!important;
    box-shadow:
      inset 3px 0 0 color-mix(in srgb,var(--pop,#49a866) 76%,#fff 24%),
      inset 0 1px 0 rgba(255,255,255,.18),
      0 5px 14px color-mix(in srgb,var(--deep,#145837) 16%,transparent)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card::before,
  body.ww-roster-active .roster-mobile .ww585-card::after,
  body .home-roster-list .ww585-card::before,
  body .home-roster-list .ww585-card::after{
    display:none!important;
    content:none!important;
  }

  /* Hours panel follows the same quiet geometry. */
  .ww585-card .ww583-hours{
    width:50px!important;
    height:50px!important;
    border-radius:11px!important;
    border:1px solid rgba(255,255,255,.16)!important;
    background:color-mix(in srgb,var(--deep,#145837) 86%,#091c13 14%)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12)!important;
  }
  .ww585-card .ww583-hours strong{
    font-size:18.5px!important;
    font-weight:900!important;
    letter-spacing:-.035em!important;
  }
  .ww585-card .ww583-hours span{
    font-size:6.8px!important;
    font-weight:800!important;
    letter-spacing:.14em!important;
  }

  /* Text hierarchy: crisp, restrained and easy to scan. */
  .ww585-card .ww583-copy h3{
    font-size:15.5px!important;
    line-height:1.04!important;
    font-weight:900!important;
    letter-spacing:-.022em!important;
    text-shadow:none!important;
  }
  .ww585-card .ww583-time{
    font-size:9.4px!important;
    line-height:1!important;
    opacity:.88!important;
  }

  /* Simple staff divider and columns; no decorative inner blocks. */
  .ww585-card .ww585-staff-band{
    border-top:1px solid rgba(255,255,255,.17)!important;
  }
  .ww585-card .ww585-person{
    border-right:1px solid rgba(255,255,255,.09)!important;
    background:transparent!important;
  }
  .ww585-card .ww583-staff-name{
    font-weight:850!important;
    letter-spacing:-.012em!important;
  }

  /* Roster action area: controls sit directly on the card, not inside another box. */
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response,
  body .home-roster-list .ww585-card .ww585-response{
    display:inline-flex!important;
    align-items:center!important;
    gap:6px!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  body.ww-roster-active .roster-mobile .ww585-card .ww585-response button,
  body .home-roster-list .ww585-card .ww585-response button,
  .ww585-start-shift{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    height:29px!important;
    min-height:29px!important;
    min-width:68px!important;
    padding:0 10px!important;
    border-radius:9px!important;
    gap:5px!important;
    font-size:9px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:0!important;
    text-shadow:none!important;
    box-shadow:none!important;
    transition:transform .12s ease,filter .12s ease!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response button svg,
  body .home-roster-list .ww585-card .ww585-response button svg,
  .ww585-start-shift svg{
    width:11px!important;
    height:11px!important;
    padding:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    stroke:currentColor!important;
  }

  /* Decline is secondary and quiet. */
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-decline,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-decline{
    border:1px solid rgba(255,255,255,.26)!important;
    background:rgba(8,22,15,.16)!important;
    color:rgba(255,255,255,.94)!important;
  }

  /* Accept is the clear primary action without gradients or nested icon tiles. */
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-accept,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-accept{
    border:1px solid rgba(255,255,255,.86)!important;
    background:rgba(255,255,255,.94)!important;
    color:color-mix(in srgb,var(--deep,#145837) 92%,#111 8%)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response button:active,
  body .home-roster-list .ww585-card .ww585-response button:active,
  .ww585-start-shift:active{
    transform:translateY(1px)!important;
    filter:brightness(.97)!important;
  }

  /* Accepted/start-shift and state badges now use the same uniform family. */
  .ww585-accepted-start{
    gap:6px!important;
  }
  .ww585-start-shift{
    border:1px solid rgba(255,255,255,.86)!important;
    background:rgba(255,255,255,.94)!important;
    color:color-mix(in srgb,var(--deep,#145837) 92%,#111 8%)!important;
    font-weight:850!important;
  }
  .ww585-start-shift svg{
    fill:currentColor!important;
  }
  .ww585-action-pill{
    height:29px!important;
    min-height:29px!important;
    padding:0 9px!important;
    border-radius:9px!important;
    gap:5px!important;
    font-size:8.8px!important;
    font-weight:850!important;
    box-shadow:none!important;
  }
  .ww585-action-pill svg{
    width:10px!important;
    height:10px!important;
  }
  .ww585-action-pill.is-accepted{
    border:1px solid rgba(255,255,255,.25)!important;
    background:rgba(8,35,20,.18)!important;
    color:#fff!important;
  }
  .ww585-action-pill.is-completed{
    border:1px solid rgba(255,255,255,.30)!important;
    background:rgba(8,35,20,.22)!important;
    color:#fff!important;
  }
  .ww585-action-pill.is-awaiting{
    border:1px solid rgba(255,255,255,.24)!important;
    background:rgba(8,25,18,.18)!important;
    color:#fff!important;
  }
  .ww585-action-pill.is-declined{
    border:1px solid rgba(132,47,42,.20)!important;
    background:rgba(145,54,48,.12)!important;
    color:#8c3731!important;
  }

  .ww585-employee-card .ww585-action-stack{
    min-width:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    gap:2px!important;
  }
  .ww585-employee-card .ww585-action-stack .ww585-action-pill.is-progress{
    height:24px!important;
    min-height:24px!important;
    padding:0 8px!important;
    border:1px solid rgba(255,255,255,.24)!important;
    border-radius:8px!important;
    background:rgba(8,35,20,.18)!important;
    color:#fff!important;
  }
  .ww585-employee-card .ww585-action-stack small{
    font-size:7.6px!important;
    color:rgba(255,255,255,.76)!important;
  }

  /* Declined stays pale red but uses the same professional rectangle. */
  body.ww-roster-active .roster-mobile .ww585-employee-card.is-declined,
  body .home-roster-list .ww585-employee-card.is-declined{
    border-radius:15px!important;
    border-color:#d88982!important;
    background:linear-gradient(135deg,#faece9,#f4dfdb)!important;
    box-shadow:inset 3px 0 0 #cf5a52,0 5px 13px rgba(121,55,49,.10)!important;
  }

  /* Preserve compact mobile density while allowing content to fit naturally. */
  .ww585-card:has(.ww585-staff-band[data-staff-count="1"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="2"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="4"]){
    min-height:110px!important;
    max-height:none!important;
  }
}

@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    margin-left:9px!important;
    margin-right:9px!important;
    padding-left:10px!important;
    padding-right:9px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response button,
  body .home-roster-list .ww585-card .ww585-response button,
  .ww585-start-shift{
    min-width:62px!important;
    height:28px!important;
    min-height:28px!important;
    padding:0 8px!important;
    font-size:8.5px!important;
  }
}

/* ---- app-polish-v599.css ---- */
/* EarthRoster v599 — slimmer mobile roster cards + clean response area.
   Scope: mobile roster-card density, response outline removal and staff-name display.
   No roster, clocking, geolocation, navigation or desktop logic changes. */
@media (max-width:1023px){
  /* Make the entire roster card visibly slimmer without changing its family. */
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    min-height:88px!important;
    margin:0 10px 6px!important;
    padding:6px 9px 5px 10px!important;
    border-radius:13px!important;
    box-shadow:
      inset 3px 0 0 color-mix(in srgb,var(--pop,#49a866) 72%,#fff 28%),
      inset 0 1px 0 rgba(255,255,255,.15),
      0 3px 10px color-mix(in srgb,var(--deep,#145837) 12%,transparent)!important;
  }

  /* Smaller hours tile so it no longer makes the whole card feel fat. */
  .ww585-card .ww583-hours{
    width:43px!important;
    height:43px!important;
    border-radius:9px!important;
  }
  .ww585-card .ww583-hours strong{
    font-size:16px!important;
    line-height:.94!important;
  }
  .ww585-card .ww583-hours span{
    font-size:6.1px!important;
  }
  .ww585-card .ww583-copy h3{
    font-size:14.2px!important;
    line-height:1!important;
  }
  .ww585-card .ww583-time{
    font-size:8.7px!important;
  }
  .ww585-card .ww583-time svg{
    width:10px!important;
    height:10px!important;
  }

  /* Compact lower staff/action band. */
  .ww585-card .ww585-staff-band{
    grid-template-columns:38px minmax(0,1fr)!important;
    column-gap:4px!important;
    row-gap:1px!important;
    min-height:27px!important;
    padding-top:1px!important;
    padding-bottom:0!important;
  }
  .ww585-card .ww583-staff-label{
    padding:4px 0 0 1px!important;
    font-size:6.7px!important;
    letter-spacing:.12em!important;
  }
  .ww585-card .ww585-person{
    min-height:19px!important;
    padding:2px 4px!important;
  }
  .ww585-card .ww583-staff-name{
    font-size:8.5px!important;
    line-height:1!important;
    font-weight:850!important;
  }

  /* Employee cards always display the assigned employees' actual names.
     There is deliberately no special "You" treatment in the roster card. */
  .ww585-employee-card .ww583-staff-name::before,
  .ww585-employee-card .ww583-staff-name::after{
    content:none!important;
    display:none!important;
  }

  /* Completely remove the inherited outline/container around Decline + Accept. */
  body.ww-roster-active .roster-mobile .ww585-card .ww585-action-area,
  body .home-roster-list .ww585-card .ww585-action-area,
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response,
  body .home-roster-list .ww585-card .ww585-response{
    outline:0!important;
    border:0!important;
    box-shadow:none!important;
    background:none!important;
    border-radius:0!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww585-action-area::before,
  body.ww-roster-active .roster-mobile .ww585-card .ww585-action-area::after,
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response::before,
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response::after,
  body .home-roster-list .ww585-card .ww585-action-area::before,
  body .home-roster-list .ww585-card .ww585-action-area::after,
  body .home-roster-list .ww585-card .ww585-response::before,
  body .home-roster-list .ww585-card .ww585-response::after{
    content:none!important;
    display:none!important;
    border:0!important;
    outline:0!important;
    box-shadow:none!important;
  }

  /* Slimmer actions. Keep the two buttons clear, but remove the bulky footprint. */
  .ww585-employee-card .ww585-action-area{
    margin-top:-1px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response,
  body .home-roster-list .ww585-card .ww585-response{
    gap:4px!important;
    padding:0!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response button,
  body .home-roster-list .ww585-card .ww585-response button,
  .ww585-start-shift{
    height:24px!important;
    min-height:24px!important;
    min-width:60px!important;
    padding:0 8px!important;
    border-radius:7px!important;
    font-size:8.2px!important;
    gap:4px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response button svg,
  body .home-roster-list .ww585-card .ww585-response button svg,
  .ww585-start-shift svg{
    width:9px!important;
    height:9px!important;
  }
  .ww585-action-pill{
    height:24px!important;
    min-height:24px!important;
    padding:0 8px!important;
    border-radius:7px!important;
    font-size:8px!important;
  }
  .ww585-employee-card .ww585-action-stack .ww585-action-pill.is-progress{
    height:22px!important;
    min-height:22px!important;
    border-radius:7px!important;
  }
  .ww585-employee-card .ww585-action-stack small{
    font-size:6.8px!important;
  }

  /* Density hard cap for the normal 1–4 employee card family. */
  .ww585-card:has(.ww585-staff-band[data-staff-count="1"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="2"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="4"]){
    min-height:88px!important;
  }
}

@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    margin-left:8px!important;
    margin-right:8px!important;
    padding-left:9px!important;
    padding-right:8px!important;
  }
  .ww585-card .ww585-staff-band{
    grid-template-columns:35px minmax(0,1fr)!important;
    column-gap:3px!important;
  }
  .ww585-card .ww583-staff-name{font-size:8.15px!important;}
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response button,
  body .home-roster-list .ww585-card .ww585-response button,
  .ww585-start-shift{
    min-width:56px!important;
    height:23px!important;
    min-height:23px!important;
    padding:0 7px!important;
    font-size:7.9px!important;
  }
}

/* v599 final density/outline lock — deliberately higher specificity than v597. */
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    grid-template-columns:46px minmax(0,1fr) 22px!important;
    grid-template-rows:44px 29px!important;
    column-gap:7px!important;
    row-gap:0!important;
    min-height:84px!important;
    max-height:none!important;
    padding-top:5px!important;
    padding-bottom:5px!important;
  }

  /* Keep employee staff names and response actions in one slim lower band. */
  .ww585-employee-card .ww585-staff-band{
    grid-template-columns:30px minmax(0,1fr) auto!important;
    grid-template-rows:27px!important;
    min-height:27px!important;
    height:29px!important;
    column-gap:4px!important;
    align-items:center!important;
  }
  .ww585-employee-card .ww583-staff-label{
    grid-column:1!important;
    grid-row:1!important;
    align-self:center!important;
    padding:0 0 0 1px!important;
  }
  .ww585-employee-card .ww585-staff-grid{
    grid-column:2!important;
    grid-row:1!important;
    align-self:stretch!important;
    height:27px!important;
  }
  .ww585-employee-card .ww585-action-area,
  .ww585-employee-card.is-completed .ww585-action-area,
  .ww585-employee-card.is-declined .ww585-action-area,
  .ww585-employee-card.is-progress .ww585-action-area,
  .ww585-employee-card.is-accepted .ww585-action-area,
  .ww585-employee-card.is-awaiting .ww585-action-area{
    grid-column:3!important;
    grid-row:1!important;
    align-self:center!important;
    justify-self:end!important;
    margin:0!important;
    height:auto!important;
  }

  /* This selector matches/exceeds the old v597 premium-deck specificity. */
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response{
    display:inline-flex!important;
    grid-template-columns:none!important;
    gap:4px!important;
    width:auto!important;
    min-width:0!important;
    height:23px!important;
    min-height:23px!important;
    padding:0!important;
    border:0!important;
    outline:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response::before,
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response::after,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response::before,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response::after{
    content:none!important;
    display:none!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response button,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response button{
    height:23px!important;
    min-height:23px!important;
    min-width:52px!important;
    padding:0 6px!important;
    border-radius:7px!important;
    font-size:7.8px!important;
    gap:3px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response button svg,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response button svg{
    width:8px!important;
    height:8px!important;
    padding:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  .ww585-accepted-start{
    display:inline-flex!important;
    align-items:center!important;
    gap:3px!important;
  }
  .ww585-accepted-start .ww585-action-pill.is-accepted{
    height:22px!important;
    min-height:22px!important;
    padding:0 6px!important;
    font-size:7.4px!important;
  }
  .ww585-accepted-start .ww585-start-shift{
    height:23px!important;
    min-height:23px!important;
    min-width:58px!important;
    padding:0 6px!important;
    font-size:7.7px!important;
  }

  .ww585-card:has(.ww585-staff-band[data-staff-count="1"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="2"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="3"]),
  .ww585-card:has(.ww585-staff-band[data-staff-count="4"]){
    min-height:84px!important;
    max-height:none!important;
  }
}

@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    grid-template-columns:44px minmax(0,1fr) 20px!important;
    grid-template-rows:43px 28px!important;
  }
  .ww585-employee-card .ww585-staff-band{
    grid-template-columns:27px minmax(0,1fr) auto!important;
    column-gap:3px!important;
    height:28px!important;
  }
  .ww585-employee-card .ww583-staff-label{font-size:6.3px!important;}
  .ww585-card .ww583-staff-name{font-size:7.8px!important;}
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response button,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response button{
    min-width:49px!important;
    padding:0 5px!important;
    font-size:7.45px!important;
  }
}

/* ---- app-polish-v600.css ---- */
/* EarthRoster v600 — premium compact roster actions.
   Requested scope: Decline, Accept and Start shift controls only.
   The v599 slim roster-card dimensions, staff-name layout and all app logic stay locked. */
@media (max-width:1023px){
  /* Keep the response pair completely free of an outer tray/outline. */
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response,
  body .home-roster-list .ww585-card .ww585-response{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:5px!important;
    width:auto!important;
    min-width:0!important;
    height:24px!important;
    min-height:24px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    outline:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
  }

  /* Shared control geometry: crisp compact rounded rectangles, not pills. */
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response button,
  body .home-roster-list .ww585-card .ww585-response button,
  body.ww-roster-active .roster-mobile .ww585-card .ww585-start-shift,
  body .home-roster-list .ww585-card .ww585-start-shift{
    position:relative!important;
    box-sizing:border-box!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
    width:auto!important;
    height:24px!important;
    min-height:24px!important;
    max-height:24px!important;
    margin:0!important;
    padding:0 7px!important;
    border-radius:8px!important;
    font-size:7.9px!important;
    line-height:1!important;
    font-weight:900!important;
    letter-spacing:.005em!important;
    white-space:nowrap!important;
    text-shadow:none!important;
    -webkit-tap-highlight-color:transparent!important;
    transition:transform .12s ease,filter .12s ease,box-shadow .12s ease!important;
  }

  /* The icon is an integrated mini key, giving the controls a distinct app identity. */
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response button svg,
  body .home-roster-list .ww585-card .ww585-response button svg,
  body.ww-roster-active .roster-mobile .ww585-card .ww585-start-shift svg,
  body .home-roster-list .ww585-card .ww585-start-shift svg{
    box-sizing:content-box!important;
    width:8px!important;
    height:8px!important;
    flex:0 0 8px!important;
    padding:2.5px!important;
    margin:0 4px 0 0!important;
    border:0!important;
    border-radius:5px!important;
    stroke-width:2.35!important;
    background:rgba(255,255,255,.11)!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.10)!important;
  }

  /* Decline: quiet, professional and secondary. */
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-decline,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-decline{
    min-width:57px!important;
    border:1px solid rgba(255,255,255,.20)!important;
    background:linear-gradient(180deg,rgba(10,28,25,.28),rgba(6,22,19,.38))!important;
    color:rgba(255,255,255,.92)!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.10),
      0 1px 2px rgba(5,18,14,.10)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-decline svg,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-decline svg{
    color:rgba(255,255,255,.94)!important;
    background:rgba(3,19,15,.20)!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)!important;
  }

  /* Accept: clean elevated primary face with card-aware tinting. */
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-accept,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-accept{
    min-width:57px!important;
    border:1px solid rgba(255,255,255,.78)!important;
    background:linear-gradient(180deg,#ffffff 0%,color-mix(in srgb,var(--pop,#49a866) 8%,#f4f7f4 92%) 100%)!important;
    color:color-mix(in srgb,var(--deep,#145837) 91%,#101b16 9%)!important;
    box-shadow:
      inset 0 1px 0 #fff,
      0 2px 5px rgba(4,29,20,.17)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-accept svg,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-accept svg{
    color:color-mix(in srgb,var(--deep,#145837) 90%,#0d2018 10%)!important;
    background:color-mix(in srgb,var(--pop,#49a866) 18%,#eef5ef 82%)!important;
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pop,#49a866) 23%,rgba(18,70,43,.08) 77%)!important;
  }

  /* Start shift: a compact two-part launch control instead of the oversized blue pill. */
  body.ww-roster-active .roster-mobile .ww585-card .ww585-start-shift,
  body .home-roster-list .ww585-card .ww585-start-shift{
    min-width:76px!important;
    max-width:82px!important;
    padding:0 8px 0 5px!important;
    border:1px solid rgba(255,255,255,.78)!important;
    background:linear-gradient(180deg,#ffffff 0%,color-mix(in srgb,var(--pop,#49a866) 10%,#eef3ef 90%) 100%)!important;
    color:color-mix(in srgb,var(--deep,#145837) 92%,#111 8%)!important;
    box-shadow:
      inset 0 1px 0 #fff,
      0 2px 6px rgba(4,27,19,.18)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww585-start-shift svg,
  body .home-roster-list .ww585-card .ww585-start-shift svg{
    width:8px!important;
    height:8px!important;
    flex-basis:8px!important;
    padding:3px!important;
    margin-right:5px!important;
    border-radius:5px!important;
    color:#fff!important;
    fill:#fff!important;
    stroke:#fff!important;
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--solid,#238651) 88%,#fff 12%),
      color-mix(in srgb,var(--deep,#145837) 92%,#000 8%))!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.24),
      0 1px 2px rgba(3,24,16,.18)!important;
  }

  /* Keep accepted state tidy beside the launch control when it is shown. */
  .ww585-accepted-start{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:4px!important;
    width:auto!important;
  }
  .ww585-accepted-start .ww585-action-pill.is-accepted{
    height:22px!important;
    min-height:22px!important;
    padding:0 6px!important;
    border-radius:7px!important;
    font-size:7.2px!important;
    border:1px solid rgba(255,255,255,.18)!important;
    background:rgba(7,32,23,.22)!important;
    color:rgba(255,255,255,.92)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important;
  }

  /* Press/focus feedback without changing card height. */
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response button:active,
  body .home-roster-list .ww585-card .ww585-response button:active,
  body.ww-roster-active .roster-mobile .ww585-card .ww585-start-shift:active,
  body .home-roster-list .ww585-card .ww585-start-shift:active{
    transform:translateY(1px)!important;
    filter:brightness(.97)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response button:focus-visible,
  body .home-roster-list .ww585-card .ww585-response button:focus-visible,
  body.ww-roster-active .roster-mobile .ww585-card .ww585-start-shift:focus-visible,
  body .home-roster-list .ww585-card .ww585-start-shift:focus-visible{
    outline:2px solid rgba(255,255,255,.82)!important;
    outline-offset:2px!important;
  }
}

@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response,
  body .home-roster-list .ww585-card .ww585-response{gap:4px!important;}
  body.ww-roster-active .roster-mobile .ww585-card .ww585-response button,
  body .home-roster-list .ww585-card .ww585-response button{
    min-width:54px!important;
    padding-left:6px!important;
    padding-right:6px!important;
    font-size:7.55px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww585-start-shift,
  body .home-roster-list .ww585-card .ww585-start-shift{
    min-width:72px!important;
    max-width:78px!important;
    padding-right:7px!important;
    font-size:7.55px!important;
  }
}

/* ---- app-polish-v601.css ---- */
/* EarthRoster v601 — red Decline action.
   Requested scope: make the existing premium Decline control red.
   Keep v599 slim cards, v600 Accept/Start Shift styling, employee names and all roster logic unchanged. */
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-decline,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-decline{
    min-width:57px!important;
    border:1px solid rgba(255,178,171,.72)!important;
    background:linear-gradient(180deg,#dc554e 0%,#bd3934 100%)!important;
    color:#fff!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.24),
      0 2px 5px rgba(103,24,21,.23)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-decline svg,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-decline svg{
    color:#fff!important;
    stroke:#fff!important;
    background:rgba(113,22,19,.22)!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card:not(.is-declined) .ww585-response .ww585-decline:active,
  body .home-roster-list .ww585-card:not(.is-declined) .ww585-response .ww585-decline:active{
    background:linear-gradient(180deg,#c94a44 0%,#ad312d 100%)!important;
  }

  /* Keep the already-declined status visibly related to the response action. */
  .ww585-action-pill.is-declined{
    border-color:rgba(255,174,167,.62)!important;
    background:linear-gradient(180deg,#c94d46,#aa332f)!important;
    color:#fff!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18)!important;
  }
}

/* ---- app-polish-v602.css ---- */
/* EarthRoster v602 — stronger admin response visibility on mobile roster cards. */
@media (max-width:1023px){
  /* Only Declined and Awaiting are enlarged; accepted/work states keep their existing styling. */
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting{
    display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;
    gap:3px!important;width:auto!important;max-width:100%!important;min-height:16px!important;
    padding:2px 5px!important;margin:1px 0 0!important;border-radius:5px!important;
    border:1px solid rgba(255,255,255,.22)!important;font-size:8.2px!important;line-height:1!important;
    font-weight:950!important;letter-spacing:.005em!important;white-space:nowrap!important;overflow:hidden!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 1px 2px rgba(0,0,0,.08)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined svg,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting svg{
    width:8px!important;height:8px!important;flex:0 0 8px!important;stroke-width:2.45!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined > span,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting > span{
    display:block!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined small,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting small{display:none!important;}

  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined{
    background:linear-gradient(180deg,#dd5a53 0%,#be3f39 100%)!important;border-color:#ef8d86!important;color:#fff!important;
    text-shadow:0 1px 0 rgba(93,19,17,.18)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting{
    background:linear-gradient(180deg,#f1bb42 0%,#cc8d16 100%)!important;border-color:#ffd878!important;color:#2d2107!important;text-shadow:none!important;
  }

  body.ww-roster-active .roster-mobile .ww585-admin-card:not(.is-single-declined) .ww585-person.is-declined{
    background:rgba(105,18,18,.16)!important;box-shadow:inset 2px 0 0 rgba(255,119,109,.92)!important;border-radius:5px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person.is-awaiting{
    background:rgba(111,75,5,.11)!important;box-shadow:inset 2px 0 0 rgba(255,205,77,.72)!important;border-radius:5px!important;
  }

  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined,
  body .home-roster-list .ww585-admin-card.is-single-declined{
    border-color:#d9827b!important;background:linear-gradient(135deg,#faece9 0%,#f4dfdb 100%)!important;
    box-shadow:inset 3px 0 0 #cf5a52,inset 0 1px 0 rgba(255,255,255,.92),0 5px 13px rgba(121,55,49,.12)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww583-hours,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww583-hours{
    border-color:#dc7c75!important;background:linear-gradient(180deg,#d96760 0%,#bd4943 100%)!important;color:#fff!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.26),0 2px 5px rgba(112,37,33,.16)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww583-copy h3,
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww583-time,
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww583-staff-name,
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww583-staff-label,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww583-copy h3,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww583-time,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww583-staff-name,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww583-staff-label{
    color:#7d2926!important;text-shadow:none!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww583-time svg,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww583-time svg{stroke:#a84741!important;}
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-staff-band,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-staff-band{border-top-color:rgba(158,57,50,.18)!important;}
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-person{background:rgba(255,255,255,.24)!important;box-shadow:none!important;}
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-person-state.is-declined{
    min-height:23px!important;padding:3px 8px!important;border-radius:7px!important;font-size:9.6px!important;
    background:linear-gradient(180deg,#d85d55 0%,#bd403a 100%)!important;border-color:#e88982!important;color:#fff!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww583-chevron,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww583-chevron{
    border-color:rgba(157,55,49,.18)!important;background:rgba(255,255,255,.32)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww583-chevron svg,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww583-chevron svg{stroke:#9b3e38!important;}

  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person-state.is-awaiting{
    min-height:21px!important;padding:3px 7px!important;font-size:9.2px!important;
  }
}
@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting{font-size:7.8px!important;padding-left:4px!important;padding-right:4px!important;}
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person-state.is-declined{font-size:9.2px!important;padding-left:7px!important;padding-right:7px!important;}
}

/* ---- app-polish-v603.css ---- */
/* EarthRoster v603 — clean standalone Admin response text.
   Scope: Admin mobile roster Declined/Awaiting visibility only.
   Removes v602 pills, borders, fills and row highlight boxes while preserving
   the light-red whole-card treatment when the only assigned employee declined. */
@media (max-width:1023px){
  /* Declined / Awaiting are text labels — never badges. */
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:3px!important;
    width:auto!important;
    max-width:100%!important;
    min-height:0!important;
    height:auto!important;
    margin:2px 0 0!important;
    padding:0!important;
    border:0!important;
    outline:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    text-shadow:none!important;
    font-size:9.8px!important;
    line-height:1.05!important;
    font-weight:900!important;
    letter-spacing:0!important;
    white-space:nowrap!important;
    overflow:visible!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined::before,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined::after,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting::before,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting::after,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined::before,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined::after,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting::before,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting::after{
    content:none!important;
    display:none!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined{
    color:#ff8a82!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting{
    color:#ffd064!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined svg,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting svg,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined svg,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting svg{
    width:9px!important;
    height:9px!important;
    flex:0 0 9px!important;
    stroke-width:2.5!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined > span,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting > span,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined > span,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting > span{
    display:block!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined small,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting small,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined small,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting small{
    display:none!important;
  }

  /* Remove v602's boxed/highlighted employee rows on shared jobs. */
  body.ww-roster-active .roster-mobile .ww585-admin-card:not(.is-single-declined) .ww585-person.is-declined,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person.is-awaiting,
  body .home-roster-list .ww585-admin-card:not(.is-single-declined) .ww585-person.is-declined,
  body .home-roster-list .ww585-admin-card .ww585-person.is-awaiting{
    background:transparent!important;
    box-shadow:none!important;
    border:0!important;
    border-radius:0!important;
  }

  /* Single declined employee: the card is the signal; status remains plain text. */
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined,
  body .home-roster-list .ww585-admin-card.is-single-declined{
    border-color:#df918b!important;
    background:linear-gradient(135deg,#faece9 0%,#f5e2df 100%)!important;
    box-shadow:inset 3px 0 0 #cf5a52,inset 0 1px 0 rgba(255,255,255,.92),0 4px 10px rgba(121,55,49,.10)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-person{
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-person-state.is-declined{
    min-height:0!important;
    height:auto!important;
    margin-top:2px!important;
    padding:0!important;
    border:0!important;
    outline:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#bd3f39!important;
    font-size:10.6px!important;
    font-weight:950!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person-state.is-declined svg,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-person-state.is-declined svg{
    stroke:#bd3f39!important;
  }

  /* Give the one-person Awaiting label room to breathe without adding a box. */
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person-state.is-awaiting,
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person-state.is-awaiting{
    font-size:10.3px!important;
  }
}

@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting{
    font-size:9.2px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-person-state.is-declined{
    font-size:10px!important;
  }
}

/* ---- app-polish-v604.css ---- */
/* EarthRoster v604 — stronger standalone admin status typography.
   Scope: Admin mobile roster Declined/Awaiting readability only.
   Keeps v603's no-outline text-only approach, but makes the wording larger,
   cleaner and more professional. */
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting{
    display:inline-flex!important;
    align-items:center!important;
    gap:4px!important;
    margin:3px 0 0!important;
    padding:0!important;
    border:0!important;
    outline:0!important;
    background:transparent!important;
    box-shadow:none!important;
    border-radius:0!important;
    font-size:11.8px!important;
    line-height:1.12!important;
    font-weight:900!important;
    letter-spacing:.01em!important;
    white-space:nowrap!important;
    text-rendering:optimizeLegibility!important;
    -webkit-font-smoothing:antialiased!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined{
    color:#c6453d!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting{
    color:#d69a1f!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined svg,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting svg,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined svg,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting svg{
    width:10px!important;
    height:10px!important;
    flex:0 0 10px!important;
    stroke-width:2.4!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined > span,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting > span,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined > span,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting > span{
    line-height:1.1!important;
  }

  /* Single declined cards still use the whole-card red cue, but the status text
     should read more confidently on top of it. */
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-person-state.is-declined{
    color:#b73932!important;
    font-size:12.8px!important;
    font-weight:950!important;
    letter-spacing:.012em!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person-state.is-declined svg,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-person-state.is-declined svg{
    width:11px!important;
    height:11px!important;
    flex:0 0 11px!important;
    stroke:#b73932!important;
  }

  /* One-person awaiting should also read clearly without becoming shouty. */
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person-state.is-awaiting,
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person-state.is-awaiting{
    font-size:12.2px!important;
    font-weight:900!important;
  }
}

@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined,
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting{
    font-size:11.1px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-person-state.is-declined{
    font-size:12.1px!important;
  }
}

/* ---- app-polish-v605.css ---- */
/* EarthRoster v605 — balanced Admin staff response row.
   Scope: mobile Admin roster card response typography/alignment only.
   - Accepted / Awaiting / Declined share one size and baseline.
   - Declined uses a stronger high-contrast red.
   - No pills, boxes, fills or outlines around response text.
   - Single-employee declined card keeps the pale-red whole-card treatment. */
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person,
  body .home-roster-list .ww585-admin-card .ww585-person{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:12px 14px!important;
    align-content:center!important;
    align-items:start!important;
    justify-items:start!important;
    row-gap:3px!important;
    min-height:34px!important;
    padding:3px 5px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww583-staff-name,
  body .home-roster-list .ww585-admin-card .ww583-staff-name{
    grid-row:1!important;
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    line-height:12px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state,
  body .home-roster-list .ww585-admin-card .ww585-person-state{
    grid-row:2!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:4px!important;
    width:auto!important;
    max-width:100%!important;
    min-height:14px!important;
    height:14px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    outline:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    font-size:10.8px!important;
    line-height:14px!important;
    font-weight:900!important;
    letter-spacing:.005em!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-rendering:optimizeLegibility!important;
    -webkit-font-smoothing:antialiased!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state > span,
  body .home-roster-list .ww585-admin-card .ww585-person-state > span{
    display:block!important;
    line-height:14px!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state svg,
  body .home-roster-list .ww585-admin-card .ww585-person-state svg{
    width:9.5px!important;
    height:9.5px!important;
    flex:0 0 9.5px!important;
    stroke-width:2.5!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state small,
  body .home-roster-list .ww585-admin-card .ww585-person-state small{display:none!important;}

  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-accepted,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-accepted{color:#a9efb5!important;}
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-awaiting,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-awaiting{color:#ffd05a!important;}
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-declined{color:#ff5b55!important;font-weight:950!important;}
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-progress,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-progress{color:#b8f3af!important;}
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state.is-completed,
  body .home-roster-list .ww585-admin-card .ww585-person-state.is-completed{color:#a9efb8!important;}

  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-person-state.is-declined{
    color:#b92127!important;
    font-size:11.3px!important;
    line-height:14px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person-state.is-declined svg,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-person-state.is-declined svg{stroke:#b92127!important;}
}
@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state,
  body .home-roster-list .ww585-admin-card .ww585-person-state{font-size:10.2px!important;}
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state svg,
  body .home-roster-list .ww585-admin-card .ww585-person-state svg{width:9px!important;height:9px!important;flex-basis:9px!important;}
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-person-state.is-declined{font-size:10.8px!important;}
}

/* ---- app-polish-v606.css ---- */
/* EarthRoster v606 — professional roster typography.
   Scope: roster client + employee names only.
   Replaces the extra-heavy condensed display treatment with the native/system UI
   stack for a cleaner, more balanced mobile roster. */
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww585-card .ww583-copy h3,
  body .home-roster-list .ww585-card .ww583-copy h3{
    font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Segoe UI",Arial,sans-serif!important;
    font-size:15px!important;
    line-height:1.06!important;
    font-weight:750!important;
    letter-spacing:-.016em!important;
    text-shadow:none!important;
    font-kerning:normal!important;
    text-rendering:optimizeLegibility!important;
    -webkit-font-smoothing:antialiased!important;
  }

  body.ww-roster-active .roster-mobile .ww585-card .ww583-staff-name,
  body .home-roster-list .ww585-card .ww583-staff-name{
    font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Arial,sans-serif!important;
    font-size:9.3px!important;
    line-height:1.05!important;
    font-weight:620!important;
    letter-spacing:-.006em!important;
    text-shadow:none!important;
    font-kerning:normal!important;
    text-rendering:optimizeLegibility!important;
    -webkit-font-smoothing:antialiased!important;
  }

  /* Keep the single-declined pale card readable using the same professional type. */
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww583-copy h3,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww583-copy h3{
    font-weight:760!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww583-staff-name,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww583-staff-name{
    font-weight:620!important;
  }
}

@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-card .ww583-copy h3,
  body .home-roster-list .ww585-card .ww583-copy h3{font-size:14.6px!important;}
  body.ww-roster-active .roster-mobile .ww585-card .ww583-staff-name,
  body .home-roster-list .ww585-card .ww583-staff-name{font-size:8.9px!important;}
}

/* ---- app-polish-v607.css ---- */
/* EarthRoster v607 — fix single-employee Admin status placement.
   Scope: only Admin roster cards with 1 assigned employee.
   Purpose: prevent Awaiting/Accepted/Declined from being cut off or sitting too low,
   while keeping grouped 2–4 employee cards and overall skinny geometry intact. */
@media (max-width:1023px){
  /* Give solo staff cards a touch more vertical room in the staff row only. */
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]),
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]){
    min-height:80px!important;
  }

  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-staff-band,
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-staff-band{
    align-items:start!important;
  }

  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-staff-grid,
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-staff-grid{
    grid-template-columns:minmax(0,1fr)!important;
    margin-top:3px!important;
  }

  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person,
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person{
    grid-template-rows:11px 16px!important;
    min-height:38px!important;
    align-content:start!important;
    align-items:start!important;
    row-gap:5px!important;
    padding:2px 6px 4px!important;
    border-right:0!important;
  }

  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww583-staff-name,
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww583-staff-name{
    line-height:11px!important;
  }

  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person-state,
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person-state{
    min-height:16px!important;
    height:16px!important;
    line-height:16px!important;
    font-size:11.1px!important;
    gap:4px!important;
    margin-top:0!important;
  }

  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person-state svg,
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person-state svg{
    width:10px!important;
    height:10px!important;
    flex:0 0 10px!important;
  }

  /* Keep the single declined card clear and balanced too. */
  body.ww-roster-active .roster-mobile .ww585-admin-card.is-single-declined .ww585-person-state.is-declined,
  body .home-roster-list .ww585-admin-card.is-single-declined .ww585-person-state.is-declined{
    font-size:11.4px!important;
  }
}

@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]),
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]){
    min-height:82px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person-state,
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person-state{
    font-size:10.8px!important;
  }
}

/* ---- app-polish-v608.css ---- */
/* EarthRoster v608 — clean roster-card geometry + long-duration badge.
   Scope: mobile roster cards only.
   Fixes the divider touching the hours tile/chevron and gives durations such
   as 2h 30m an intentional compact two-line treatment. */
@media (max-width:1023px){
  /* The top row must fully contain the hours tile and chevron before the staff
     divider begins. This creates a real visual gap instead of overlap. */
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    grid-template-rows:49px auto!important;
    min-height:90px!important;
    padding-top:5px!important;
    padding-bottom:5px!important;
    row-gap:0!important;
  }

  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours,
  body .home-roster-list .ww585-card .ww583-hours{
    width:43px!important;
    height:43px!important;
    align-self:start!important;
    justify-self:start!important;
    margin:0!important;
    overflow:hidden!important;
  }

  /* Standard one-line durations remain crisp. */
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours strong,
  body .home-roster-list .ww585-card .ww583-hours strong{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    white-space:nowrap!important;
  }

  /* Long durations are purpose-built rather than allowed to wrap randomly. */
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours.is-multi-duration,
  body .home-roster-list .ww585-card .ww583-hours.is-multi-duration{
    padding-top:4px!important;
    padding-bottom:3px!important;
    gap:1px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours.is-multi-duration strong,
  body .home-roster-list .ww585-card .ww583-hours.is-multi-duration strong{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:0!important;
    font-size:13.7px!important;
    line-height:.82!important;
    letter-spacing:-.03em!important;
    white-space:normal!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours.is-multi-duration strong i,
  body .home-roster-list .ww585-card .ww583-hours.is-multi-duration strong i{
    display:block!important;
    margin:0!important;
    padding:0!important;
    font:inherit!important;
    line-height:inherit!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours.is-multi-duration > span,
  body .home-roster-list .ww585-card .ww583-hours.is-multi-duration > span{
    margin-top:2px!important;
    font-size:5.8px!important;
    line-height:1!important;
    letter-spacing:.13em!important;
  }

  /* Divider/staff band begins only after the top content row. */
  body.ww-roster-active .roster-mobile .ww585-card .ww585-staff-band,
  body .home-roster-list .ww585-card .ww585-staff-band{
    grid-row:2!important;
    align-self:stretch!important;
    min-height:31px!important;
    padding-top:2px!important;
    border-top:1px solid rgba(255,255,255,.14)!important;
  }

  /* Keep Staff comfortably below the divider. */
  body.ww-roster-active .roster-mobile .ww585-card .ww583-staff-label,
  body .home-roster-list .ww585-card .ww583-staff-label{
    padding-top:6px!important;
  }

  /* Chevron stays centered in the top row with clear air below it. */
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww583-chevron,
  body .home-roster-list .ww585-admin-card .ww583-chevron{
    grid-row:1!important;
    align-self:start!important;
    margin-top:2px!important;
    margin-bottom:0!important;
  }

  /* v607 single-person status fix, rebalanced for the corrected divider. */
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]),
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]){
    min-height:90px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-staff-grid,
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-staff-grid{
    margin-top:3px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person,
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person{
    grid-template-rows:11px 14px!important;
    min-height:31px!important;
    row-gap:2px!important;
    padding:2px 6px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person-state,
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-person-state{
    min-height:15px!important;
    height:15px!important;
    line-height:15px!important;
    margin:0!important;
  }
}

@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    grid-template-rows:48px auto!important;
    min-height:89px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours,
  body .home-roster-list .ww585-card .ww583-hours{
    width:42px!important;
    height:42px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours.is-multi-duration strong,
  body .home-roster-list .ww585-card .ww583-hours.is-multi-duration strong{
    font-size:13.1px!important;
  }
}

/* ---- app-polish-v609.css ---- */
/* EarthRoster v609 — smooth New roster job employee picker scrolling.
   Scope: mobile/tablet shift editor employee assignment only.
   Removes the nested scrolling trap from the employee list so the modal body is
   the single vertical scroll surface. This prevents iOS/Safari freezing after
   selecting employees and lets Admin scroll past Clear / Done to the fields below. */
@media (max-width:1023px){
  /* Critical iOS fix: older shift-modal rules set touch-action:none on the
     fixed host/overlay. That can cancel a vertical pan before it ever reaches
     the scrollable modal body. Keep the background locked, but allow vertical
     panning through the shift editor hierarchy. */
  body[data-modal-type="shift"] #modalHost,
  body[data-modal-type="shift"] #modalHost .modal-overlay,
  body[data-modal-type="shift"] #modalHost .shift-modal{
    touch-action:pan-y!important;
  }

  body[data-modal-type="shift"] .shift-modal .modal-body{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    scroll-behavior:auto!important;
    scroll-padding-bottom:96px!important;
  }

  /* One scroll owner only: the employee list grows in-flow with the form. */
  body[data-modal-type="shift"] .emp-inline-list,
  body[data-modal-type="shift"] .employee-picker.simple-list.emp-inline-list,
  body[data-modal-type="shift"] #employeePicker.emp-inline-list{
    max-height:none!important;
    height:auto!important;
    overflow:visible!important;
    overflow-y:visible!important;
    overflow-x:hidden!important;
    overscroll-behavior:auto!important;
    -webkit-overflow-scrolling:auto!important;
    touch-action:pan-y!important;
    contain:none!important;
  }

  body[data-modal-type="shift"] .emp-inline,
  body[data-modal-type="shift"] .emp-inline-static,
  body[data-modal-type="shift"] #empPickerScreen{
    max-height:none!important;
    height:auto!important;
    overflow:visible!important;
    overscroll-behavior:auto!important;
    touch-action:pan-y!important;
    contain:none!important;
  }

  /* Keep Clear / Done in normal document flow — not sticky/fixed — so swiping
     through them continues naturally into the remainder of the shift form. */
  body[data-modal-type="shift"] .emp-inline-foot{
    position:relative!important;
    inset:auto!important;
    z-index:1!important;
    flex:0 0 auto!important;
    touch-action:pan-y!important;
  }

  body[data-modal-type="shift"] .emp-inline-list .picker-row,
  body[data-modal-type="shift"] .emp-inline-list .simple-employee-row{
    touch-action:pan-y!important;
  }

  /* Extra breathing room after the employee selector makes the next section
     visibly reachable instead of appearing trapped behind the modal footer. */
  body[data-modal-type="shift"] .emp-field{
    overflow:visible!important;
  }
  body[data-modal-type="shift"] .emp-field + *{
    scroll-margin-top:12px!important;
  }
}

/* ---- app-polish-v610.css ---- */
/* EarthRoster v610 — cleaner, more professional Add shift / New roster job modal.
   Visual polish only. Keeps v609 scroll behavior intact. */
body[data-modal-type="shift"] .shift-modal{
  background:linear-gradient(180deg,#fcfbf7 0%,#f6f3ec 100%)!important;
  border:1px solid rgba(45,70,49,.09)!important;
  box-shadow:0 22px 60px rgba(18,34,23,.18), inset 0 1px 0 rgba(255,255,255,.82)!important;
}
body[data-modal-type="shift"] .shift-modal .modal-head{
  background:rgba(252,251,247,.96)!important;
  border-bottom:1px solid rgba(41,69,46,.09)!important;
}
body[data-modal-type="shift"] .shift-modal .modal-head h2{
  color:#16241a!important;
  font-weight:720!important;
  letter-spacing:-.03em!important;
}
body[data-modal-type="shift"] .shift-modal .modal-x{
  width:52px!important;height:52px!important;border-radius:18px!important;
  border:1px solid rgba(60,84,61,.10)!important;
  background:linear-gradient(180deg,#f3eee3 0%,#eee8dc 100%)!important;
  color:#6e756a!important;
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset!important;
}
body[data-modal-type="shift"] .shift-modal .modal-x:hover{background:linear-gradient(180deg,#f0eadf 0%,#e9e3d7 100%)!important;color:#3a463b!important}
body[data-modal-type="shift"] .shift-modal .modal-body{
  background:linear-gradient(180deg,#f8f6f0 0%,#f4f2eb 100%)!important;
}
body[data-modal-type="shift"] .shift-modal .modal-foot{
  background:rgba(252,250,245,.96)!important;
  border-top:1px solid rgba(41,69,46,.09)!important;
  box-shadow:0 -12px 28px rgba(20,35,23,.08)!important;
}

/* Section cards */
body[data-modal-type="shift"] .ww515-step,
body[data-modal-type="shift"] .ww527-setting-card,
body[data-modal-type="shift"] .shift-panel,
body[data-modal-type="shift"] .shift-date-time-panel,
body[data-modal-type="shift"] .emp-field,
body[data-modal-type="shift"] .shift-colour-section{
  background:#fffefb!important;
  border:1px solid rgba(41,69,46,.10)!important;
  border-radius:22px!important;
  box-shadow:0 8px 22px rgba(18,34,23,.05), inset 0 1px 0 rgba(255,255,255,.92)!important;
}
body[data-modal-type="shift"] .ww515-step-head,
body[data-modal-type="shift"] .ww527-setting-head,
body[data-modal-type="shift"] .panel-title,
body[data-modal-type="shift"] .shift-date-time-panel summary,
body[data-modal-type="shift"] .shift-section>summary{
  margin-bottom:12px!important;
  padding-bottom:12px!important;
  border-bottom:1px solid rgba(41,69,46,.08)!important;
}
body[data-modal-type="shift"] .ww515-step-number{
  width:42px!important;height:42px!important;border-radius:14px!important;
  background:linear-gradient(180deg,#edf4eb 0%,#e7efe5 100%)!important;
  color:#2a6940!important;font-size:17px!important;font-weight:900!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85)!important;
}
body[data-modal-type="shift"] .ww515-step-head strong,
body[data-modal-type="shift"] .ww527-setting-copy strong,
body[data-modal-type="shift"] .panel-title strong,
body[data-modal-type="shift"] .panel-title span,
body[data-modal-type="shift"] .shift-section-label{
  color:#16241a!important;
  font-weight:840!important;
  letter-spacing:-.025em!important;
}
body[data-modal-type="shift"] .ww515-step-head small,
body[data-modal-type="shift"] .ww527-setting-copy small,
body[data-modal-type="shift"] .field label,
body[data-modal-type="shift"] .vis-hint,
body[data-modal-type="shift"] .ww515-invoice-help small,
body[data-modal-type="shift"] .ww515-finish-line small{
  color:#7b8377!important;
}
body[data-modal-type="shift"] .ww515-admin-badge{
  background:#eef4ea!important;color:#376a45!important;border:1px solid rgba(55,106,69,.10)!important;
  border-radius:999px!important;font-weight:900!important;letter-spacing:.04em!important;
}

/* Inputs */
body[data-modal-type="shift"] .client-search-box,
body[data-modal-type="shift"] .ww527-field .input,
body[data-modal-type="shift"] .input,
body[data-modal-type="shift"] input.input,
body[data-modal-type="shift"] select.input,
body[data-modal-type="shift"] textarea.input,
body[data-modal-type="shift"] .ww515-hours-editor,
body[data-modal-type="shift"] .add-client-toggle,
body[data-modal-type="shift"] .emp-collapsed,
body[data-modal-type="shift"] .ww527-colour-trigger.shift-colour-head{
  background:#fff!important;
  border:1.5px solid rgba(56,86,61,.16)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.94)!important;
}
body[data-modal-type="shift"] .client-search-box,
body[data-modal-type="shift"] .input,
body[data-modal-type="shift"] input.input,
body[data-modal-type="shift"] select.input{
  height:54px!important;min-height:54px!important;border-radius:16px!important;
  font-size:15px!important;font-weight:620!important;color:#1f3226!important;
}
body[data-modal-type="shift"] textarea.input,
body[data-modal-type="shift"] .ww527-notes-field .notes-textarea{
  border-radius:16px!important;
  font-size:15px!important;
}
body[data-modal-type="shift"] .input::placeholder,
body[data-modal-type="shift"] textarea.input::placeholder,
body[data-modal-type="shift"] .client-search-box input::placeholder{color:#a1a79f!important}
body[data-modal-type="shift"] .input:focus,
body[data-modal-type="shift"] textarea.input:focus,
body[data-modal-type="shift"] .client-search-box:focus-within,
body[data-modal-type="shift"] .ww515-hours-editor:focus-within{
  border-color:#5b9470!important;
  box-shadow:0 0 0 4px rgba(65,130,84,.10)!important;
  outline:none!important;
}

/* Specific rows */
body[data-modal-type="shift"] .ww515-date-start-grid{gap:10px!important}
body[data-modal-type="shift"] .ww515-finish-line,
body[data-modal-type="shift"] .ww515-invoice-row,
body[data-modal-type="shift"] .ww515-empty-state,
body[data-modal-type="shift"] .ww527-colour-trigger.shift-colour-head{
  border-radius:18px!important;
}
body[data-modal-type="shift"] .ww515-finish-line{
  background:linear-gradient(180deg,#fafbf8 0%,#f4f7f0 100%)!important;
  border:1px solid rgba(57,87,61,.10)!important;
  box-shadow:none!important;
}
body[data-modal-type="shift"] .ww515-finish-line strong{font-weight:900!important;color:#2c6a3f!important}
body[data-modal-type="shift"] .ww515-invoice-row{
  background:linear-gradient(180deg,#fbfcf9 0%,#f4f7f1 100%)!important;
  border:1px solid rgba(57,87,61,.12)!important;
}
body[data-modal-type="shift"] .ww515-invoice-copy strong,
body[data-modal-type="shift"] .ww515-invoice-help strong{font-weight:900!important;color:#18301f!important}
body[data-modal-type="shift"] .ww515-hours-editor{
  min-height:58px!important;border-radius:18px!important;padding:0 14px!important;
}
body[data-modal-type="shift"] .ww515-hours-editor input{
  font-size:24px!important;font-weight:900!important;color:#1f6b3a!important;
}
body[data-modal-type="shift"] .ww515-hours-editor span{font-size:12px!important;font-weight:800!important;color:#5a6257!important}
body[data-modal-type="shift"] .ww515-invoice-help{
  margin-top:10px!important;padding:2px 2px 0!important;
}

/* Employee assignment */
body[data-modal-type="shift"] .emp-collapsed{
  min-height:60px!important;
  border-radius:17px!important;
  padding:14px 15px!important;
  gap:12px!important;
}
body[data-modal-type="shift"] .emp-collapsed-ic{
  width:38px!important;height:38px!important;border-radius:12px!important;
  background:#eef4ea!important;color:#427853!important;
}
body[data-modal-type="shift"] .emp-collapsed-copy strong{font-size:15px!important;font-weight:850!important;color:#203227!important}
body[data-modal-type="shift"] .emp-collapsed-copy small{font-size:12.5px!important;color:#80877e!important}
body[data-modal-type="shift"] .ww515-empty-state{
  background:#f5f5f1!important;border:1px solid rgba(46,73,50,.06)!important;
}

/* Visibility */
body[data-modal-type="shift"] .vis-toggle{gap:10px!important}
body[data-modal-type="shift"] .vis-opt{
  min-height:94px!important;border-radius:18px!important;border:1.5px solid rgba(56,86,61,.15)!important;
  background:#fff!important;box-shadow:none!important;padding:14px 14px!important;
}
body[data-modal-type="shift"] .vis-opt-copy strong{font-size:15px!important;font-weight:850!important}
body[data-modal-type="shift"] .vis-opt-copy small{display:block!important;font-size:12px!important;color:#7b8378!important;margin-top:3px!important}
body[data-modal-type="shift"] .vis-opt.active{box-shadow:0 0 0 4px rgba(65,130,84,.08)!important}

/* Repeat and colour cards */
body[data-modal-type="shift"] .ww527-repeat-grid{gap:10px!important}
body[data-modal-type="shift"] .ww527-colour-trigger.shift-colour-head{
  min-height:72px!important;border-radius:18px!important;background:#fbfcfa!important!important;
}
body[data-modal-type="shift"] .ww527-colour-current>.shift-colour-dot{width:30px!important;height:30px!important;border-radius:10px!important}
body[data-modal-type="shift"] .ww527-colour-current .shift-colour-current{font-size:13px!important;font-weight:900!important}
body[data-modal-type="shift"] .ww527-colour-action{font-size:13px!important;font-weight:850!important}
body[data-modal-type="shift"] .ww527-colour-action .colour-toggle-chev{width:30px!important;height:30px!important;background:#eaf1e7!important}
body[data-modal-type="shift"] .colour-preview-card{border-radius:16px!important}
body[data-modal-type="shift"] .colour-swatches{gap:8px!important}
body[data-modal-type="shift"] .colour-option{min-height:38px!important;border-radius:12px!important}

/* Notes */
body[data-modal-type="shift"] .ww527-notes-field span{
  display:block!important;margin-bottom:9px!important;font-size:12px!important;font-weight:800!important;color:#5f665d!important;
}
body[data-modal-type="shift"] .ww527-notes-field .notes-textarea{
  min-height:142px!important;max-height:none!important;resize:vertical!important;background:#fff!important;
}

/* Footer buttons */
body[data-modal-type="shift"] .sft-btn{
  height:56px!important;border-radius:18px!important;font-size:15px!important;font-weight:850!important;letter-spacing:-.01em!important;
}
body[data-modal-type="shift"] .sft-cancel{
  border:1.5px solid rgba(56,86,61,.16)!important;background:#fff!important;color:#38413b!important;box-shadow:none!important;
}
body[data-modal-type="shift"] .sft-save{
  background:linear-gradient(135deg,#4fa45e 0%,#14612e 100%)!important;
  box-shadow:0 12px 24px rgba(26,89,44,.20)!important;
}
body[data-modal-type="shift"] .sft-save svg{width:19px!important;height:19px!important}

@media (max-width:1023px){
  body[data-modal-type="shift"] .modal-overlay{padding:0!important;align-items:flex-end!important;background:rgba(19,32,22,.22)!important;touch-action:pan-y!important}
  body[data-modal-type="shift"] .shift-modal{max-height:calc(100dvh - 8px)!important;border-radius:28px 28px 0 0!important}
  body[data-modal-type="shift"] .shift-modal .modal-head{padding:18px 18px 12px!important}
  body[data-modal-type="shift"] .shift-modal .modal-head h2{font-size:23px!important}
  body[data-modal-type="shift"] .shift-modal .modal-body{padding:14px 14px 12px!important}
  body[data-modal-type="shift"] .shift-modal .modal-foot{padding:11px 14px calc(12px + var(--safe-b))!important;gap:10px!important}
  body[data-modal-type="shift"] .ww515-shift-builder{gap:14px!important}
  body[data-modal-type="shift"] .ww515-step,
  body[data-modal-type="shift"] .ww527-setting-card{padding:18px 16px!important;border-radius:24px!important}
  body[data-modal-type="shift"] .ww515-step-head,
  body[data-modal-type="shift"] .ww527-setting-head{margin-bottom:14px!important;padding-bottom:13px!important}
  body[data-modal-type="shift"] .ww515-step-head strong,
  body[data-modal-type="shift"] .ww527-setting-copy strong{font-size:16px!important}
  body[data-modal-type="shift"] .ww515-step-head small,
  body[data-modal-type="shift"] .ww527-setting-copy small{font-size:11px!important;line-height:1.35!important}
  body[data-modal-type="shift"] .ww515-step-number{width:44px!important;height:44px!important;font-size:18px!important}
  body[data-modal-type="shift"] .ww515-admin-badge{font-size:11px!important;padding:0 12px!important;min-height:32px!important}
  body[data-modal-type="shift"] .ww527-repeat-grid{grid-template-columns:1fr 1fr!important}
  body[data-modal-type="shift"] .ww527-colour-card .colour-swatches{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:430px){
  body[data-modal-type="shift"] .ww515-date-start-grid,
  body[data-modal-type="shift"] .ww527-repeat-grid{grid-template-columns:1fr 1fr!important;gap:10px!important}
  body[data-modal-type="shift"] .vis-toggle{grid-template-columns:1fr 1fr!important}
}
@media (max-width:390px){
  body[data-modal-type="shift"] .shift-modal .modal-head h2{font-size:21px!important}
  body[data-modal-type="shift"] .shift-modal .modal-x{width:50px!important;height:50px!important}
  body[data-modal-type="shift"] .ww515-step,
  body[data-modal-type="shift"] .ww527-setting-card{padding:16px 14px!important}
  body[data-modal-type="shift"] .input,
  body[data-modal-type="shift"] input.input,
  body[data-modal-type="shift"] select.input,
  body[data-modal-type="shift"] .client-search-box{height:52px!important;min-height:52px!important;font-size:14px!important}
  body[data-modal-type="shift"] .sft-btn{height:54px!important;font-size:14.2px!important}
}

/* ---- app-polish-v611.css ---- */
/* EarthRoster v611 — compact, aligned and more professional Add shift window.
   This intentionally tones down the oversized v610 treatment and restores a cleaner,
   tighter mobile editor while keeping v609 scroll behavior. */

/* Modal shell */
body[data-modal-type="shift"] .shift-modal{
  background:linear-gradient(180deg,#faf9f5 0%,#f4f2eb 100%)!important;
  border:1px solid rgba(42,68,46,.08)!important;
  box-shadow:0 20px 48px rgba(18,34,23,.14), inset 0 1px 0 rgba(255,255,255,.88)!important;
}
body[data-modal-type="shift"] .shift-modal .modal-head{
  background:rgba(250,249,245,.97)!important;
  border-bottom:1px solid rgba(42,68,46,.08)!important;
}
body[data-modal-type="shift"] .shift-modal .modal-head h2{
  color:#16241a!important;
  font-weight:760!important;
  letter-spacing:-.03em!important;
}
body[data-modal-type="shift"] .shift-modal .modal-x{
  width:48px!important;height:48px!important;border-radius:16px!important;
  background:linear-gradient(180deg,#f2ede3 0%,#ece5d8 100%)!important;
  border:1px solid rgba(64,82,61,.10)!important;
  color:#70786d!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.82)!important;
}
body[data-modal-type="shift"] .shift-modal .modal-body{
  background:linear-gradient(180deg,#f7f5ef 0%,#f3f1ea 100%)!important;
}
body[data-modal-type="shift"] .shift-modal .modal-foot{
  background:rgba(250,249,245,.97)!important;
  border-top:1px solid rgba(42,68,46,.08)!important;
  box-shadow:0 -10px 24px rgba(20,35,23,.06)!important;
}

/* Compact, aligned section cards */
body[data-modal-type="shift"] .ww515-step,
body[data-modal-type="shift"] .ww527-setting-card,
body[data-modal-type="shift"] .ww515-more-settings{
  background:#fffefb!important;
  border:1px solid rgba(41,69,46,.10)!important;
  border-radius:18px!important;
  box-shadow:0 6px 16px rgba(18,34,23,.045), inset 0 1px 0 rgba(255,255,255,.92)!important;
  padding:12px!important;
}
body[data-modal-type="shift"] .ww515-step-head,
body[data-modal-type="shift"] .ww527-setting-head,
body[data-modal-type="shift"] .ww515-more-settings>summary{
  margin:0 0 10px!important;
  padding-bottom:9px!important;
  border-bottom:1px solid rgba(41,69,46,.08)!important;
}
body[data-modal-type="shift"] .ww515-step-head{
  display:flex!important;align-items:flex-start!important;gap:10px!important;min-width:0!important;
}
body[data-modal-type="shift"] .ww515-step-head>span:nth-child(2),
body[data-modal-type="shift"] .ww527-setting-copy{
  display:flex!important;flex-direction:column!important;gap:2px!important;min-width:0!important;flex:1 1 auto!important;
}
body[data-modal-type="shift"] .ww515-step-number{
  width:30px!important;height:30px!important;flex:0 0 30px!important;
  border-radius:10px!important;
  background:linear-gradient(180deg,#eaf2e8 0%,#e4ede2 100%)!important;
  color:#2a6940!important;font-size:12px!important;font-weight:950!important;
}
body[data-modal-type="shift"] .ww515-step-head strong,
body[data-modal-type="shift"] .ww527-setting-copy strong,
body[data-modal-type="shift"] .ww515-summary-copy strong,
body[data-modal-type="shift"] .panel-title,
body[data-modal-type="shift"] .shift-section-label{
  font-size:15px!important;line-height:1.18!important;font-weight:850!important;color:#17271c!important;letter-spacing:-.02em!important;
}
body[data-modal-type="shift"] .ww515-step-head small,
body[data-modal-type="shift"] .ww527-setting-copy small,
body[data-modal-type="shift"] .ww515-summary-copy small,
body[data-modal-type="shift"] .vis-hint,
body[data-modal-type="shift"] .ww515-invoice-copy small,
body[data-modal-type="shift"] .ww515-invoice-help small,
body[data-modal-type="shift"] .ww515-finish-line small,
body[data-modal-type="shift"] .field label,
body[data-modal-type="shift"] .ww527-notes-field span{
  font-size:10.5px!important;line-height:1.3!important;color:#7b8378!important;font-weight:600!important;
}
body[data-modal-type="shift"] .ww515-admin-badge{
  margin-left:auto!important;align-self:flex-start!important;
  min-height:28px!important;padding:0 10px!important;border-radius:999px!important;
  background:#edf4ea!important;border:1px solid rgba(55,106,69,.10)!important;color:#376a45!important;
  font-size:10px!important;font-weight:900!important;letter-spacing:.05em!important;
}

/* Fields and inputs — smaller and cleaner */
body[data-modal-type="shift"] .client-search-box,
body[data-modal-type="shift"] .add-client-toggle,
body[data-modal-type="shift"] .input,
body[data-modal-type="shift"] input.input,
body[data-modal-type="shift"] select.input,
body[data-modal-type="shift"] .time-select,
body[data-modal-type="shift"] .emp-collapsed,
body[data-modal-type="shift"] .ww515-hours-editor,
body[data-modal-type="shift"] .ww527-colour-trigger.shift-colour-head{
  border:1.35px solid rgba(56,86,61,.16)!important;
  background:#fff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95)!important;
}
body[data-modal-type="shift"] .client-search-box,
body[data-modal-type="shift"] .input,
body[data-modal-type="shift"] input.input,
body[data-modal-type="shift"] select.input,
body[data-modal-type="shift"] .time-select{
  height:46px!important;min-height:46px!important;border-radius:13px!important;font-size:14.5px!important;font-weight:750!important;color:#1e3125!important;
}
body[data-modal-type="shift"] textarea.input,
body[data-modal-type="shift"] .ww527-notes-field .notes-textarea{
  border-radius:14px!important;font-size:14px!important;min-height:118px!important;background:#fff!important;
}
body[data-modal-type="shift"] .input::placeholder,
body[data-modal-type="shift"] .client-search-box input::placeholder,
body[data-modal-type="shift"] textarea.input::placeholder{color:#a0a79d!important}
body[data-modal-type="shift"] .input:focus,
body[data-modal-type="shift"] textarea.input:focus,
body[data-modal-type="shift"] .client-search-box:focus-within,
body[data-modal-type="shift"] .emp-collapsed:focus-within,
body[data-modal-type="shift"] .ww515-hours-editor:focus-within{
  border-color:#5a9470!important;box-shadow:0 0 0 3px rgba(65,130,84,.10)!important;outline:none!important;
}
body[data-modal-type="shift"] .field{margin:0!important;min-width:0!important}
body[data-modal-type="shift"] .ww515-date-start-grid,
body[data-modal-type="shift"] .ww527-repeat-grid,
body[data-modal-type="shift"] .shift-modal .row2{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:9px!important}
body[data-modal-type="shift"] .ww515-date-start-grid label{margin-bottom:5px!important;font-size:10.5px!important;font-weight:850!important;color:#546059!important}

/* Compact schedule / invoice blocks */
body[data-modal-type="shift"] .ww515-finish-line{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:2px 8px!important;
  margin-top:9px!important;padding:9px 10px!important;border-radius:12px!important;
  background:#f3f7f1!important;border:1px solid rgba(40,86,51,.10)!important;
}
body[data-modal-type="shift"] .ww515-finish-line>span{display:flex!important;align-items:center!important;gap:6px!important;font-size:10.5px!important;font-weight:850!important;color:#536259!important}
body[data-modal-type="shift"] .ww515-finish-line strong{font-size:13.5px!important;color:#225e37!important;font-weight:950!important}
body[data-modal-type="shift"] .ww515-finish-line small{grid-column:1/-1!important}
body[data-modal-type="shift"] .ww515-invoice-row{
  display:grid!important;grid-template-columns:34px minmax(0,1fr) auto!important;align-items:center!important;gap:9px!important;
  min-height:56px!important;padding:8px 10px!important;border-radius:14px!important;
  background:#f6f8f3!important;border:1.35px solid rgba(53,105,65,.18)!important;
}
body[data-modal-type="shift"] .ww515-invoice-icon{width:34px!important;height:34px!important;border-radius:10px!important;background:#e6efe4!important;color:#2d6d41!important}
body[data-modal-type="shift"] .ww515-invoice-copy strong{font-size:13.5px!important;font-weight:850!important;color:#1f3326!important}
body[data-modal-type="shift"] .ww515-hours-editor{min-width:90px!important;min-height:44px!important;border-radius:12px!important;padding:6px 9px!important}
body[data-modal-type="shift"] .ww515-hours-editor input{width:50px!important;font-size:18px!important;font-weight:950!important;color:#1a562f!important;text-align:right!important}
body[data-modal-type="shift"] .ww515-hours-editor span{font-size:9px!important;font-weight:800!important;color:#647068!important}
body[data-modal-type="shift"] .ww515-invoice-help{display:grid!important;grid-template-columns:auto 1fr!important;gap:1px 7px!important;margin:8px 0 10px!important;padding:0 2px!important}
body[data-modal-type="shift"] .ww515-invoice-help span{font-size:9px!important;text-transform:uppercase!important;letter-spacing:.06em!important;color:#7f8981!important;font-weight:850!important}
body[data-modal-type="shift"] .ww515-invoice-help strong{font-size:11.5px!important;color:#2b633d!important;font-weight:900!important}

/* Employee assignment compact */
body[data-modal-type="shift"] .ww515-hours-team-step .shift-section-label{display:flex!important;align-items:center!important;gap:7px!important;margin:0 0 6px!important;font-size:12.5px!important;font-weight:850!important}
body[data-modal-type="shift"] .emp-collapsed{min-height:46px!important;border-radius:12px!important;padding:8px 10px!important;gap:10px!important}
body[data-modal-type="shift"] .emp-collapsed-ic{width:32px!important;height:32px!important;border-radius:10px!important;background:#eef4ea!important;color:#427853!important}
body[data-modal-type="shift"] .emp-collapsed-copy strong{font-size:13px!important;font-weight:850!important}
body[data-modal-type="shift"] .emp-collapsed-copy small{font-size:10px!important;color:#7d867b!important}
body[data-modal-type="shift"] .ww515-empty-state,
body[data-modal-type="shift"] .ww515-empty-team{padding:10px!important;border-radius:12px!important;background:#f5f6f1!important;border:1px solid rgba(46,73,50,.05)!important}
body[data-modal-type="shift"] .ww515-empty-state strong,
body[data-modal-type="shift"] .ww515-empty-team strong{font-size:12px!important;color:#24352a!important}

/* Visibility cards */
body[data-modal-type="shift"] .vis-toggle{gap:9px!important}
body[data-modal-type="shift"] .vis-opt{min-height:80px!important;border-radius:15px!important;border:1.35px solid rgba(56,86,61,.15)!important;background:#fff!important;padding:12px!important;box-shadow:none!important}
body[data-modal-type="shift"] .vis-opt-copy strong{font-size:14px!important;font-weight:850!important}
body[data-modal-type="shift"] .vis-opt-copy small{display:block!important;font-size:10.5px!important;color:#7b8378!important;margin-top:2px!important;line-height:1.25!important}
body[data-modal-type="shift"] .vis-opt.active{box-shadow:0 0 0 3px rgba(65,130,84,.08)!important}

/* More settings / colour / notes */
body[data-modal-type="shift"] .ww515-more-settings{padding:0 12px!important;background:#fffefb!important}
body[data-modal-type="shift"] .ww515-more-settings>summary{grid-template-columns:30px minmax(0,1fr) auto 16px!important;min-height:46px!important;padding:9px 0!important}
body[data-modal-type="shift"] .ww515-more-body{display:grid!important;gap:8px!important;padding:0 0 10px!important;border-top:1px solid rgba(45,78,51,.09)!important}
body[data-modal-type="shift"] .ww515-more-body>.shift-panel,
body[data-modal-type="shift"] .ww515-more-body>.shift-section,
body[data-modal-type="shift"] .ww527-setting-card{margin:0!important;box-shadow:none!important;background:#fbfcf9!important;border-radius:14px!important}
body[data-modal-type="shift"] .ww527-colour-trigger.shift-colour-head{min-height:62px!important;border-radius:14px!important;background:#fff!important}
body[data-modal-type="shift"] .ww527-colour-current>.shift-colour-dot{width:26px!important;height:26px!important;border-radius:9px!important}
body[data-modal-type="shift"] .ww527-colour-action{font-size:13px!important;font-weight:850!important}
body[data-modal-type="shift"] .ww527-colour-action .colour-toggle-chev{width:28px!important;height:28px!important;background:#eaf1e7!important}
body[data-modal-type="shift"] .ww527-notes-field .notes-textarea{min-height:130px!important}

/* Footer buttons */
body[data-modal-type="shift"] .sft-btn{height:44px!important;border-radius:14px!important;font-size:14px!important;font-weight:850!important;letter-spacing:-.01em!important}
body[data-modal-type="shift"] .sft-cancel{border:1.35px solid rgba(56,86,61,.16)!important;background:#fff!important;color:#404942!important;box-shadow:none!important}
body[data-modal-type="shift"] .sft-save{background:linear-gradient(135deg,#49a05a 0%,#16622f 100%)!important;box-shadow:0 10px 22px rgba(26,89,44,.18)!important}

@media (max-width:1023px){
  body[data-modal-type="shift"] .modal-overlay{padding:0!important;align-items:flex-end!important;background:rgba(19,32,22,.20)!important;touch-action:pan-y!important}
  body[data-modal-type="shift"] .shift-modal{max-height:calc(100dvh - 8px)!important;border-radius:24px 24px 0 0!important}
  body[data-modal-type="shift"] .shift-modal .modal-head{padding:14px 14px 10px!important}
  body[data-modal-type="shift"] .shift-modal .modal-head h2{font-size:21px!important}
  body[data-modal-type="shift"] .shift-modal .modal-body{padding:8px 11px 8px!important}
  body[data-modal-type="shift"] .shift-modal .modal-foot{padding:8px 11px calc(8px + var(--safe-b))!important;gap:8px!important}
  body[data-modal-type="shift"] .shift-modal .modal-x{width:46px!important;height:46px!important}
  body[data-modal-type="shift"] .ww515-shift-builder{display:grid!important;gap:10px!important;padding:1px 0 6px!important}
}
@media (max-width:430px){
  body[data-modal-type="shift"] .vis-toggle{grid-template-columns:1fr 1fr!important}
}
@media (max-width:390px){
  body[data-modal-type="shift"] .shift-modal .modal-head h2{font-size:20px!important}
  body[data-modal-type="shift"] .ww515-step,
  body[data-modal-type="shift"] .ww527-setting-card,
  body[data-modal-type="shift"] .ww515-more-settings{padding:11px!important}
  body[data-modal-type="shift"] .client-search-box,
  body[data-modal-type="shift"] .input,
  body[data-modal-type="shift"] input.input,
  body[data-modal-type="shift"] select.input,
  body[data-modal-type="shift"] .time-select{height:44px!important;min-height:44px!important;font-size:14px!important}
  body[data-modal-type="shift"] .ww515-invoice-row{grid-template-columns:32px minmax(0,1fr) auto!important;gap:8px!important;padding:8px!important}
  body[data-modal-type="shift"] .ww515-hours-editor{min-width:84px!important}
  body[data-modal-type="shift"] .ww515-hours-editor input{width:46px!important;font-size:17px!important}
}

/* ---- app-polish-v612.css ---- */
/* EarthRoster v612 — compact one-page/1.5-page Add shift tuning */
body[data-modal-type="shift"] .shift-modal{
  background:linear-gradient(180deg,#f9f8f2 0%,#f1efe7 100%)!important;
}
body[data-modal-type="shift"] .shift-modal .modal-head{padding:12px 14px 10px!important}
body[data-modal-type="shift"] .shift-modal .modal-head h2{font-size:20px!important;letter-spacing:-.03em!important}
body[data-modal-type="shift"] .shift-modal .modal-x{width:42px!important;height:42px!important;border-radius:14px!important}
body[data-modal-type="shift"] .shift-modal .modal-body{padding:8px 10px 8px!important}
body[data-modal-type="shift"] .shift-modal .modal-foot{padding:7px 10px calc(7px + var(--safe-b))!important;gap:8px!important}
body[data-modal-type="shift"] .sft-btn{height:42px!important;border-radius:13px!important;font-size:13.5px!important}

body[data-modal-type="shift"] .ww515-shift-builder{gap:8px!important;padding:0 0 4px!important}
body[data-modal-type="shift"] .ww515-step,
body[data-modal-type="shift"] .ww527-setting-card,
body[data-modal-type="shift"] .ww515-more-settings{
  padding:10px!important;border-radius:16px!important;box-shadow:0 5px 14px rgba(18,34,23,.038), inset 0 1px 0 rgba(255,255,255,.92)!important;
}
body[data-modal-type="shift"] .ww515-step-head,
body[data-modal-type="shift"] .ww527-setting-head,
body[data-modal-type="shift"] .ww515-more-settings>summary{margin:0 0 8px!important;padding-bottom:7px!important}
body[data-modal-type="shift"] .ww515-step-number{width:27px!important;height:27px!important;flex-basis:27px!important;border-radius:9px!important;font-size:11px!important}
body[data-modal-type="shift"] .ww515-step-head strong,
body[data-modal-type="shift"] .ww527-setting-copy strong,
body[data-modal-type="shift"] .ww515-summary-copy strong,
body[data-modal-type="shift"] .panel-title,
body[data-modal-type="shift"] .shift-section-label{font-size:14px!important;line-height:1.15!important}
body[data-modal-type="shift"] .ww515-step-head small,
body[data-modal-type="shift"] .ww527-setting-copy small,
body[data-modal-type="shift"] .ww515-summary-copy small,
body[data-modal-type="shift"] .vis-hint,
body[data-modal-type="shift"] .ww515-invoice-copy small,
body[data-modal-type="shift"] .ww515-invoice-help small,
body[data-modal-type="shift"] .ww515-finish-line small,
body[data-modal-type="shift"] .field label,
body[data-modal-type="shift"] .ww527-notes-field span{font-size:10px!important;line-height:1.25!important}
body[data-modal-type="shift"] .ww515-admin-badge{min-height:25px!important;padding:0 8px!important;font-size:9px!important}

body[data-modal-type="shift"] .client-search-box,
body[data-modal-type="shift"] .input,
body[data-modal-type="shift"] input.input,
body[data-modal-type="shift"] select.input,
body[data-modal-type="shift"] .time-select{height:42px!important;min-height:42px!important;border-radius:12px!important;font-size:14px!important}
body[data-modal-type="shift"] .add-client-toggle{min-height:36px!important;height:36px!important;border-radius:11px!important;font-size:12.5px!important}
body[data-modal-type="shift"] textarea.input,
body[data-modal-type="shift"] .ww527-notes-field .notes-textarea{min-height:104px!important;font-size:13.5px!important;border-radius:13px!important}
body[data-modal-type="shift"] .ww515-date-start-grid,
body[data-modal-type="shift"] .ww527-repeat-grid,
body[data-modal-type="shift"] .shift-modal .row2{gap:8px!important}
body[data-modal-type="shift"] .ww515-date-start-grid label{margin-bottom:4px!important;font-size:10px!important}

body[data-modal-type="shift"] .ww515-finish-line{margin-top:8px!important;padding:8px 9px!important;border-radius:11px!important}
body[data-modal-type="shift"] .ww515-finish-line>span{font-size:10px!important}
body[data-modal-type="shift"] .ww515-finish-line strong{font-size:13px!important}

/* Make publish/unpublished skinny and professional */
body[data-modal-type="shift"] .viswrap,
body[data-modal-type="shift"] .ww527-visibility-card{
  padding:10px!important;border-radius:14px!important;background:#fbfcf9!important;border:1px solid rgba(39,76,47,.09)!important;
}
body[data-modal-type="shift"] .vishead,
body[data-modal-type="shift"] .ww527-visibility-head{margin-bottom:7px!important;align-items:center!important}
body[data-modal-type="shift"] .vishead b,
body[data-modal-type="shift"] .ww527-visibility-head strong{font-size:13.5px!important;font-weight:850!important}
body[data-modal-type="shift"] .state,
body[data-modal-type="shift"] .ww527-visibility-state{font-size:11px!important;font-weight:900!important}
body[data-modal-type="shift"] .visgrid,
body[data-modal-type="shift"] .vis-toggle{gap:7px!important}
body[data-modal-type="shift"] .visbtn,
body[data-modal-type="shift"] .vis-opt{
  min-height:54px!important;height:54px!important;border-radius:13px!important;padding:8px 11px!important;justify-content:center!important;
}
body[data-modal-type="shift"] .visbtn b,
body[data-modal-type="shift"] .vis-opt-copy strong{font-size:13px!important;font-weight:850!important;line-height:1.05!important}
body[data-modal-type="shift"] .visbtn small,
body[data-modal-type="shift"] .vis-opt-copy small{margin-top:2px!important;font-size:9.5px!important;line-height:1.15!important}
body[data-modal-type="shift"] .vis-opt-icon{width:18px!important;height:18px!important}
body[data-modal-type="shift"] .vis-check,
body[data-modal-type="shift"] .vis-opt-check{width:18px!important;height:18px!important}
body[data-modal-type="shift"] .hint,
body[data-modal-type="shift"] .vis-hint{margin-top:6px!important;font-size:9.5px!important}

body[data-modal-type="shift"] .ww515-invoice-row{min-height:50px!important;padding:7px 9px!important;border-radius:13px!important;grid-template-columns:32px minmax(0,1fr) auto!important}
body[data-modal-type="shift"] .ww515-invoice-icon{width:32px!important;height:32px!important;border-radius:9px!important}
body[data-modal-type="shift"] .ww515-invoice-copy strong{font-size:12.8px!important}
body[data-modal-type="shift"] .ww515-hours-editor{min-width:84px!important;min-height:40px!important;padding:5px 8px!important;border-radius:11px!important}
body[data-modal-type="shift"] .ww515-hours-editor input{width:46px!important;font-size:17px!important}
body[data-modal-type="shift"] .ww515-invoice-help{margin:6px 0 8px!important}
body[data-modal-type="shift"] .ww515-invoice-help strong{font-size:11px!important}
body[data-modal-type="shift"] .ww515-invoice-help span{font-size:8.8px!important}

body[data-modal-type="shift"] .emp-collapsed{min-height:42px!important;padding:7px 9px!important;border-radius:11px!important}
body[data-modal-type="shift"] .emp-collapsed-ic{width:29px!important;height:29px!important;border-radius:9px!important}
body[data-modal-type="shift"] .emp-collapsed-copy strong{font-size:12.5px!important}
body[data-modal-type="shift"] .emp-collapsed-copy small{font-size:9.5px!important}
body[data-modal-type="shift"] .ww515-empty-state,
body[data-modal-type="shift"] .ww515-empty-team{padding:9px!important;border-radius:11px!important;margin-top:8px!important}
body[data-modal-type="shift"] .ww515-empty-state strong,
body[data-modal-type="shift"] .ww515-empty-team strong{font-size:11.5px!important}
body[data-modal-type="shift"] .ww515-empty-state small,
body[data-modal-type="shift"] .ww515-empty-team small{font-size:9.5px!important}

body[data-modal-type="shift"] .ww527-colour-trigger.shift-colour-head{min-height:54px!important;border-radius:13px!important;padding:0 10px!important}
body[data-modal-type="shift"] .ww527-colour-current>.shift-colour-dot{width:24px!important;height:24px!important;border-radius:8px!important}
body[data-modal-type="shift"] .ww527-colour-action{font-size:12.5px!important}
body[data-modal-type="shift"] .ww527-colour-action .colour-toggle-chev{width:24px!important;height:24px!important}
body[data-modal-type="shift"] .ww527-notes-field .notes-textarea{min-height:112px!important}

@media (max-width:390px){
  body[data-modal-type="shift"] .visbtn,
  body[data-modal-type="shift"] .vis-opt{min-height:50px!important;height:50px!important;padding:7px 9px!important}
  body[data-modal-type="shift"] .visbtn b,
  body[data-modal-type="shift"] .vis-opt-copy strong{font-size:12px!important}
  body[data-modal-type="shift"] .visbtn small,
  body[data-modal-type="shift"] .vis-opt-copy small{font-size:9px!important}
}

/* ---- app-polish-v613.css ---- */
/* EarthRoster v613 — remove dead space in New roster job modal. */
@media (max-width:1023px){
  body[data-modal-type="shift"] .shift-modal{
    height:auto!important;
    min-height:0!important;
    max-height:calc(100dvh - 8px)!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-body{
    flex:1 1 auto!important;
    min-height:0!important;
    height:auto!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body[data-modal-type="shift"] .ww515-shift-builder{
    min-height:0!important;
    height:auto!important;
    align-content:start!important;
    justify-content:start!important;
  }
  body[data-modal-type="shift"] .ww515-shift-builder > *{
    align-self:start!important;
    margin-top:0!important;
    margin-bottom:0!important;
  }
  body[data-modal-type="shift"] .ww515-hours-team-step,
  body[data-modal-type="shift"] .ww527-repeat-card,
  body[data-modal-type="shift"] .ww527-colour-card,
  body[data-modal-type="shift"] .ww527-notes-card{
    position:relative!important;
    inset:auto!important;
  }
}

/* ---- app-polish-v614.css ---- */
/* EarthRoster v614 — ultra-compact Add shift editor.
   Goal: substantially reduce vertical length while keeping the form readable,
   aligned and professional. Preserves v609 scrolling + v613 no-dead-space fix. */
@media (max-width:1023px){
  /* Shell */
  body[data-modal-type="shift"] .shift-modal{
    max-height:calc(100dvh - 4px)!important;
    border-radius:20px 20px 0 0!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-head{
    min-height:0!important;
    padding:9px 12px 7px!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-head h2{
    font-size:18.5px!important;
    line-height:1.05!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-x{
    width:36px!important;
    height:36px!important;
    border-radius:12px!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-x svg{
    width:18px!important;height:18px!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-body{
    padding:6px 8px 6px!important;
    scroll-padding-bottom:62px!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-foot{
    min-height:0!important;
    padding:6px 8px calc(6px + var(--safe-b))!important;
    gap:7px!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-foot .sft-btn,
  body[data-modal-type="shift"] .sft-btn{
    height:38px!important;
    min-height:38px!important;
    border-radius:11px!important;
    font-size:12.5px!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-foot .sft-cancel{flex:0 0 92px!important}

  /* Main spacing */
  body[data-modal-type="shift"] .ww515-shift-builder{
    gap:6px!important;
    padding:0 0 2px!important;
  }
  body[data-modal-type="shift"] .ww515-step,
  body[data-modal-type="shift"] .ww527-setting-card,
  body[data-modal-type="shift"] .ww515-more-settings{
    padding:8px!important;
    border-radius:14px!important;
    box-shadow:0 3px 10px rgba(18,34,23,.035),inset 0 1px 0 rgba(255,255,255,.92)!important;
  }
  body[data-modal-type="shift"] .ww515-step-head,
  body[data-modal-type="shift"] .ww527-setting-head,
  body[data-modal-type="shift"] .ww515-more-settings>summary{
    gap:7px!important;
    margin:0 0 6px!important;
    padding-bottom:5px!important;
  }
  body[data-modal-type="shift"] .ww515-step-number{
    width:23px!important;height:23px!important;flex:0 0 23px!important;
    border-radius:7px!important;font-size:9.5px!important;
  }
  body[data-modal-type="shift"] .ww515-step-head strong,
  body[data-modal-type="shift"] .ww527-setting-copy strong,
  body[data-modal-type="shift"] .ww515-summary-copy strong,
  body[data-modal-type="shift"] .panel-title,
  body[data-modal-type="shift"] .shift-section-label{
    font-size:12.8px!important;
    line-height:1.12!important;
  }
  body[data-modal-type="shift"] .ww515-step-head small,
  body[data-modal-type="shift"] .ww527-setting-copy small,
  body[data-modal-type="shift"] .ww515-summary-copy small{
    font-size:8.8px!important;
    line-height:1.15!important;
  }
  body[data-modal-type="shift"] .ww515-admin-badge{
    min-height:21px!important;
    padding:0 7px!important;
    font-size:7.8px!important;
  }

  /* Client */
  body[data-modal-type="shift"] .client-search-box,
  body[data-modal-type="shift"] .input,
  body[data-modal-type="shift"] input.input,
  body[data-modal-type="shift"] select.input,
  body[data-modal-type="shift"] .time-select{
    height:36px!important;
    min-height:36px!important;
    border-radius:10px!important;
    font-size:12.5px!important;
  }
  body[data-modal-type="shift"] .client-search-box{padding:0 10px!important}
  body[data-modal-type="shift"] .client-search-box .csb-ic svg{width:16px!important;height:16px!important}
  body[data-modal-type="shift"] .client-search-box input{font-size:12.5px!important}
  body[data-modal-type="shift"] .ww515-client-step .add-client-block{margin-top:5px!important}
  body[data-modal-type="shift"] .add-client-toggle,
  body[data-modal-type="shift"] .ww515-client-step .add-client-toggle{
    height:30px!important;
    min-height:30px!important;
    border-radius:9px!important;
    padding:0 9px!important;
    font-size:11px!important;
  }

  /* Schedule */
  body[data-modal-type="shift"] .ww515-date-start-grid,
  body[data-modal-type="shift"] .ww527-repeat-grid,
  body[data-modal-type="shift"] .shift-modal .row2{gap:6px!important}
  body[data-modal-type="shift"] .ww515-date-start-grid label,
  body[data-modal-type="shift"] .field label,
  body[data-modal-type="shift"] .ww527-field>span{
    font-size:8.8px!important;
    margin-bottom:3px!important;
  }
  body[data-modal-type="shift"] .ww515-finish-line{
    min-height:31px!important;
    margin-top:5px!important;
    padding:5px 8px!important;
    border-radius:9px!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:0 7px!important;
  }
  body[data-modal-type="shift"] .ww515-finish-line>span{
    font-size:9px!important;
    gap:4px!important;
  }
  body[data-modal-type="shift"] .ww515-finish-line>span svg{width:11px!important;height:11px!important}
  body[data-modal-type="shift"] .ww515-finish-line strong{font-size:11.5px!important}
  /* Redundant helper copy costs height; the label + finish time already communicates it. */
  body[data-modal-type="shift"] .ww515-finish-line small{display:none!important}

  /* Visibility — deliberately a skinny segmented control, not two large cards. */
  body[data-modal-type="shift"] .visibility-section,
  body[data-modal-type="shift"] .ww517-visibility{
    margin-top:5px!important;
    padding:6px!important;
    border-radius:11px!important;
    background:#f8faf6!important;
    border:1px solid rgba(39,76,47,.09)!important;
    box-shadow:none!important;
  }
  body[data-modal-type="shift"] .visibility-section .panel-title,
  body[data-modal-type="shift"] .visibility-title{
    min-height:20px!important;
    margin:0 0 4px!important;
    padding:0!important;
    border:0!important;
    align-items:center!important;
  }
  body[data-modal-type="shift"] .visibility-title>span:first-child{
    font-size:10.5px!important;
    gap:5px!important;
  }
  body[data-modal-type="shift"] .visibility-title>span:first-child svg{width:13px!important;height:13px!important}
  body[data-modal-type="shift"] .vis-state-pill{display:none!important}
  body[data-modal-type="shift"] .vis-toggle{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:4px!important;
    margin:0!important;
    padding:3px!important;
    border-radius:10px!important;
    background:#edf1eb!important;
    border:1px solid rgba(52,79,56,.08)!important;
  }
  body[data-modal-type="shift"] .vis-opt{
    position:relative!important;
    min-height:34px!important;
    height:34px!important;
    padding:0 9px!important;
    border:0!important;
    border-radius:8px!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body[data-modal-type="shift"] .vis-opt-icon{
    width:14px!important;height:14px!important;flex:0 0 14px!important;
    display:grid!important;place-items:center!important;
  }
  body[data-modal-type="shift"] .vis-opt-icon svg{width:13px!important;height:13px!important}
  body[data-modal-type="shift"] .vis-opt-copy{display:block!important}
  body[data-modal-type="shift"] .vis-opt-copy strong{
    font-size:10.5px!important;
    line-height:1!important;
    font-weight:850!important;
  }
  body[data-modal-type="shift"] .vis-opt-copy small{display:none!important}
  body[data-modal-type="shift"] .vis-opt-check{
    position:static!important;
    transform:none!important;
    width:14px!important;height:14px!important;
    flex:0 0 14px!important;
    font-size:8px!important;
    opacity:0!important;
  }
  body[data-modal-type="shift"] .vis-opt.active .vis-opt-check{
    opacity:1!important;transform:none!important;
  }
  body[data-modal-type="shift"] .vis-opt.vis-published.active{
    background:linear-gradient(135deg,#419852,#23763c)!important;
    color:#fff!important;
    box-shadow:0 2px 6px rgba(31,103,51,.13)!important;
  }
  body[data-modal-type="shift"] .vis-opt.vis-published.active .vis-opt-icon,
  body[data-modal-type="shift"] .vis-opt.vis-published.active .vis-opt-check{
    background:transparent!important;color:#fff!important;
  }
  body[data-modal-type="shift"] .vis-opt.vis-draft.active{
    background:#fff4d6!important;
    color:#79591c!important;
    box-shadow:0 2px 6px rgba(122,90,25,.08)!important;
  }
  body[data-modal-type="shift"] .vis-opt.vis-draft.active .vis-opt-icon,
  body[data-modal-type="shift"] .vis-opt.vis-draft.active .vis-opt-check{
    background:transparent!important;color:#79591c!important;
  }
  body[data-modal-type="shift"] .vis-hint{
    margin:4px 2px 0!important;
    font-size:8.2px!important;
    line-height:1.1!important;
  }

  /* Hours + team */
  body[data-modal-type="shift"] .ww515-invoice-row{
    min-height:43px!important;
    padding:5px 7px!important;
    border-radius:10px!important;
    grid-template-columns:27px minmax(0,1fr) auto!important;
    gap:6px!important;
  }
  body[data-modal-type="shift"] .ww515-invoice-icon{
    width:27px!important;height:27px!important;border-radius:8px!important;
  }
  body[data-modal-type="shift"] .ww515-invoice-icon svg{width:14px!important;height:14px!important}
  body[data-modal-type="shift"] .ww515-invoice-copy strong{font-size:11.3px!important}
  body[data-modal-type="shift"] .ww515-invoice-copy small{font-size:8.3px!important}
  body[data-modal-type="shift"] .ww515-hours-editor{
    min-width:75px!important;
    min-height:32px!important;
    padding:3px 6px!important;
    border-radius:9px!important;
  }
  body[data-modal-type="shift"] .ww515-hours-editor input{
    width:42px!important;
    font-size:15px!important;
  }
  body[data-modal-type="shift"] .ww515-hours-editor span{font-size:7.8px!important}
  body[data-modal-type="shift"] .ww515-invoice-help{
    grid-template-columns:auto auto 1fr!important;
    align-items:baseline!important;
    gap:0 5px!important;
    margin:4px 0 6px!important;
  }
  body[data-modal-type="shift"] .ww515-invoice-help span{font-size:7.8px!important}
  body[data-modal-type="shift"] .ww515-invoice-help strong{font-size:9.8px!important}
  body[data-modal-type="shift"] .ww515-invoice-help small{display:none!important}
  body[data-modal-type="shift"] .ww515-hours-team-step .shift-section-label{
    margin:0 0 4px!important;
    font-size:10.8px!important;
    gap:5px!important;
  }
  body[data-modal-type="shift"] .ww515-hours-team-step .shift-section-label svg{width:13px!important;height:13px!important}
  body[data-modal-type="shift"] .emp-collapsed{
    min-height:35px!important;
    height:35px!important;
    padding:4px 7px!important;
    border-radius:9px!important;
    gap:7px!important;
  }
  body[data-modal-type="shift"] .emp-collapsed-ic{
    width:25px!important;height:25px!important;border-radius:7px!important;
  }
  body[data-modal-type="shift"] .emp-collapsed-ic svg{width:13px!important;height:13px!important}
  body[data-modal-type="shift"] .emp-collapsed-copy{
    flex-direction:row!important;
    align-items:baseline!important;
    gap:6px!important;
  }
  body[data-modal-type="shift"] .emp-collapsed-copy strong{font-size:10.8px!important;white-space:nowrap!important}
  body[data-modal-type="shift"] .emp-collapsed-copy small{
    font-size:8.4px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body[data-modal-type="shift"] .emp-collapsed-arrow{font-size:18px!important}
  /* This message is redundant until staff are chosen and adds an entire row. */
  body[data-modal-type="shift"] .ww515-empty-team{display:none!important}

  /* Selected staff summary stays compact */
  body[data-modal-type="shift"] .ww517-single-staff,
  body[data-modal-type="shift"] .ww515-staff-details{margin-top:5px!important}
  body[data-modal-type="shift"] .ww517-single-head,
  body[data-modal-type="shift"] .ww515-staff-details>summary{
    min-height:35px!important;
    padding:4px 0!important;
  }

  /* Recurring + colour */
  body[data-modal-type="shift"] .ww527-setting-head{margin-bottom:5px!important;padding-bottom:4px!important}
  body[data-modal-type="shift"] .ww527-field .input{
    height:34px!important;min-height:34px!important;border-radius:9px!important;font-size:11.5px!important;
  }
  body[data-modal-type="shift"] .ww527-colour-trigger.shift-colour-head{
    min-height:40px!important;
    height:40px!important;
    padding:0 7px!important;
    border-radius:10px!important;
  }
  body[data-modal-type="shift"] .ww527-colour-current{gap:6px!important}
  body[data-modal-type="shift"] .ww527-colour-current>.shift-colour-dot{
    width:20px!important;height:20px!important;flex:0 0 20px!important;border-radius:6px!important;
  }
  body[data-modal-type="shift"] .ww527-colour-current b{font-size:7px!important}
  body[data-modal-type="shift"] .ww527-colour-current .shift-colour-current{font-size:10.5px!important}
  body[data-modal-type="shift"] .ww527-colour-action{font-size:10px!important;gap:4px!important}
  body[data-modal-type="shift"] .ww527-colour-action .colour-toggle-chev{width:20px!important;height:20px!important}

  /* Notes */
  body[data-modal-type="shift"] .ww527-notes-field>span{font-size:8.8px!important;margin-bottom:4px!important}
  body[data-modal-type="shift"] .ww527-notes-field .notes-textarea{
    min-height:70px!important;
    height:70px!important;
    max-height:110px!important;
    padding:8px 9px!important;
    border-radius:10px!important;
    font-size:11.5px!important;
    line-height:1.25!important;
    resize:vertical!important;
  }
}

@media (max-width:390px){
  body[data-modal-type="shift"] .shift-modal .modal-head h2{font-size:18px!important}
  body[data-modal-type="shift"] .ww515-step-head small,
  body[data-modal-type="shift"] .ww527-setting-copy small{font-size:8.3px!important}
  body[data-modal-type="shift"] .vis-opt-copy strong{font-size:10px!important}
  body[data-modal-type="shift"] .emp-collapsed-copy small{max-width:145px!important}
}

/* v614 final density lock: higher specificity than legacy runtime helpers. */
@media (max-width:1023px){
  body[data-modal-type="shift"] .shift-modal .ww515-hours-team-step > .ww515-empty-team{
    display:none!important;
  }
  /* Secondary setting cards do not need explanatory subtitles on a mobile form;
     labels and values remain explicit. This saves height without removing controls. */
  body[data-modal-type="shift"] .shift-modal .ww527-repeat-card .ww527-setting-copy small,
  body[data-modal-type="shift"] .shift-modal .ww527-colour-card .ww527-setting-copy small,
  body[data-modal-type="shift"] .shift-modal .ww527-notes-card .ww527-setting-copy small{
    display:none!important;
  }
  body[data-modal-type="shift"] .shift-modal .ww527-repeat-card .ww527-setting-head,
  body[data-modal-type="shift"] .shift-modal .ww527-colour-card .ww527-setting-head,
  body[data-modal-type="shift"] .shift-modal .ww527-notes-card .ww527-setting-head{
    min-height:18px!important;
    margin-bottom:4px!important;
    padding-bottom:4px!important;
  }
  body[data-modal-type="shift"] .shift-modal .ww527-repeat-card .ww527-setting-copy strong,
  body[data-modal-type="shift"] .shift-modal .ww527-colour-card .ww527-setting-copy strong,
  body[data-modal-type="shift"] .shift-modal .ww527-notes-card .ww527-setting-copy strong{
    font-size:11.8px!important;
  }
}

/* ---- app-polish-v616.css ---- */
/* EarthRoster v616 — roster-card readability repair.
   Scope: mobile roster cards only.
   - Awaiting/Accepted/Declined use the same name/status geometry.
   - No staff/status wording is vertically clipped.
   - 1h 30m / 2h 30m durations stay on one clean line instead of stacking.
*/
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    grid-template-columns:58px minmax(0,1fr) 22px!important;
    grid-template-rows:49px auto!important;
    column-gap:8px!important;
    min-height:91px!important;
    max-height:none!important;
    overflow:visible!important;
    padding-top:6px!important;
    padding-bottom:6px!important;
  }

  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours,
  body .home-roster-list .ww585-card .ww583-hours{
    width:56px!important;
    height:43px!important;
    border-radius:10px!important;
    padding:0 4px!important;
    overflow:hidden!important;
    align-self:start!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours strong,
  body .home-roster-list .ww585-card .ww583-hours strong{
    font-size:15px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours.is-multi-duration,
  body .home-roster-list .ww585-card .ww583-hours.is-multi-duration{
    gap:2px!important;
    padding-top:4px!important;
    padding-bottom:3px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours.is-multi-duration strong,
  body .home-roster-list .ww585-card .ww583-hours.is-multi-duration strong{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:center!important;
    gap:3px!important;
    width:100%!important;
    font-size:12.8px!important;
    line-height:1!important;
    letter-spacing:-.025em!important;
    white-space:nowrap!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours.is-multi-duration strong i,
  body .home-roster-list .ww585-card .ww583-hours.is-multi-duration strong i{
    display:inline!important;
    margin:0!important;
    padding:0!important;
    line-height:1!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours > span,
  body .home-roster-list .ww585-card .ww583-hours > span{
    margin-top:2px!important;
    font-size:6px!important;
    line-height:1!important;
  }

  body.ww-roster-active .roster-mobile .ww585-card .ww583-copy,
  body .home-roster-list .ww585-card .ww583-copy{
    min-width:0!important;
    overflow:visible!important;
    align-self:start!important;
    padding-top:1px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-copy h3,
  body .home-roster-list .ww585-card .ww583-copy h3{
    font-size:14.8px!important;
    line-height:1.05!important;
    min-height:16px!important;
    max-height:none!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:normal!important;
    word-break:normal!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-time,
  body .home-roster-list .ww585-card .ww583-time{
    margin-top:3px!important;
    line-height:12px!important;
    min-height:12px!important;
    overflow:visible!important;
    white-space:nowrap!important;
  }

  body.ww-roster-active .roster-mobile .ww585-card .ww585-staff-band,
  body .home-roster-list .ww585-card .ww585-staff-band{
    grid-row:2!important;
    grid-column:1 / -1!important;
    display:grid!important;
    grid-template-columns:43px minmax(0,1fr)!important;
    align-items:start!important;
    min-height:34px!important;
    height:auto!important;
    padding-top:3px!important;
    padding-bottom:1px!important;
    overflow:visible!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-staff-label,
  body .home-roster-list .ww585-card .ww583-staff-label{
    padding:7px 0 0 2px!important;
    line-height:10px!important;
    min-height:10px!important;
    align-self:start!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-grid,
  body .home-roster-list .ww585-admin-card .ww585-staff-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    align-items:start!important;
    margin:2px 0 0!important;
    overflow:visible!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-staff-grid,
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]) .ww585-staff-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person,
  body .home-roster-list .ww585-admin-card .ww585-person{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:flex-start!important;
    gap:3px!important;
    min-width:0!important;
    min-height:33px!important;
    height:auto!important;
    padding:2px 6px 3px!important;
    overflow:visible!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww583-staff-name,
  body .home-roster-list .ww585-admin-card .ww583-staff-name{
    display:block!important;
    width:100%!important;
    min-height:12px!important;
    line-height:12px!important;
    font-size:9.4px!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state,
  body .home-roster-list .ww585-admin-card .ww585-person-state{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    align-self:flex-start!important;
    width:auto!important;
    height:17px!important;
    min-height:17px!important;
    line-height:17px!important;
    margin:0!important;
    padding:0!important;
    gap:4px!important;
    font-size:10.5px!important;
    font-weight:900!important;
    white-space:nowrap!important;
    overflow:visible!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state svg,
  body .home-roster-list .ww585-admin-card .ww585-person-state svg{
    width:10px!important;
    height:10px!important;
    flex:0 0 10px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state small,
  body .home-roster-list .ww585-admin-card .ww585-person-state small{
    line-height:17px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]),
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="1"]),
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="2"]),
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="2"]){
    min-height:91px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]),
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]),
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]),
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]){
    min-height:126px!important;
  }
}

@media (max-width:390px){
  body.ww-roster-active .roster-mobile .ww585-card,
  body .home-roster-list .ww585-card{
    grid-template-columns:54px minmax(0,1fr) 20px!important;
    column-gap:7px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours,
  body .home-roster-list .ww585-card .ww583-hours{width:52px!important;}
  body.ww-roster-active .roster-mobile .ww585-card .ww583-hours.is-multi-duration strong,
  body .home-roster-list .ww585-card .ww583-hours.is-multi-duration strong{font-size:11.8px!important;gap:2px!important;}
  body.ww-roster-active .roster-mobile .ww585-card .ww583-copy h3,
  body .home-roster-list .ww585-card .ww583-copy h3{font-size:14px!important;}
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww583-staff-name,
  body .home-roster-list .ww585-admin-card .ww583-staff-name{font-size:9px!important;}
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state,
  body .home-roster-list .ww585-admin-card .ww585-person-state{font-size:10px!important;}
}

/* ---- app-polish-v617.css ---- */
/* EarthRoster v617 — Missed timesheet request: one-page professional mobile layout
   Scope: missed timesheet entry only. No roster, messaging, notification or other UI changes. */

@media (max-width: 430px){
  body[data-modal-type="missed-record"] .timesheet-modal{
    width:100%!important;
    height:100dvh!important;
    max-height:100dvh!important;
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    border-radius:0!important;
    overflow:hidden!important;
  }

  body[data-modal-type="missed-record"] .timesheet-modal .modal-head{
    min-height:calc(60px + env(safe-area-inset-top,0px))!important;
    padding:calc(8px + env(safe-area-inset-top,0px)) 52px 7px 13px!important;
    box-shadow:0 4px 14px rgba(15,48,27,.12)!important;
  }
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2{
    font-size:17.5px!important;
    line-height:1.02!important;
    letter-spacing:-.018em!important;
  }
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2::after{
    margin-top:3px!important;
    font-size:9.5px!important;
    line-height:1.15!important;
    font-weight:650!important;
  }
  body[data-modal-type="missed-record"] .timesheet-modal .modal-x{
    top:calc(8px + env(safe-area-inset-top,0px))!important;
    right:11px!important;
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    border-radius:12px!important;
    font-size:23px!important;
  }

  body[data-modal-type="missed-record"] .timesheet-modal .modal-body{
    min-height:0!important;
    padding:6px 9px 5px!important;
    overflow:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }

  body[data-modal-type="missed-record"] .mr2{
    gap:6px!important;
  }

  /* Compact professional status strip */
  body[data-modal-type="missed-record"] .mr2-banner{
    min-height:46px!important;
    padding:7px 9px!important;
    grid-template-columns:32px minmax(0,1fr) auto!important;
    gap:8px!important;
    border-radius:14px!important;
    box-shadow:0 5px 14px rgba(22,66,38,.09)!important;
  }
  body[data-modal-type="missed-record"] .mr2-banner-icon{
    width:32px!important;
    height:32px!important;
    border-radius:10px!important;
  }
  body[data-modal-type="missed-record"] .mr2-banner-icon svg{
    width:17px!important;
    height:17px!important;
  }
  body[data-modal-type="missed-record"] .mr2-banner-tx{
    gap:1px!important;
    overflow:hidden!important;
  }
  body[data-modal-type="missed-record"] .mr2-banner-tx strong{
    font-size:12.8px!important;
    line-height:1.08!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body[data-modal-type="missed-record"] .mr2-banner-tx span{
    font-size:8.7px!important;
    line-height:1.12!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body[data-modal-type="missed-record"] .mr2-pill{
    padding:4px 7px!important;
    font-size:8.8px!important;
    line-height:1!important;
    align-self:center!important;
  }

  /* Clean section cards */
  body[data-modal-type="missed-record"] .mr2-section{
    gap:6px!important;
    padding:8px!important;
    border-radius:14px!important;
    box-shadow:0 3px 10px rgba(34,53,36,.035)!important;
  }
  body[data-modal-type="missed-record"] .mr2-section-head{
    gap:1px!important;
    padding:0!important;
  }
  body[data-modal-type="missed-record"] .mr2-section-head strong{
    font-size:12.5px!important;
    line-height:1.02!important;
    letter-spacing:-.01em!important;
  }
  body[data-modal-type="missed-record"] .mr2-section-head span{
    font-size:8.7px!important;
    line-height:1.12!important;
  }
  body[data-modal-type="missed-record"] .mr2-field{
    gap:3px!important;
    min-width:0!important;
  }
  body[data-modal-type="missed-record"] .mr2-field label{
    font-size:9.2px!important;
    line-height:1.05!important;
    letter-spacing:.01em!important;
    white-space:nowrap!important;
  }
  body[data-modal-type="missed-record"] .mr2-field label em{
    font-size:8.6px!important;
  }
  body[data-modal-type="missed-record"] .mr2 .input,
  body[data-modal-type="missed-record"] .ts-client-search{
    width:100%!important;
    min-width:0!important;
    height:38px!important;
    min-height:38px!important;
    border-radius:11px!important;
    font-size:12.6px!important;
    line-height:1.1!important;
    padding-left:10px!important;
    padding-right:10px!important;
    box-sizing:border-box!important;
  }
  body[data-modal-type="missed-record"] .mr2 select.input{
    line-height:36px!important;
    padding-right:29px!important;
    background-position:right 9px center!important;
    background-size:13px!important;
    text-overflow:ellipsis!important;
  }
  body[data-modal-type="missed-record"] .mr2 input[type="date"].input{
    -webkit-appearance:none!important;
    appearance:none!important;
    line-height:38px!important;
  }

  /* Entry details becomes a 2 × 2 information grid:
     Date + rostered shift, then kilometres + travel time. */
  body[data-modal-type="missed-record"] .mr2 > .mr2-section:nth-of-type(1){
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    column-gap:7px!important;
    row-gap:6px!important;
  }
  body[data-modal-type="missed-record"] .mr2 > .mr2-section:nth-of-type(1) > .mr2-section-head{
    grid-column:1 / -1!important;
    grid-row:1!important;
  }
  body[data-modal-type="missed-record"] .mr2 > .mr2-section:nth-of-type(1) > .mr2-field:nth-child(2){
    grid-column:1!important;
    grid-row:2!important;
  }
  body[data-modal-type="missed-record"] .mr2 > .mr2-section:nth-of-type(1) > .mr2-field:nth-child(4){
    grid-column:2!important;
    grid-row:2!important;
  }
  body[data-modal-type="missed-record"] .mr2 > .mr2-section:nth-of-type(1) > .ww-travel-pair{
    display:contents!important;
  }
  body[data-modal-type="missed-record"] .mr2 > .mr2-section:nth-of-type(1) > .ww-travel-pair > .mr2-field:first-child{
    grid-column:1!important;
    grid-row:3!important;
  }
  body[data-modal-type="missed-record"] .mr2 > .mr2-section:nth-of-type(1) > .ww-travel-pair > .mr2-field:last-child{
    grid-column:2!important;
    grid-row:3!important;
  }

  /* Client stays visible; search/add tools are tucked behind Change. */
  body[data-modal-type="missed-record"] .ts-client-picker-compact{
    display:grid!important;
    gap:5px!important;
    min-width:0!important;
  }
  body[data-modal-type="missed-record"] .ts-client-compact-head{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 68px!important;
    gap:6px!important;
    align-items:stretch!important;
  }
  body[data-modal-type="missed-record"] .ts-client-picker-compact .ts-client-selected{
    min-height:42px!important;
    padding:7px 9px!important;
    border-radius:11px!important;
    overflow:hidden!important;
  }
  body[data-modal-type="missed-record"] .ts-client-picker-compact .ts-client-selected strong{
    display:block!important;
    font-size:12.2px!important;
    line-height:1.05!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body[data-modal-type="missed-record"] .ts-client-picker-compact .ts-client-selected span{
    display:block!important;
    margin-top:2px!important;
    font-size:9.4px!important;
    line-height:1.08!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body[data-modal-type="missed-record"] .ts-client-picker-compact .ts-client-change{
    width:68px!important;
    min-width:68px!important;
    min-height:42px!important;
    height:42px!important;
    padding:0 6px!important;
    border-radius:11px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    font-size:9.8px!important;
    font-weight:850!important;
    background:#e8f0e4!important;
    border:1px solid rgba(50,88,52,.14)!important;
    color:#2b5831!important;
  }
  body[data-modal-type="missed-record"] .ts-client-picker-compact .ts-client-change svg{
    width:13px!important;
    height:13px!important;
  }
  body[data-modal-type="missed-record"] .ts-client-change-panel{
    display:none!important;
    gap:5px!important;
    padding:6px!important;
    border-radius:11px!important;
    background:#f0ede4!important;
    border:1px solid rgba(52,73,50,.12)!important;
  }
  body[data-modal-type="missed-record"] .ts-client-change-panel.open{
    display:grid!important;
  }
  body[data-modal-type="missed-record"] .ts-client-change-panel .ts-client-results{
    max-height:105px!important;
  }
  body[data-modal-type="missed-record"] .ts-add-client-toggle,
  body[data-modal-type="missed-record"] .mr2 .te-addclient,
  body[data-modal-type="missed-record"] .timesheet-modal .add-client-btn{
    min-height:34px!important;
    height:34px!important;
    border-radius:10px!important;
    font-size:10.5px!important;
  }

  body[data-modal-type="missed-record"] .mr2-row2{
    gap:7px!important;
  }

  /* Reason remains useful without consuming half the page. */
  body[data-modal-type="missed-record"] .mr2-notes-section{
    gap:5px!important;
  }
  body[data-modal-type="missed-record"] .mr2 textarea.mr2-notes{
    min-height:40px!important;
    height:40px!important;
    max-height:40px!important;
    padding:8px 9px!important;
    font-size:12px!important;
    line-height:1.2!important;
    border-radius:11px!important;
  }

  body[data-modal-type="missed-record"] .timesheet-modal .modal-foot{
    min-height:calc(52px + env(safe-area-inset-bottom,0px))!important;
    padding:6px 9px calc(6px + env(safe-area-inset-bottom,0px))!important;
    box-shadow:0 -5px 14px rgba(31,48,33,.055)!important;
  }
  body[data-modal-type="missed-record"] .mr2-footer-actions{
    grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr)!important;
    gap:8px!important;
  }
  body[data-modal-type="missed-record"] .mr2-footer-actions .btn{
    height:40px!important;
    min-height:40px!important;
    border-radius:12px!important;
    font-size:11.8px!important;
    padding:0 9px!important;
  }
  body[data-modal-type="missed-record"] .mr2-submit-action{
    gap:6px!important;
    box-shadow:0 5px 12px rgba(26,72,43,.13)!important;
  }
  body[data-modal-type="missed-record"] .mr2-submit-action svg{
    width:14px!important;
    height:14px!important;
  }
}

/* Smaller iPhones: remove secondary helper copy before shrinking controls further. */
@media (max-width: 390px) and (max-height: 700px){
  body[data-modal-type="missed-record"] .mr2-section-head span{display:none!important;}
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2::after{font-size:9px!important;}
  body[data-modal-type="missed-record"] .mr2{gap:5px!important;}
  body[data-modal-type="missed-record"] .mr2-section{padding:7px!important;gap:5px!important;}
  body[data-modal-type="missed-record"] .mr2 .input,
  body[data-modal-type="missed-record"] .ts-client-search{height:36px!important;min-height:36px!important;}
  body[data-modal-type="missed-record"] .mr2 input[type="date"].input{line-height:36px!important;}
  body[data-modal-type="missed-record"] .mr2 select.input{line-height:34px!important;}
  body[data-modal-type="missed-record"] .ts-client-picker-compact .ts-client-selected,
  body[data-modal-type="missed-record"] .ts-client-picker-compact .ts-client-change{min-height:39px!important;height:39px!important;}
  body[data-modal-type="missed-record"] .mr2 textarea.mr2-notes{height:36px!important;min-height:36px!important;max-height:36px!important;}
}

/* ---- app-polish-v618.css ---- */
/* EarthRoster v618 — professional one-page Timesheet entry + newest-first approvals
   Scope: Timesheet entry modal and notification approvals presentation only. */

@media (max-width: 430px){
  body[data-modal-type="record"] .timesheet-modal{
    width:100%!important;
    height:100dvh!important;
    max-height:100dvh!important;
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    border-radius:0!important;
    overflow:hidden!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head{
    min-height:calc(58px + env(safe-area-inset-top,0px))!important;
    padding:calc(8px + env(safe-area-inset-top,0px)) 50px 7px 13px!important;
    box-shadow:0 4px 14px rgba(15,48,27,.12)!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head h2{
    font-size:17.5px!important;
    line-height:1.02!important;
    letter-spacing:-.018em!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head h2::before{
    margin-bottom:3px!important;
    font-size:7.2px!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head h2::after{
    margin-top:3px!important;
    font-size:9px!important;
    line-height:1.12!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-x{
    top:calc(8px + env(safe-area-inset-top,0px))!important;
    right:10px!important;
    width:34px!important;height:34px!important;min-width:34px!important;
    border-radius:11px!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-body{
    min-height:0!important;
    padding:6px 8px 5px!important;
    overflow:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body[data-modal-type="record"] .te-record-shell{gap:5px!important;}

  /* Compact top summary: all essential information remains visible. */
  body[data-modal-type="record"] .te-summary-card{
    grid-template-columns:minmax(0,1fr) 70px!important;
    min-height:62px!important;
    padding:8px 9px!important;
    gap:8px!important;
    border-radius:12px!important;
    box-shadow:0 2px 8px rgba(24,47,31,.035)!important;
  }
  body[data-modal-type="record"] .te-summary-eyebrow{margin:0 0 3px!important;font-size:8.1px!important;}
  body[data-modal-type="record"] .te-client{font-size:13.2px!important;line-height:1.08!important;}
  body[data-modal-type="record"] .te-summary-meta{margin-top:4px!important;gap:6px!important;}
  body[data-modal-type="record"] .te-status{padding:3px 7px!important;font-size:8.2px!important;}
  body[data-modal-type="record"] .te-review-label{font-size:8.6px!important;}
  body[data-modal-type="record"] .te-hours{min-width:70px!important;padding:6px 7px!important;border-radius:10px!important;}
  body[data-modal-type="record"] .te-hours-kicker{font-size:6.3px!important;}
  body[data-modal-type="record"] .te-hours strong{margin:2px 0 1px!important;font-size:19px!important;}
  body[data-modal-type="record"] .te-hours>span:last-child{font-size:6.2px!important;}

  body[data-modal-type="record"] .te-variance{
    min-height:30px!important;
    padding:5px 8px!important;
    gap:6px!important;
    border-radius:10px!important;
    font-size:8.8px!important;
    line-height:1.18!important;
  }
  body[data-modal-type="record"] .te-variance-icon{width:18px!important;height:18px!important;flex-basis:18px!important;border-radius:6px!important;}
  body[data-modal-type="record"] .te-variance-icon svg{width:10px!important;height:10px!important;}

  /* One professional information card rather than tall stacked panels. */
  body[data-modal-type="record"] .te-form-grid{
    gap:5px!important;
    padding:7px!important;
    border-radius:12px!important;
    box-shadow:0 2px 8px rgba(24,47,31,.03)!important;
  }
  body[data-modal-type="record"] .te-section-heading{gap:6px!important;min-height:22px!important;}
  body[data-modal-type="record"] .te-section-icon{width:21px!important;height:21px!important;flex-basis:21px!important;border-radius:7px!important;}
  body[data-modal-type="record"] .te-section-icon svg{width:11px!important;height:11px!important;}
  body[data-modal-type="record"] .te-section-heading strong{font-size:10px!important;}
  body[data-modal-type="record"] .te-section-heading em{display:none!important;}
  body[data-modal-type="record"] .te-section-divider{margin:0!important;height:1px!important;}
  body[data-modal-type="record"] .record-entry-modal .field{gap:3px!important;margin:0!important;}
  body[data-modal-type="record"] .record-entry-modal .field>label{font-size:8.2px!important;letter-spacing:.035em!important;}
  body[data-modal-type="record"] .record-entry-modal .field>label span{font-size:8px!important;}
  body[data-modal-type="record"] .record-entry-modal .input,
  body[data-modal-type="record"] .record-entry-modal select.input{
    height:35px!important;
    min-height:35px!important;
    border-radius:9px!important;
    font-size:11.6px!important;
    padding:0 9px!important;
  }
  body[data-modal-type="record"] .record-entry-modal textarea.input{
    height:38px!important;
    min-height:38px!important;
    max-height:50px!important;
    padding:7px 9px!important;
    font-size:11px!important;
    line-height:1.18!important;
  }

  /* Client card stays readable but no longer dominates the screen. */
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{
    min-height:40px!important;
    padding:7px 67px 7px 9px!important;
    border-radius:9px!important;
  }
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected strong{font-size:11.3px!important;line-height:1.08!important;}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected span{margin-top:2px!important;font-size:8.7px!important;line-height:1.05!important;}
  body[data-modal-type="record"] .ts-client-change{
    right:6px!important;
    width:53px!important;min-width:53px!important;
    height:27px!important;min-height:27px!important;
    padding:0 6px!important;
    border-radius:8px!important;
    font-size:8.5px!important;
  }
  body[data-modal-type="record"] .ts-client-change svg{width:10px!important;height:10px!important;}
  body[data-modal-type="record"] .ts-client-change-panel{margin-top:5px!important;padding:6px!important;}

  body[data-modal-type="record"] .te-two-col{gap:6px!important;}

  /* Payroll heading + status become one compact review row on admin screens. */
  body[data-modal-type="record"] .te-payroll-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(118px,42%)!important;
    align-items:center!important;
    gap:7px!important;
    min-width:0!important;
  }
  body[data-modal-type="record"] .te-payroll-field{min-width:0!important;}
  body[data-modal-type="record"] .te-payroll-field>label{display:none!important;}
  body[data-modal-type="record"] .te-divider-payroll{margin-top:1px!important;}

  body[data-modal-type="record"] .te-save-hint{
    display:flex!important;
    align-items:center!important;
    gap:5px!important;
    min-height:14px!important;
    margin:0!important;
    padding:0 2px!important;
    font-size:8px!important;
    line-height:1.1!important;
  }
  body[data-modal-type="record"] .te-save-hint svg{width:10px!important;height:10px!important;flex-basis:10px!important;}

  body[data-modal-type="record"] .timesheet-modal .modal-foot{
    min-height:calc(50px + env(safe-area-inset-bottom,0px))!important;
    padding:5px 8px calc(5px + env(safe-area-inset-bottom,0px))!important;
    box-shadow:0 -4px 12px rgba(25,45,29,.05)!important;
  }
  body[data-modal-type="record"] .te-footer-actions{grid-template-columns:.72fr 1.28fr!important;gap:7px!important;}
  body[data-modal-type="record"] .te-footer-actions .btn{
    height:39px!important;min-height:39px!important;
    border-radius:11px!important;
    font-size:11.4px!important;
  }
}

/* Short iPhone web viewports: keep every normal field visible without forcing
   the user to scroll just to reach Notes or the save action. */
@media (max-width:430px) and (max-height:720px){
  body[data-modal-type="record"] .timesheet-modal .modal-head{min-height:calc(54px + env(safe-area-inset-top,0px))!important;padding-top:calc(6px + env(safe-area-inset-top,0px))!important;padding-bottom:5px!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-head h2::after{display:none!important;}
  body[data-modal-type="record"] .te-summary-card{min-height:56px!important;padding:6px 8px!important;}
  body[data-modal-type="record"] .te-summary-eyebrow{display:none!important;}
  body[data-modal-type="record"] .te-review-label{display:none!important;}
  body[data-modal-type="record"] .te-variance{font-size:8.2px!important;padding-top:4px!important;padding-bottom:4px!important;}
  body[data-modal-type="record"] .te-form-grid{padding:6px!important;gap:4px!important;}
  body[data-modal-type="record"] .te-section-heading{min-height:19px!important;}
  body[data-modal-type="record"] .record-entry-modal .input,
  body[data-modal-type="record"] .record-entry-modal select.input{height:32px!important;min-height:32px!important;}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{min-height:37px!important;}
  body[data-modal-type="record"] .record-entry-modal textarea.input{height:34px!important;min-height:34px!important;}
}

/* Notifications: show the pending approval stack as a clean newest-first feed. */
@media (max-width:700px){
  .approvals-list{display:grid!important;gap:8px!important;}
  .approvals-list .appr-row{border-radius:15px!important;box-shadow:0 3px 10px rgba(28,48,31,.035)!important;}
  .approvals-list .appr-info{padding-top:11px!important;padding-bottom:11px!important;}
  .approvals-list .appr-top strong{font-size:14px!important;}
  .approvals-list .appr-sub{font-size:10.8px!important;line-height:1.18!important;}
}

/* ---- app-polish-v619.css ---- */
/* EarthRoster v619 — balanced missed-timesheet request layout
   Scope: Missed timesheet entry only. Restores comfortable mobile sizing and
   uses the available screen height without reintroducing long scrolling. */

@media (max-width:430px){
  body[data-modal-type="missed-record"] .timesheet-modal .modal-body{
    display:flex!important;
    min-height:0!important;
  }
  body[data-modal-type="missed-record"] .mr2{
    width:100%!important;
    min-height:100%!important;
    box-sizing:border-box!important;
  }
}

/* Normal/tall phones: increase legibility and distribute the form across the
   available page instead of leaving a large unused block above the footer. */
@media (max-width:430px) and (min-height:680px){
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head{
    min-height:calc(72px + env(safe-area-inset-top,0px))!important;
    padding:calc(11px + env(safe-area-inset-top,0px)) 60px 10px 15px!important;
  }
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2{
    font-size:20px!important;
    line-height:1.04!important;
  }
  body[data-modal-type="missed-record"] .timesheet-modal .modal-head h2::after{
    margin-top:4px!important;
    font-size:10.5px!important;
    line-height:1.2!important;
  }
  body[data-modal-type="missed-record"] .timesheet-modal .modal-x{
    top:calc(11px + env(safe-area-inset-top,0px))!important;
    right:12px!important;
    width:40px!important;height:40px!important;min-width:40px!important;
    border-radius:13px!important;
    font-size:25px!important;
  }

  body[data-modal-type="missed-record"] .timesheet-modal .modal-body{
    padding:10px 10px 8px!important;
  }
  body[data-modal-type="missed-record"] .mr2{
    display:grid!important;
    grid-template-rows:auto auto auto auto!important;
    align-content:space-between!important;
    gap:11px!important;
  }

  body[data-modal-type="missed-record"] .mr2-banner{
    min-height:64px!important;
    padding:10px 12px!important;
    grid-template-columns:40px minmax(0,1fr) auto!important;
    gap:10px!important;
    border-radius:17px!important;
    box-shadow:0 7px 18px rgba(22,66,38,.10)!important;
  }
  body[data-modal-type="missed-record"] .mr2-banner-icon{
    width:40px!important;height:40px!important;border-radius:12px!important;
  }
  body[data-modal-type="missed-record"] .mr2-banner-icon svg{width:20px!important;height:20px!important;}
  body[data-modal-type="missed-record"] .mr2-banner-tx strong{
    font-size:15px!important;line-height:1.08!important;
  }
  body[data-modal-type="missed-record"] .mr2-banner-tx span{
    font-size:10.5px!important;line-height:1.2!important;
  }
  body[data-modal-type="missed-record"] .mr2-pill{
    padding:6px 9px!important;font-size:10px!important;align-self:center!important;
  }

  body[data-modal-type="missed-record"] .mr2-section{
    gap:9px!important;
    padding:12px!important;
    border-radius:17px!important;
    box-shadow:0 5px 14px rgba(34,53,36,.045)!important;
  }
  body[data-modal-type="missed-record"] .mr2-section-head{gap:2px!important;}
  body[data-modal-type="missed-record"] .mr2-section-head strong{
    font-size:14px!important;line-height:1.06!important;
  }
  body[data-modal-type="missed-record"] .mr2-section-head span{
    font-size:9.7px!important;line-height:1.18!important;
  }
  body[data-modal-type="missed-record"] .mr2-field{gap:5px!important;}
  body[data-modal-type="missed-record"] .mr2-field label{
    font-size:10.3px!important;line-height:1.08!important;
  }
  body[data-modal-type="missed-record"] .mr2-field label em{font-size:9.5px!important;}
  body[data-modal-type="missed-record"] .mr2 .input,
  body[data-modal-type="missed-record"] .ts-client-search{
    height:46px!important;min-height:46px!important;
    border-radius:13px!important;
    font-size:13.5px!important;
    padding-left:11px!important;padding-right:11px!important;
  }
  body[data-modal-type="missed-record"] .mr2 select.input{
    line-height:44px!important;
    padding-right:30px!important;
    text-overflow:clip!important;
  }
  body[data-modal-type="missed-record"] .mr2 input[type="date"].input{line-height:46px!important;}

  /* Give the rostered-shift control more room so "No matching shift" is fully visible. */
  body[data-modal-type="missed-record"] .mr2 > .mr2-section:nth-of-type(1){
    grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr)!important;
    column-gap:9px!important;
    row-gap:9px!important;
  }

  body[data-modal-type="missed-record"] .ts-client-compact-head{
    grid-template-columns:minmax(0,1fr) 72px!important;
    gap:7px!important;
  }
  body[data-modal-type="missed-record"] .ts-client-picker-compact .ts-client-selected{
    min-height:50px!important;
    padding:9px 10px!important;
    border-radius:13px!important;
  }
  body[data-modal-type="missed-record"] .ts-client-picker-compact .ts-client-selected strong{
    font-size:13.3px!important;line-height:1.08!important;
  }
  body[data-modal-type="missed-record"] .ts-client-picker-compact .ts-client-selected span{
    margin-top:3px!important;font-size:10.2px!important;line-height:1.1!important;
  }
  body[data-modal-type="missed-record"] .ts-client-picker-compact .ts-client-change{
    width:72px!important;min-width:72px!important;
    height:50px!important;min-height:50px!important;
    border-radius:13px!important;
    font-size:10px!important;
  }
  body[data-modal-type="missed-record"] .mr2-row2{gap:9px!important;}

  body[data-modal-type="missed-record"] .mr2-notes-section{gap:8px!important;}
  body[data-modal-type="missed-record"] .mr2 textarea.mr2-notes{
    min-height:62px!important;height:62px!important;max-height:62px!important;
    padding:10px 11px!important;
    font-size:13px!important;line-height:1.25!important;
    border-radius:13px!important;
  }

  body[data-modal-type="missed-record"] .timesheet-modal .modal-foot{
    min-height:calc(64px + env(safe-area-inset-bottom,0px))!important;
    padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px))!important;
  }
  body[data-modal-type="missed-record"] .mr2-footer-actions{
    grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr)!important;
    gap:9px!important;
  }
  body[data-modal-type="missed-record"] .mr2-footer-actions .btn{
    height:46px!important;min-height:46px!important;
    border-radius:14px!important;
    font-size:13px!important;
  }
}

/* Short phones retain a compact layout so the form still fits rather than
   becoming cramped or requiring a large scroll. */
@media (max-width:390px) and (max-height:679px){
  body[data-modal-type="missed-record"] .mr2{align-content:start!important;}
}

/* ---- app-polish-v620.css ---- */
/* EarthRoster v620 — Timesheet entry balanced one-screen redesign
   Scope: existing Timesheet entry modal only (record). No workflow/data changes. */

@media (max-width:430px){
  body[data-modal-type="record"]{
    --v620-page:#f5f4ee;
    --v620-card:#fffefb;
    --v620-ink:#193024;
    --v620-muted:#738078;
    --v620-line:rgba(31,72,43,.13);
    --v620-soft:#eef4ec;
    --v620-green:#1f653c;
  }

  body[data-modal-type="record"] .timesheet-modal{
    width:100%!important;
    height:100dvh!important;
    max-height:100dvh!important;
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    overflow:hidden!important;
    border-radius:0!important;
    background:var(--v620-page)!important;
  }

  /* Header: still premium, but no longer takes a large chunk of the screen. */
  body[data-modal-type="record"] .timesheet-modal .modal-head{
    min-height:calc(76px + env(safe-area-inset-top,0px))!important;
    padding:calc(12px + env(safe-area-inset-top,0px)) 58px 11px 16px!important;
    background:linear-gradient(135deg,#1d5a35 0%,#123d25 100%)!important;
    box-shadow:0 5px 16px rgba(15,48,27,.16)!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head h2{
    font-family:var(--font-body,Arial,sans-serif)!important;
    font-size:22px!important;
    line-height:1.02!important;
    font-weight:900!important;
    letter-spacing:-.028em!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head h2::before{
    content:"TIMESHEET"!important;
    display:block!important;
    margin:0 0 4px!important;
    font-size:8px!important;
    line-height:1!important;
    font-weight:900!important;
    letter-spacing:.15em!important;
    color:#d9c581!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head h2::after{
    content:"Review and correct this entry"!important;
    display:block!important;
    margin-top:4px!important;
    font-size:10.2px!important;
    line-height:1.12!important;
    font-weight:620!important;
    letter-spacing:.005em!important;
    color:rgba(255,255,255,.72)!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-x{
    top:calc(12px + env(safe-area-inset-top,0px))!important;
    right:12px!important;
    width:40px!important;height:40px!important;min-width:40px!important;
    border-radius:13px!important;
    font-size:26px!important;
  }

  body[data-modal-type="record"] .timesheet-modal .modal-body{
    min-height:0!important;
    padding:8px 9px 7px!important;
    overflow:hidden!important;
    background:var(--v620-page)!important;
  }
  body[data-modal-type="record"] .te-record-shell{
    height:100%!important;
    min-height:0!important;
    display:grid!important;
    grid-template-rows:auto auto minmax(0,1fr) auto!important;
    gap:7px!important;
  }

  /* Summary: key information at a glance, without the oversized card. */
  body[data-modal-type="record"] .te-summary-card{
    min-height:78px!important;
    grid-template-columns:minmax(0,1fr) 76px!important;
    align-items:center!important;
    gap:10px!important;
    padding:10px 11px!important;
    border-radius:15px!important;
    background:var(--v620-card)!important;
    border:1px solid var(--v620-line)!important;
    box-shadow:0 4px 12px rgba(29,57,35,.045)!important;
  }
  body[data-modal-type="record"] .te-summary-main{padding:0!important;min-width:0!important;}
  body[data-modal-type="record"] .te-summary-eyebrow{
    margin:0 0 5px!important;
    font-size:8.7px!important;
    line-height:1!important;
    letter-spacing:.10em!important;
    font-weight:850!important;
    color:#7b867e!important;
  }
  body[data-modal-type="record"] .te-client{
    font-family:var(--font-body,Arial,sans-serif)!important;
    font-size:16.5px!important;
    line-height:1.08!important;
    font-weight:900!important;
    letter-spacing:-.022em!important;
    color:var(--v620-ink)!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body[data-modal-type="record"] .te-summary-meta{margin-top:7px!important;gap:7px!important;align-items:center!important;}
  body[data-modal-type="record"] .te-status{padding:4px 8px!important;font-size:9.3px!important;border-radius:999px!important;}
  body[data-modal-type="record"] .te-review-label{font-size:9.5px!important;font-weight:750!important;color:#7a847c!important;}
  body[data-modal-type="record"] .te-hours{
    min-width:76px!important;
    padding:8px 7px!important;
    border-radius:13px!important;
    background:#edf5ef!important;
    border:1px solid rgba(38,93,55,.14)!important;
    box-shadow:none!important;
  }
  body[data-modal-type="record"] .te-hours-kicker{font-size:6.8px!important;letter-spacing:.08em!important;color:#6a7f70!important;}
  body[data-modal-type="record"] .te-hours strong{margin:3px 0 1px!important;font-size:23px!important;line-height:.98!important;font-weight:950!important;color:#1f613a!important;}
  body[data-modal-type="record"] .te-hours>span:last-child{font-size:6.8px!important;letter-spacing:.08em!important;color:#6e7d73!important;}

  body[data-modal-type="record"] .te-variance{
    min-height:34px!important;
    display:flex!important;
    align-items:center!important;
    gap:7px!important;
    padding:6px 9px!important;
    border-radius:11px!important;
    font-size:9.4px!important;
    line-height:1.18!important;
    font-weight:760!important;
    overflow:hidden!important;
  }
  body[data-modal-type="record"] .te-variance>span:last-child{
    min-width:0!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body[data-modal-type="record"] .te-variance-icon{width:20px!important;height:20px!important;flex:0 0 20px!important;border-radius:7px!important;}
  body[data-modal-type="record"] .te-variance-icon svg{width:11px!important;height:11px!important;}

  /* Main edit card uses the remaining height instead of forcing a long page. */
  body[data-modal-type="record"] .te-form-grid{
    min-height:0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1.28fr) minmax(0,.72fr) minmax(0,.88fr)!important;
    grid-auto-rows:min-content!important;
    align-content:space-between!important;
    column-gap:7px!important;
    row-gap:5px!important;
    padding:9px 10px!important;
    border-radius:15px!important;
    background:var(--v620-card)!important;
    border:1px solid var(--v620-line)!important;
    box-shadow:0 4px 12px rgba(29,57,35,.04)!important;
    overflow:hidden!important;
  }

  body[data-modal-type="record"] .te-section-heading{
    gap:7px!important;
    min-height:24px!important;
    padding:0!important;
    align-items:center!important;
  }
  body[data-modal-type="record"] .te-section-icon{
    width:24px!important;height:24px!important;flex:0 0 24px!important;
    border-radius:8px!important;
    background:#edf4ec!important;
  }
  body[data-modal-type="record"] .te-section-icon svg{width:12px!important;height:12px!important;}
  body[data-modal-type="record"] .te-section-heading strong{font-size:11.7px!important;line-height:1.08!important;font-weight:900!important;color:var(--v620-ink)!important;}
  body[data-modal-type="record"] .te-section-heading em{display:none!important;}
  body[data-modal-type="record"] .te-section-divider{grid-column:1/-1!important;margin:0!important;height:1px!important;background:rgba(39,67,45,.10)!important;}

  body[data-modal-type="record"] .te-job-heading{grid-column:1/-1!important;}
  body[data-modal-type="record"] .te-client-field{grid-column:1/-1!important;}
  body[data-modal-type="record"] .ww-ts-date-field{grid-column:1!important;grid-row:auto!important;min-width:0!important;}
  body[data-modal-type="record"] .ww-ts-travel-row{display:contents!important;}
  body[data-modal-type="record"] .ww-ts-travel-row>.field:first-child{grid-column:2!important;min-width:0!important;}
  body[data-modal-type="record"] .ww-ts-travel-row>.field:last-child{grid-column:3!important;min-width:0!important;}
  body[data-modal-type="record"] .te-divider-time{grid-column:1/-1!important;}
  body[data-modal-type="record"] .te-time-heading{grid-column:1/-1!important;}
  body[data-modal-type="record"] .te-time-row{grid-column:1/-1!important;}
  body[data-modal-type="record"] .te-divider-payroll{grid-column:1/-1!important;}
  body[data-modal-type="record"] .te-payroll-row{grid-column:1/-1!important;}
  body[data-modal-type="record"] .te-notes-field{grid-column:1/-1!important;}

  body[data-modal-type="record"] .record-entry-modal .field{gap:4px!important;margin:0!important;min-width:0!important;}
  body[data-modal-type="record"] .record-entry-modal .field>label{
    font-size:8.8px!important;
    line-height:1!important;
    letter-spacing:.04em!important;
    font-weight:850!important;
    color:#5d6b61!important;
    white-space:nowrap!important;
  }
  body[data-modal-type="record"] .record-entry-modal .field>label span{font-size:8.3px!important;color:#8a948d!important;}
  body[data-modal-type="record"] .record-entry-modal .input,
  body[data-modal-type="record"] .record-entry-modal select.input{
    width:100%!important;
    height:41px!important;
    min-height:41px!important;
    border-radius:11px!important;
    padding:0 9px!important;
    background:#fafaf7!important;
    border:1px solid rgba(39,67,45,.14)!important;
    box-shadow:none!important;
    font-size:12.2px!important;
    line-height:1!important;
    font-weight:780!important;
    color:#1c3023!important;
  }
  body[data-modal-type="record"] .record-entry-modal textarea.input{
    height:49px!important;
    min-height:49px!important;
    max-height:49px!important;
    padding:8px 10px!important;
    font-size:11.6px!important;
    line-height:1.22!important;
    resize:none!important;
  }

  body[data-modal-type="record"] .ts-client-picker-compact{width:100%!important;}
  body[data-modal-type="record"] .ts-client-compact-head{position:relative!important;width:100%!important;}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{
    min-height:48px!important;
    padding:8px 74px 8px 10px!important;
    border-radius:11px!important;
    background:#fafaf7!important;
    border:1px solid rgba(39,67,45,.14)!important;
    box-shadow:none!important;
  }
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected strong{font-size:12.7px!important;line-height:1.08!important;font-weight:850!important;}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected span{margin-top:3px!important;font-size:9.3px!important;line-height:1.05!important;color:#7b867e!important;}
  body[data-modal-type="record"] .ts-client-change{
    position:absolute!important;
    top:50%!important;right:7px!important;transform:translateY(-50%)!important;
    width:60px!important;min-width:60px!important;
    height:31px!important;min-height:31px!important;
    padding:0 7px!important;
    border-radius:9px!important;
    display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;gap:4px!important;
    background:#eaf3e9!important;
    border:1px solid rgba(41,89,52,.14)!important;
    color:#275d3a!important;
    font-size:9px!important;font-weight:900!important;line-height:1!important;
  }
  body[data-modal-type="record"] .ts-client-change svg{width:11px!important;height:11px!important;}
  body[data-modal-type="record"] .ts-client-change-panel{margin-top:5px!important;padding:6px!important;}

  body[data-modal-type="record"] .te-two-col{gap:7px!important;}

  /* Admin payroll is one horizontal decision row instead of another tall section. */
  body[data-modal-type="record"] .te-payroll-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(125px,39%)!important;
    align-items:center!important;
    gap:8px!important;
    min-width:0!important;
  }
  body[data-modal-type="record"] .te-payroll-heading{min-width:0!important;}
  body[data-modal-type="record"] .te-payroll-field{min-width:0!important;}
  body[data-modal-type="record"] .te-payroll-field>label{display:none!important;}
  body[data-modal-type="record"] .te-payroll-field select.input{height:39px!important;min-height:39px!important;font-size:12px!important;}

  body[data-modal-type="record"] .te-save-hint{
    min-height:13px!important;
    margin:0!important;
    padding:0 2px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    font-size:8px!important;
    line-height:1.08!important;
    color:#7c877f!important;
  }
  body[data-modal-type="record"] .te-save-hint svg{width:10px!important;height:10px!important;flex:0 0 10px!important;}

  body[data-modal-type="record"] .timesheet-modal .modal-foot{
    min-height:calc(61px + env(safe-area-inset-bottom,0px))!important;
    padding:7px 9px calc(7px + env(safe-area-inset-bottom,0px))!important;
    background:#fffef9!important;
    border-top:1px solid rgba(31,72,43,.10)!important;
    box-shadow:0 -5px 15px rgba(30,49,34,.055)!important;
  }
  body[data-modal-type="record"] .te-footer-actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr)!important;
    gap:8px!important;
  }
  body[data-modal-type="record"] .te-footer-actions .btn{
    height:47px!important;min-height:47px!important;
    border-radius:14px!important;
    font-size:13px!important;
    font-weight:900!important;
  }
}

/* Smaller iPhone viewport: preserve the same visual hierarchy while allowing a
   tiny amount of safety compression rather than clipping any field. */
@media (max-width:400px) and (max-height:860px){
  body[data-modal-type="record"] .timesheet-modal .modal-head{
    min-height:calc(70px + env(safe-area-inset-top,0px))!important;
    padding-top:calc(9px + env(safe-area-inset-top,0px))!important;
    padding-bottom:8px!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head h2{font-size:20px!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-head h2::after{font-size:9.5px!important;}
  body[data-modal-type="record"] .te-summary-card{min-height:72px!important;padding:8px 10px!important;}
  body[data-modal-type="record"] .te-client{font-size:15.5px!important;}
  body[data-modal-type="record"] .te-hours strong{font-size:21px!important;}
  body[data-modal-type="record"] .te-form-grid{padding:8px 9px!important;row-gap:4px!important;}
  body[data-modal-type="record"] .record-entry-modal .input,
  body[data-modal-type="record"] .record-entry-modal select.input{height:38px!important;min-height:38px!important;font-size:11.7px!important;}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{min-height:44px!important;}
  body[data-modal-type="record"] .record-entry-modal textarea.input{height:44px!important;min-height:44px!important;max-height:44px!important;}
  body[data-modal-type="record"] .te-section-heading{min-height:22px!important;}
  body[data-modal-type="record"] .te-footer-actions .btn{height:44px!important;min-height:44px!important;}
}

/* Very short browser windows can still scroll safely rather than hiding fields. */
@media (max-width:430px) and (max-height:730px){
  body[data-modal-type="record"] .timesheet-modal .modal-body{overflow:auto!important;}
  body[data-modal-type="record"] .te-record-shell{height:auto!important;display:flex!important;flex-direction:column!important;}
  body[data-modal-type="record"] .te-form-grid{align-content:start!important;}
}

/* v620 refinement — keep the one-screen fit but avoid the over-spaced / tiny feel. */
@media (max-width:430px) and (min-height:761px){
  body[data-modal-type="record"] .te-variance{
    min-height:38px!important;
    font-size:9px!important;
    line-height:1.16!important;
  }
  body[data-modal-type="record"] .te-variance>span:last-child{
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    display:block!important;
  }

  body[data-modal-type="record"] .te-form-grid{
    align-content:space-evenly!important;
    row-gap:7px!important;
    padding:11px 10px!important;
  }
  body[data-modal-type="record"] .te-section-heading{min-height:27px!important;}
  body[data-modal-type="record"] .te-section-icon{width:26px!important;height:26px!important;flex-basis:26px!important;}
  body[data-modal-type="record"] .te-section-heading strong{font-size:12px!important;}

  body[data-modal-type="record"] .record-entry-modal .field>label{font-size:9.2px!important;}
  body[data-modal-type="record"] .record-entry-modal .input,
  body[data-modal-type="record"] .record-entry-modal select.input{
    height:44px!important;
    min-height:44px!important;
    font-size:12.7px!important;
  }
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{
    min-height:53px!important;
    padding-top:9px!important;
    padding-bottom:9px!important;
  }
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected strong{font-size:13.2px!important;}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected span{font-size:9.6px!important;}
  body[data-modal-type="record"] .ts-client-change{height:33px!important;min-height:33px!important;font-size:9.3px!important;}
  body[data-modal-type="record"] .te-time-row .input{height:46px!important;min-height:46px!important;font-size:13.3px!important;}
  body[data-modal-type="record"] .te-payroll-field select.input{height:42px!important;min-height:42px!important;font-size:12.5px!important;}
  body[data-modal-type="record"] .record-entry-modal textarea.input{
    height:60px!important;
    min-height:60px!important;
    max-height:60px!important;
    padding:10px!important;
    font-size:12px!important;
  }
}

@media (max-width:400px) and (max-height:860px) and (min-height:761px){
  /* Undo the earlier short-phone compression for modern 844px iPhone viewports. */
  body[data-modal-type="record"] .timesheet-modal .modal-head{
    min-height:calc(72px + env(safe-area-inset-top,0px))!important;
    padding:calc(10px + env(safe-area-inset-top,0px)) 56px 9px 15px!important;
  }
  body[data-modal-type="record"] .timesheet-modal .modal-head h2{font-size:21px!important;}
  body[data-modal-type="record"] .timesheet-modal .modal-head h2::after{font-size:9.8px!important;}
  body[data-modal-type="record"] .te-summary-card{min-height:75px!important;padding:9px 10px!important;}
  body[data-modal-type="record"] .te-client{font-size:16px!important;}
  body[data-modal-type="record"] .te-hours strong{font-size:22px!important;}
  body[data-modal-type="record"] .te-form-grid{padding:9px!important;row-gap:5px!important;}
  body[data-modal-type="record"] .record-entry-modal .input,
  body[data-modal-type="record"] .record-entry-modal select.input{height:41px!important;min-height:41px!important;font-size:12.1px!important;}
  body[data-modal-type="record"] .ts-client-picker-compact .ts-client-selected{min-height:49px!important;}
  body[data-modal-type="record"] .record-entry-modal textarea.input{height:51px!important;min-height:51px!important;max-height:51px!important;}
  body[data-modal-type="record"] .te-section-heading{min-height:24px!important;}
  body[data-modal-type="record"] .te-footer-actions .btn{height:45px!important;min-height:45px!important;}
}

/* ---- app-polish-v621.css ---- */
/* EarthRoster v621 — smooth roster/notifications scrolling + action push focus */

/* The roster and Notifications pages are long, touch-first reading surfaces.
   Keep the browser in native momentum scrolling and isolate each long list. */
@media (max-width:1023px){
  body.ww-roster-active .main,
  body.ww-alerts-active .main{
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
    scroll-behavior:auto!important;
    overflow-anchor:none!important;
  }

  body.ww-roster-active .roster-mobile,
  body.ww-alerts-active .notif-list,
  body.ww-alerts-active .approvals-list{
    contain:layout style!important;
  }

  /* Only paint cards that are near the viewport. Realistic intrinsic sizes
     prevent iOS from repeatedly recalculating the whole off-screen list. */
  body.ww-roster-active .roster-mobile .ww585-card,
  body.ww-roster-active .roster-mobile .ww583-card,
  body.ww-roster-active .roster-mobile .rcard{
    content-visibility:auto!important;
    contain:layout paint style!important;
    contain-intrinsic-size:auto 150px!important;
    touch-action:pan-y!important;
  }
  body.ww-alerts-active .notif-item{
    content-visibility:auto!important;
    contain:layout paint style!important;
    contain-intrinsic-size:auto 92px!important;
  }
  body.ww-alerts-active .appr-row{
    content-visibility:auto!important;
    contain:layout paint style!important;
    contain-intrinsic-size:auto 118px!important;
  }

  body.ww-alerts-active .notif-row,
  body.ww-alerts-active .notif-del,
  body.ww-alerts-active .appr-row,
  body.ww-alerts-active .appr-open{
    touch-action:pan-y!important;
  }

  /* While the finger/momentum scroll is active, remove only costly paint
     effects. They return as soon as scrolling settles; layout never changes. */
  body.ww536-user-scrolling.ww-roster-active .ww585-card,
  body.ww536-user-scrolling.ww-roster-active .ww583-card,
  body.ww536-user-scrolling.ww-roster-active .rcard,
  body.ww536-user-scrolling.ww-alerts-active .notif-item,
  body.ww536-user-scrolling.ww-alerts-active .appr-row,
  body.ww536-user-scrolling.ww-alerts-active .approvals-panel{
    box-shadow:none!important;
    filter:none!important;
    text-shadow:none!important;
    transition:none!important;
  }
  body.ww536-user-scrolling.ww-roster-active .rst-hero,
  body.ww536-user-scrolling.ww-alerts-active .notif-head{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    box-shadow:none!important;
  }
}

/* Push-tap destinations: a brief focus ring shows the exact item without
   opening an extra modal or sending the admin back through Notifications. */
.ww621-route-rejected-card{
  outline:3px solid rgba(185,32,42,.62)!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 7px rgba(201,47,56,.14),0 10px 26px rgba(115,31,37,.18)!important;
}
.ww621-route-rejected-staff{
  outline:2px solid rgba(185,32,42,.62)!important;
  outline-offset:2px!important;
  border-radius:10px!important;
  background:rgba(255,236,234,.16)!important;
}
.ww621-route-timesheet{
  outline:3px solid rgba(39,112,62,.58)!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 7px rgba(39,112,62,.13),0 10px 26px rgba(23,71,38,.16)!important;
  border-radius:14px!important;
}

/* v621.1 — remove additional paint work only while momentum scrolling. */
@media (max-width:1023px){
  body.ww536-user-scrolling.ww-roster-active .roster-mobile .ww585-card::before,
  body.ww536-user-scrolling.ww-roster-active .roster-mobile .ww585-card::after,
  body.ww536-user-scrolling.ww-roster-active .roster-mobile .ww583-card::before,
  body.ww536-user-scrolling.ww-roster-active .roster-mobile .ww583-card::after{
    display:none!important;
  }
  body.ww536-user-scrolling.ww-roster-active .roster-mobile .ww583-hours,
  body.ww536-user-scrolling.ww-roster-active .roster-mobile .ww585-person,
  body.ww536-user-scrolling.ww-alerts-active .notif-ic,
  body.ww536-user-scrolling.ww-alerts-active .notif-del,
  body.ww536-user-scrolling.ww-alerts-active .appr-bell{
    box-shadow:none!important;
    filter:none!important;
  }
  body.ww-alerts-active .notif-wrap,
  body.ww-alerts-active .notif-list,
  body.ww-alerts-active .approvals-list,
  body.ww-roster-active .roster-mobile{
    backface-visibility:hidden!important;
  }
}

/* ---- app-polish-v622.css ---- */
/* EarthRoster v622 — compact admin employee-timesheet focus cards on mobile
   Scope: Clock > Timesheets > employee focus view only. */

@media (max-width: 560px){
  /* Make the focused employee view feel like a mobile screen rather than a
     scaled desktop payroll table. */
  .tsf{
    gap:8px!important;
  }

  .tsf-bar{
    gap:6px!important;
    margin-bottom:1px!important;
  }
  .tsf-back{
    padding:7px 11px!important;
    font-size:11.5px!important;
    min-height:34px!important;
  }
  .tsf-search{
    padding:6px 11px!important;
    min-height:34px!important;
  }
  .tsf-search input{
    font-size:12px!important;
  }
  .tsf-nav{
    gap:6px!important;
  }
  .tsf-nav-btn{
    min-height:38px!important;
    padding:6px 8px!important;
    border-radius:11px!important;
  }
  .tsf-nav-btn .tsf-nav-lbl strong{
    font-size:11.5px!important;
    max-width:84px!important;
  }
  .tsf-nav-count{
    min-width:48px!important;
    padding:5px 8px!important;
    font-size:11px!important;
  }

  /* Employee summary: keep all useful figures, but reduce the large visual
     block that previously consumed nearly a quarter of the viewport. */
  .tsf-head{
    border-radius:16px!important;
    padding:11px 12px!important;
    gap:8px 10px!important;
  }
  .tsf-av{
    width:44px!important;
    height:44px!important;
    border-radius:13px!important;
    font-size:15px!important;
  }
  .tsf-head-copy h2{
    font-size:18px!important;
    line-height:1.05!important;
  }
  .tsf-head-copy span{
    font-size:10.5px!important;
    margin-top:2px!important;
    line-height:1.2!important;
  }
  .tsf-head-stats{
    gap:5px!important;
    margin-top:0!important;
  }
  .tsf-hs{
    border-radius:10px!important;
    padding:6px 3px!important;
  }
  .tsf-hs em{
    font-size:7.6px!important;
    letter-spacing:.02em!important;
  }
  .tsf-hs strong{
    font-size:12.5px!important;
    margin-top:1px!important;
  }
  .tsf-period{
    margin:0 2px!important;
    font-size:11px!important;
    line-height:1.2!important;
  }

  /* Compact weekly rows. The Add action lives at the right edge instead of
     creating a second full row beneath every entry. */
  .tsf-rows{
    gap:5px!important;
  }
  .tsf-row{
    display:grid!important;
    grid-template-columns:56px minmax(0,1fr)!important;
    min-height:60px!important;
    border-radius:12px!important;
    overflow:hidden!important;
  }
  .tsf-row-day{
    width:auto!important;
    min-height:60px!important;
    padding:7px 6px!important;
    gap:0!important;
  }
  .tsf-rd-dow{
    font-size:8px!important;
  }
  .tsf-rd-num{
    font-size:16px!important;
  }
  .tsf-rd-sum{
    font-size:7px!important;
    margin-top:2px!important;
    white-space:nowrap!important;
  }
  .tsf-row-entries{
    position:relative!important;
    min-width:0!important;
    padding-right:37px!important;
    justify-content:center!important;
  }

  /* The timesheet record becomes a two-line information row:
       Client                     1.5h  8km
       12:31pm–2:02pm
     The whole row remains tappable to open the full edit/review screen. */
  .tsf-row .tfe{
    min-height:58px!important;
    display:grid!important;
    grid-template-columns:8px minmax(0,1fr) auto auto!important;
    grid-template-areas:
      "dot client hours km"
      "dot time   hours km"!important;
    align-items:center!important;
    column-gap:7px!important;
    row-gap:1px!important;
    padding:8px 4px 8px 10px!important;
    border-bottom:1px solid rgba(20,31,23,.055)!important;
    overflow:hidden!important;
  }
  .tsf-row .tfe:last-of-type{
    border-bottom:0!important;
  }
  .tsf-row .tfe-dot{
    grid-area:dot!important;
    width:7px!important;
    height:7px!important;
    align-self:center!important;
  }
  .tsf-row .tfe-client{
    grid-area:client!important;
    flex:none!important;
    min-width:0!important;
    max-width:none!important;
    font-size:12px!important;
    line-height:1.15!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .tsf-row .tfe-time{
    grid-area:time!important;
    flex:none!important;
    min-width:0!important;
    font-size:10.2px!important;
    line-height:1.15!important;
    white-space:nowrap!important;
  }
  .tsf-row .tfe-h{
    grid-area:hours!important;
    flex:none!important;
    font-size:10.5px!important;
    white-space:nowrap!important;
    align-self:center!important;
  }
  .tsf-row .tfe-km{
    grid-area:km!important;
    flex:none!important;
    font-size:9.8px!important;
    white-space:nowrap!important;
    align-self:center!important;
  }
  .tsf-row .tfe-travel,
  .tsf-row .tfe-note,
  .tsf-row .tfe-status,
  .tsf-row .tfe-actions{
    display:none!important;
  }

  .tsf-row-empty{
    min-height:54px!important;
    padding:8px 8px 8px 11px!important;
    font-size:10.5px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .tsf-row-add{
    position:absolute!important;
    right:6px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:28px!important;
    min-width:28px!important;
    height:28px!important;
    min-height:28px!important;
    margin:0!important;
    padding:0!important;
    border-radius:9px!important;
    justify-content:center!important;
    font-size:0!important;
    background:rgba(244,249,241,.96)!important;
    border:1px solid rgba(45,107,62,.22)!important;
  }
  .tsf-row-add svg{
    width:14px!important;
    height:14px!important;
  }
  .tsf-row-add:active{
    transform:translateY(-50%) scale(.94)!important;
  }

  /* Keep the exact record selected by a phone push obvious without making
     the compact card larger. */
  .tsf-row .ww621-route-timesheet{
    outline:2px solid rgba(39,112,62,.62)!important;
    outline-offset:-2px!important;
    border-radius:9px!important;
    box-shadow:inset 0 0 0 3px rgba(39,112,62,.10)!important;
  }
}

@media (min-width:561px) and (max-width:1023px){
  /* iPhone landscape / small tablet: still reduce unnecessary vertical bulk. */
  .tsf-head{padding:14px!important}
  .tsf-head-stats{gap:6px!important}
  .tsf-hs{padding:7px 5px!important}
  .tsf-row-day{width:58px!important;padding:6px!important}
  .tsf-row-add{margin-top:3px!important;margin-bottom:4px!important}
}

/* ---- app-polish-v623.css ---- */
/* EarthRoster v623 — restore travel time to compact mobile employee timesheet cards.
   Scope: Clock > Timesheets > employee focus view only. */

@media (max-width:560px){
  /* Keep the v622 compact geometry, but reserve a dedicated second-line slot
     for travel time so it never disappears when the card is compressed. */
  .tsf-row .tfe{
    grid-template-columns:8px minmax(0,1fr) auto auto!important;
    grid-template-areas:
      "dot client hours km"
      "dot time   time  time"!important;
  }

  .tsf-row .tfe-travel{
    grid-area:time!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-self:end!important;
    align-self:end!important;
    gap:3px!important;
    min-width:0!important;
    font-size:9.4px!important;
    line-height:1.1!important;
    font-weight:800!important;
    color:#59695d!important;
    white-space:nowrap!important;
  }
  .tsf-row .tfe-travel small{
    display:inline!important;
    font-size:7px!important;
    line-height:1!important;
    font-weight:800!important;
    letter-spacing:.045em!important;
    text-transform:uppercase!important;
    color:#879188!important;
  }

  /* Travel time is now visible, while the less important note/status/action
     controls remain hidden on the compact weekly overview. */
  .tsf-row .tfe-note,
  .tsf-row .tfe-status,
  .tsf-row .tfe-actions{
    display:none!important;
  }

  /* Keep the employee summary useful as well: kilometres and time appear
     together without increasing the summary card height. */
  .tsf-hs .tsf-travel-time{
    display:inline!important;
    font-size:9px!important;
    font-weight:800!important;
    opacity:.82!important;
    white-space:nowrap!important;
  }
}

/* ---- app-polish-v624.css ---- */
/* EarthRoster v624 — travel-time source-of-truth visibility.
   The value shown here is the same clockRecord.travelMins value entered by the
   employee on clock-out, missed-timesheet or edit-timesheet forms. */

@media (max-width:560px){
  /* Keep compact rows while making the travel-time label unmistakable. */
  .tsf-row .tfe-travel{
    gap:4px!important;
    font-size:9.6px!important;
    color:#405d47!important;
  }
  .tsf-row .tfe-travel small{
    font-size:6.7px!important;
    letter-spacing:.035em!important;
  }

  /* The day strip now echoes the day's entered travel minutes too. */
  .tsf-rd-sum{
    font-size:6.5px!important;
    letter-spacing:-.01em!important;
  }

  /* The top stat clearly distinguishes kilometre allowance from travel time. */
  .tsf-hs em{
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .tsf-hs:nth-child(3) em{
    font-size:6.7px!important;
  }
}

/* ---- app-polish-v625.css ---- */
/* EarthRoster v625 — global mobile scroll stability
   Scrolling/compositing only. No data, business logic or workflows change. */
@media (max-width:1023px){
  html,body,#app,.shell{
    overflow:hidden!important;
    overflow-x:hidden!important;
    overscroll-behavior:none!important;
    scroll-behavior:auto!important;
    max-width:100vw!important;
  }
  .main{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:none!important;
    overscroll-behavior-y:contain!important;
    scroll-behavior:auto!important;
    scroll-snap-type:none!important;
    overflow-anchor:none!important;
    touch-action:pan-y!important;
    transform:none!important;
    will-change:auto!important;
    contain:none!important;
  }
  .content,main.content,.content>.page,main.content>.page,.page,#page{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
    scroll-behavior:auto!important;
    scroll-snap-type:none!important;
    overflow-anchor:none!important;
    transform:none!important;
    will-change:auto!important;
    contain:none!important;
    backface-visibility:visible!important;
  }
  .bookings-page,.directory-list,.employee-directory,.client-directory,
  .notif-wrap,.notif-list,.approvals-list,.roster-mobile,.home-roster-list,
  .clock-timesheet-page,.v499-clock-page,.profile-page,.documents-page,
  .manager-page,.dashboard-grid,.home-page{
    min-width:0!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    scroll-snap-type:none!important;
    overflow-anchor:none!important;
  }
  /* Variable-height content-visibility placeholders were re-anchoring iOS
     scrollTop when their estimated height changed to the real card height. */
  .bookings-page .bk-card,.bookings-page .v213-card,
  .directory-card,.employee-card,.employee-card-list,.client-card,
  .notif-item,.appr-row,
  .roster-mobile .rcard,.roster-mobile .ww585-card,.roster-mobile .ww583-card,
  .home-roster-list .rcard,.home-roster-list .ww585-card,.home-roster-list .ww583-card,
  .ts-list>*,.ts-row,.timesheet-row,.timesheet-card,.tsf-row,
  .doc-card,.folder-card,.update-card,.thread-row,
  .dashboard-grid>*{
    content-visibility:visible!important;
    contain-intrinsic-size:none!important;
  }
  /* Remove large composited page layers that can shimmer/jump in Safari. */
  .content,.modal-body,.modal-scroll,.cv-threads,.chat-scroll,
  .bookings-page,.directory-list,.notif-list,.approvals-list,.roster-mobile{
    transform:none!important;
    will-change:auto!important;
  }
  /* Explicit inner scrollers retain momentum and never chain sideways/pageward. */
  .modal-body,.modal-scroll,.cv-threads,.chat-scroll,.employee-picker,.simple-list,
  .avail-grid-wrap,.rwg-wrap,.roster-grid-wrap{
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    scroll-behavior:auto!important;
    scroll-snap-type:none!important;
    overflow-anchor:none!important;
  }
}
body.ww-chat-active .cv-threads,
body.ww-chat-active .chat-scroll{
  scroll-behavior:auto!important;
  scroll-snap-type:none!important;
  overflow-anchor:none!important;
}

/* ---- app-polish-v626.css ---- */
/* EarthRoster v626 — Messages professionalism + All Team member directory.
   Deliberately preserves the existing dark message bubble design; this file
   only guards responsive sizing and styles the new member list interaction. */
@media (max-width:1023px){
  /* Keep message cards comfortable and natural: short replies stay compact,
     long messages get enough width to avoid looking crushed. */
  body.chat-thread-open .msg{min-width:0!important;max-width:100%!important;}
  body.chat-thread-open .bubble{
    width:fit-content!important;
    min-width:0!important;
    max-width:min(82%,560px)!important;
    padding:10px 13px!important;
    border-radius:17px!important;
  }
  body.chat-thread-open .b-text{
    font-size:15px!important;
    line-height:1.42!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
  }
  body.chat-thread-open .msg.group-start{margin-top:7px!important;}
  body.chat-thread-open .msg.group-continuation{margin-top:2px!important;}

  /* All Team header is now one clear tappable identity block. */
  body.chat-thread-open .cth-team-card{
    flex:1 1 auto!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    gap:12px!important;
    padding:4px 8px 4px 2px!important;
    margin:0!important;
    border:0!important;
    border-radius:16px!important;
    background:transparent!important;
    color:inherit!important;
    text-align:left!important;
    box-shadow:none!important;
    cursor:pointer!important;
    -webkit-tap-highlight-color:transparent!important;
  }
  body.chat-thread-open .cth-team-card:active{background:rgba(255,255,255,.06)!important;}
  body.chat-thread-open .cth-team-card .cth-info{min-width:0!important;flex:1 1 auto!important;}
  body.chat-thread-open .cth-member-chev{
    display:grid!important;place-items:center!important;
    width:28px!important;height:28px!important;flex:0 0 28px!important;
    border-radius:50%!important;color:#aeb9b2!important;background:rgba(255,255,255,.06)!important;
  }
  body.chat-thread-open .cth-member-chev svg{width:15px!important;height:15px!important;transform:rotate(180deg)!important;}

  /* Team members opens as a polished, scrollable mobile sheet. */
  body[data-modal-type="team-members"] .modal{align-items:flex-end!important;padding:0!important;}
  body[data-modal-type="team-members"] .modal-card{
    width:100%!important;max-width:560px!important;max-height:min(78dvh,720px)!important;
    margin:0 auto!important;border-radius:26px 26px 0 0!important;
    overflow:hidden!important;background:#f8f6ef!important;
    box-shadow:0 -18px 50px rgba(8,20,12,.26)!important;
  }
  body[data-modal-type="team-members"] .modal-head{padding:16px 18px 10px!important;min-height:58px!important;}
  body[data-modal-type="team-members"] .modal-head h2{font-size:20px!important;letter-spacing:-.02em!important;}
  body[data-modal-type="team-members"] .modal-body{
    padding:0 14px 14px!important;overflow-y:auto!important;overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;
  }
  body[data-modal-type="team-members"] .modal-foot{padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))!important;gap:10px!important;}
}
.team-members-intro{
  display:flex;align-items:center;gap:12px;margin:2px 0 12px;padding:12px 13px;
  border-radius:18px;background:linear-gradient(135deg,#183f26,#255d35);color:#fff;
  box-shadow:0 10px 24px rgba(27,71,41,.18);
}
.team-members-intro .team-members-hero>.avatar{width:48px!important;height:48px!important;min-width:48px!important;border-radius:50%!important;border:1px solid rgba(255,255,255,.55)!important;}
.team-members-intro>span:last-child{display:flex;flex-direction:column;min-width:0;gap:2px;}
.team-members-intro strong{font-size:15px;line-height:1.2;}
.team-members-intro em{font-style:normal;font-size:11px;line-height:1.35;color:rgba(255,255,255,.72);}
.team-members-list{display:flex;flex-direction:column;gap:8px;}
.team-member-row{
  width:100%;min-height:66px;display:flex;align-items:center;gap:12px;padding:9px 10px;
  border:1px solid rgba(42,72,45,.12);border-radius:17px;background:#fffdf8;color:#1c3022;
  text-align:left;box-shadow:0 5px 14px rgba(31,56,34,.055);font:inherit;
}
button.team-member-row{cursor:pointer;-webkit-tap-highlight-color:transparent;}
button.team-member-row:active{transform:scale(.992);background:#f1f6ed;}
.team-member-row .avatar{width:44px!important;height:44px!important;min-width:44px!important;border-radius:50%!important;font-size:14px!important;}
.team-member-copy{display:flex;flex:1 1 auto;min-width:0;flex-direction:column;gap:3px;}
.team-member-copy strong{font-size:14px;font-weight:900;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.team-member-copy em{font-size:11px;font-weight:650;font-style:normal;color:#6a766b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.team-member-message{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:12px;background:#e9f2e5;color:#245a34;}
.team-member-message svg{width:17px;height:17px;}
.team-member-you{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#637065;background:#edf0e8;border-radius:999px;padding:6px 9px;}
.team-member-row.is-self{background:#f2f0e9;box-shadow:none;}
.team-members-footnote{flex:1 1 auto;min-width:0;font-size:10.5px;color:#6a756d;line-height:1.25;}

/* ---- app-polish-v627.css ---- */
/* EarthRoster v627 — professional mobile messaging refinement.
   Visual-only change: preserves messaging data, sending, receipts, presence,
   All Team member directory, direct-message routing, and v625 scroll stability. */

@media (max-width:1023px){
  /* Full-screen thread surface */
  html body.ww-chat-active.chat-thread-open,
  html body.ww-chat-active.chat-thread-open #app,
  html body.ww-chat-active.chat-thread-open .shell,
  html body.ww-chat-active.chat-thread-open .main,
  html body.ww-chat-active.chat-thread-open main.content,
  html body.ww-chat-active.chat-thread-open .chat-shell,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread{
    background:#0d1418!important;
    background-image:none!important;
  }

  /* Header: larger identity, calmer spacing, clear tap target for All Team. */
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-thread-head,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .ct-head{
    min-height:94px!important;
    padding:14px 16px!important;
    gap:12px!important;
    background:linear-gradient(180deg,#182126 0%,#11191d 100%)!important;
    border-bottom:1px solid rgba(255,255,255,.085)!important;
    box-shadow:0 8px 24px rgba(0,0,0,.22)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-back,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-act{
    width:44px!important;height:44px!important;min-width:44px!important;
    border-radius:50%!important;
    background:#202b31!important;
    color:#eff4f1!important;
    border:1px solid rgba(255,255,255,.10)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-back svg,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-act svg{
    width:23px!important;height:23px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-card,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-team-card{
    gap:12px!important;
    padding:3px 5px 3px 0!important;
    border-radius:18px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-card>.avatar,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-team-card>.avatar,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-thread-head>.avatar{
    width:56px!important;height:56px!important;min-width:56px!important;
    border-radius:50%!important;
    border:1.5px solid rgba(244,239,222,.78)!important;
    box-shadow:0 0 0 4px rgba(112,165,111,.12),0 4px 12px rgba(0,0,0,.20)!important;
    font-size:17px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-name{
    font-size:22px!important;
    font-weight:820!important;
    line-height:1.10!important;
    letter-spacing:-.025em!important;
    color:#f8faf8!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-sub,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-presence{
    margin-top:5px!important;
    font-size:13.5px!important;
    line-height:1.15!important;
    font-weight:620!important;
    color:#aeb9b3!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-member-chev{
    width:34px!important;height:34px!important;flex:0 0 34px!important;
    background:rgba(255,255,255,.065)!important;
    color:#c8d2cc!important;
    border:1px solid rgba(255,255,255,.055)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-member-chev svg{transform:none!important;width:18px!important;height:18px!important;}

  /* Conversation surface */
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-scroll{
    padding:18px 15px 24px!important;
    gap:4px!important;
    background:
      radial-gradient(520px 360px at 102% -4%,rgba(56,105,75,.12),transparent 66%),
      linear-gradient(180deg,#10181d 0%,#0c1317 100%)!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
    scroll-behavior:auto!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-date-separator{
    margin:10px 0 12px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-date-separator span{
    min-height:30px!important;
    padding:6px 14px!important;
    font-size:12px!important;
    font-weight:760!important;
    color:#cbd4d8!important;
    background:#253139!important;
    border:1px solid rgba(255,255,255,.075)!important;
    box-shadow:0 3px 10px rgba(0,0,0,.16)!important;
  }

  /* Message rows: comfortable cards instead of squeezed chips. */
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg{
    width:100%!important;
    max-width:none!important;
    gap:10px!important;
    align-items:flex-end!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.group-start{
    margin-top:12px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.group-continuation{
    margin-top:3px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg-av{
    width:46px!important;min-width:46px!important;max-width:46px!important;
    height:46px!important;flex:0 0 46px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg-av .avatar{
    width:44px!important;height:44px!important;min-width:44px!important;
    border-radius:50%!important;
    border:1.5px solid rgba(245,242,225,.72)!important;
    box-shadow:0 0 0 3px rgba(255,255,255,.035),0 4px 12px rgba(0,0,0,.24)!important;
    font-size:13px!important;font-weight:760!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine) .bubble{
    width:fit-content!important;
    min-width:144px!important;
    max-width:min(82%,610px)!important;
    padding:13px 16px 11px!important;
    border-radius:19px!important;
    box-shadow:0 5px 16px rgba(0,0,0,.19)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine) .bubble{
    background:linear-gradient(180deg,#263139 0%,#202a31 100%)!important;
    color:#f5f7f8!important;
    border:1px solid rgba(183,201,211,.13)!important;
    border-bottom-left-radius:7px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble{
    min-width:126px!important;
    background:linear-gradient(145deg,#39784e 0%,#2a5e3d 100%)!important;
    color:#fff!important;
    border:1px solid rgba(173,220,182,.16)!important;
    border-bottom-right-radius:7px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-author{
    margin:0 0 5px!important;
    color:#63a86f!important;
    font-size:13px!important;
    font-weight:790!important;
    line-height:1.15!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-text{
    font-size:17px!important;
    font-weight:450!important;
    line-height:1.42!important;
    letter-spacing:-.008em!important;
    overflow-wrap:break-word!important;
    word-break:normal!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-meta{
    margin-top:8px!important;
    gap:6px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-meta time,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg-status,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .status-word{
    font-size:11.5px!important;
    line-height:1!important;
  }

  /* Premium bottom composer */
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer{
    grid-template-columns:50px minmax(0,1fr) 50px!important;
    gap:10px!important;
    min-height:76px!important;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))!important;
    background:linear-gradient(180deg,#171f24 0%,#11191d 100%)!important;
    border-top:1px solid rgba(255,255,255,.085)!important;
    box-shadow:0 -8px 24px rgba(0,0,0,.18)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .cattach,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .csend{
    width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .cattach{
    background:#202b31!important;
    color:#cbd5d0!important;
    border:1px solid rgba(255,255,255,.10)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .csend{
    background:#f4f0e5!important;
    color:#245f3b!important;
    border:1px solid rgba(255,255,255,.25)!important;
    box-shadow:0 5px 14px rgba(0,0,0,.20)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer textarea.chat-editbox,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer #chatInput,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .input{
    min-height:50px!important;
    height:50px!important;
    max-height:116px!important;
    padding:13px 17px!important;
    border-radius:25px!important;
    background:#202b31!important;
    color:#f4f7f5!important;
    border:1px solid rgba(255,255,255,.10)!important;
    font-size:16px!important;
    line-height:1.4!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer textarea.chat-editbox::placeholder,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer #chatInput::placeholder{
    color:#87948d!important;opacity:1!important;
  }
}

@media (max-width:380px){
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-thread-head,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .ct-head{padding-left:12px!important;padding-right:12px!important;gap:9px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-card>.avatar,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-team-card>.avatar{width:48px!important;height:48px!important;min-width:48px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-name{font-size:18.5px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine) .bubble{max-width:80%!important;min-width:118px!important;padding:11px 13px 9px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-text{font-size:15px!important;}
}


/* ---- inline style 147 ---- */

/* V628 — requested only: slimmer, cleaner, more professional mobile message cards. */
.chat-thread-head{padding:12px 14px!important;min-height:72px!important}
.chat-thread-head .avatar{width:46px!important;height:46px!important;border-radius:50%!important;box-shadow:0 4px 14px rgba(0,0,0,.18)!important}
.chat-thread-head .avatar svg{width:19px!important;height:19px!important}
.cth-name{font-size:17px!important;line-height:1.08!important;font-weight:900!important;letter-spacing:-.02em!important}
.cth-sub{font-size:12px!important;line-height:1.2!important;opacity:.88!important;margin-top:3px!important}
.chat-thread .chat-scroll{padding:14px 12px 18px!important;gap:7px!important;background:linear-gradient(180deg,#09131b 0%, #07111a 52%, #061018 100%)!important}
.chat-thread .msg{gap:8px!important;margin:0!important;align-items:flex-end!important}
.chat-thread .msg + .msg{margin-top:2px!important}
.chat-thread .msg-av{width:30px!important;min-width:30px!important;height:auto!important;align-items:flex-end!important;justify-content:center!important;padding-bottom:2px!important}
.chat-thread .msg-av .avatar{width:28px!important;height:28px!important;border-radius:50%!important;border:2px solid rgba(255,255,255,.18)!important;box-shadow:0 2px 8px rgba(0,0,0,.18)!important;font-size:11px!important;font-weight:900!important}
.chat-thread .bubble, .chat-thread .msg:not(.mine) .bubble, .chat-thread .msg.mine .bubble{max-width:min(70%, 300px)!important;padding:9px 11px 8px!important;border-radius:16px!important;box-shadow:0 5px 16px rgba(0,0,0,.12)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.chat-thread .msg:not(.mine) .bubble{border-radius:16px 16px 16px 6px!important;background:linear-gradient(180deg,rgba(39,49,60,.96),rgba(32,41,50,.96))!important;border:1px solid rgba(255,255,255,.06)!important}
.chat-thread .msg.mine .bubble{border-radius:16px 16px 6px 16px!important;background:linear-gradient(135deg,#4f8a58 0%, #3f794c 48%, #366c43 100%)!important;border:1px solid rgba(200,235,205,.12)!important}
.chat-thread .b-author{font-size:10.5px!important;line-height:1.15!important;font-weight:900!important;margin:0 0 3px!important;color:#6eb469!important;letter-spacing:-.01em!important}
.chat-thread .b-text{font-size:13.5px!important;line-height:1.34!important;font-weight:550!important;letter-spacing:-.01em!important;max-width:100%!important}
.chat-thread .b-meta{margin-top:5px!important;gap:4px!important;align-self:flex-end!important}
.chat-thread .b-meta time, .chat-thread .msg-status{font-size:10px!important;font-weight:620!important;opacity:.86!important}
.chat-thread .msg.mine .msg-status.sent{color:rgba(246,251,245,.82)!important}
.chat-thread .msg.mine .msg-status.seen{color:#d7f4da!important}
.chat-thread .chat-composer{padding:10px 12px calc(10px + max(0px,var(--safe-b)))!important;background:rgba(7,17,26,.96)!important;border-top:1px solid rgba(255,255,255,.05)!important}
.chat-thread .chat-composer .cattach{width:42px!important;height:42px!important;border-radius:21px!important;background:rgba(255,255,255,.08)!important;color:#f7fbf3!important;border:1px solid rgba(255,255,255,.08)!important}
.chat-thread .chat-composer .input{height:44px!important;border-radius:22px!important;background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.08)!important;color:#fff!important;padding:0 15px!important;box-shadow:none!important}
.chat-thread .chat-composer .input::placeholder,.chat-thread .chat-composer .chat-editbox:empty:before{color:rgba(236,243,236,.62)!important}
.chat-thread .chat-composer .csend{width:44px!important;height:44px!important;border-radius:22px!important;background:#edf5ea!important;color:#255132!important;box-shadow:0 4px 12px rgba(0,0,0,.14)!important}
@media(max-width:560px){
  .chat-thread-head{padding:12px 12px!important;min-height:70px!important}
  .chat-thread .chat-scroll{padding:13px 10px 18px!important}
  .chat-thread .msg-av{width:28px!important;min-width:28px!important}
  .chat-thread .msg-av .avatar{width:26px!important;height:26px!important;font-size:10.5px!important}
  .chat-thread .bubble, .chat-thread .msg:not(.mine) .bubble, .chat-thread .msg.mine .bubble{max-width:min(72%, 280px)!important;padding:8px 10px 7px!important}
  .chat-thread .b-text{font-size:13px!important;line-height:1.32!important}
}


/* ---- inline style 148 ---- */

/* V629 — ultra-slim mobile chat polish. Message logic untouched. */
body.chat-thread-open .chat-thread-head{
  min-height:62px!important;
  padding:9px 11px!important;
  gap:9px!important;
}
body.chat-thread-open .chat-thread-head .avatar{
  width:40px!important;height:40px!important;
  box-shadow:0 2px 8px rgba(0,0,0,.16)!important;
}
body.chat-thread-open .chat-thread-head .cth-back,
body.chat-thread-open .chat-thread-head .cth-act{
  width:38px!important;height:38px!important;min-width:38px!important;
  border-radius:19px!important;
}
body.chat-thread-open .cth-name{font-size:16px!important;line-height:1.05!important;font-weight:900!important}
body.chat-thread-open .cth-sub{font-size:11px!important;margin-top:2px!important;line-height:1.15!important}

body.chat-thread-open .chat-scroll{
  padding:10px 8px 12px!important;
  gap:4px!important;
  background:linear-gradient(180deg,#0a141b 0%,#071119 100%)!important;
}
body.chat-thread-open .date-sep,
body.chat-thread-open .date-pill{
  min-height:26px!important;
  padding:3px 10px!important;
  font-size:10.5px!important;
  line-height:18px!important;
  border-radius:13px!important;
  margin:3px auto 7px!important;
}
body.chat-thread-open .msg{
  gap:5px!important;
  margin:0!important;
  align-items:flex-end!important;
}
body.chat-thread-open .msg + .msg{margin-top:1px!important}
body.chat-thread-open .msg-av{
  width:25px!important;min-width:25px!important;
  padding-bottom:1px!important;
}
body.chat-thread-open .msg-av .avatar{
  width:23px!important;height:23px!important;
  font-size:9px!important;
  border-width:1.5px!important;
  box-shadow:0 1px 5px rgba(0,0,0,.18)!important;
}
body.chat-thread-open .bubble,
body.chat-thread-open .msg:not(.mine) .bubble,
body.chat-thread-open .msg.mine .bubble{
  width:fit-content!important;
  min-width:0!important;
  max-width:min(78%,330px)!important;
  padding:6px 9px 5px!important;
  border-radius:12px!important;
  box-shadow:0 2px 7px rgba(0,0,0,.10)!important;
}
body.chat-thread-open .msg:not(.mine) .bubble{
  border-radius:12px 12px 12px 4px!important;
  background:#222d35!important;
  border:1px solid rgba(255,255,255,.055)!important;
}
body.chat-thread-open .msg.mine .bubble{
  border-radius:12px 12px 4px 12px!important;
  background:linear-gradient(135deg,#477f51,#386b44)!important;
  border:1px solid rgba(202,232,205,.10)!important;
}
body.chat-thread-open .b-author{
  font-size:9.5px!important;
  line-height:1.05!important;
  margin:0 0 2px!important;
  font-weight:850!important;
  color:#69ad6e!important;
}
body.chat-thread-open .b-text{
  font-size:12.5px!important;
  line-height:1.28!important;
  font-weight:520!important;
  letter-spacing:0!important;
}
body.chat-thread-open .b-meta{
  margin-top:3px!important;
  gap:4px!important;
  line-height:1!important;
}
body.chat-thread-open .b-meta time,
body.chat-thread-open .msg-status{
  font-size:9px!important;
  line-height:1!important;
  font-weight:620!important;
}
body.chat-thread-open .chat-composer{
  padding:7px 9px calc(7px + max(0px,var(--safe-b)))!important;
  gap:7px!important;
  background:rgba(8,18,26,.98)!important;
}
body.chat-thread-open .chat-composer .cattach,
body.chat-thread-open .chat-composer .csend{
  width:38px!important;height:38px!important;min-width:38px!important;border-radius:19px!important;
}
body.chat-thread-open .chat-composer .input,
body.chat-thread-open .chat-composer .chat-editbox{
  min-height:38px!important;height:38px!important;
  border-radius:19px!important;
  padding:8px 13px!important;
  font-size:13px!important;
  line-height:20px!important;
}
@media(max-width:400px){
  body.chat-thread-open .chat-scroll{padding-left:7px!important;padding-right:7px!important}
  body.chat-thread-open .bubble,
  body.chat-thread-open .msg:not(.mine) .bubble,
  body.chat-thread-open .msg.mine .bubble{max-width:79%!important;padding:6px 8px 5px!important}
  body.chat-thread-open .b-text{font-size:12.25px!important}
}


/* ---- inline style 149 ---- */

@media(max-width:1023px){
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-thread-head,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .ct-head{
    min-height:64px!important;padding:8px 10px!important;gap:8px!important;box-shadow:0 4px 12px rgba(0,0,0,.16)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-back,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-act{
    width:36px!important;height:36px!important;min-width:36px!important;border-radius:18px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-back svg,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-act svg{width:19px!important;height:19px!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-card>.avatar,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-team-card>.avatar,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-thread-head>.avatar{
    width:42px!important;height:42px!important;min-width:42px!important;font-size:13px!important;box-shadow:0 0 0 2px rgba(112,165,111,.10),0 2px 7px rgba(0,0,0,.17)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-card,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-team-card{gap:8px!important;padding:2px 3px 2px 0!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-name{font-size:17px!important;line-height:1.06!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-sub,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-presence{margin-top:2px!important;font-size:11px!important;line-height:1.08!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-member-chev{width:30px!important;height:30px!important;flex:0 0 30px!important}

  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-scroll{
    padding:9px 8px 13px!important;gap:3px!important;background:linear-gradient(180deg,#0d171d 0%,#091217 100%)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-date-separator{margin:5px 0 7px!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-date-separator span{
    min-height:24px!important;padding:3px 9px!important;font-size:10px!important;border-radius:12px!important;box-shadow:none!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg{gap:5px!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.group-start{margin-top:5px!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.group-continuation{margin-top:1px!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg-av{
    width:27px!important;min-width:27px!important;max-width:27px!important;height:27px!important;flex:0 0 27px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg-av .avatar{
    width:25px!important;height:25px!important;min-width:25px!important;font-size:9.5px!important;border-width:1px!important;box-shadow:0 1px 5px rgba(0,0,0,.18)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine) .bubble{
    width:fit-content!important;min-width:0!important;max-width:min(78%,330px)!important;padding:6px 9px 5px!important;border-radius:12px!important;box-shadow:0 2px 7px rgba(0,0,0,.11)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine) .bubble{background:#222c34!important;border-bottom-left-radius:4px!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble{background:linear-gradient(145deg,#477f51,#386b44)!important;border-bottom-right-radius:4px!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-author{margin:0 0 2px!important;font-size:9.5px!important;line-height:1.05!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-text{font-size:12.5px!important;line-height:1.27!important;font-weight:500!important;letter-spacing:0!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-meta{margin-top:3px!important;gap:4px!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-meta time,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg-status,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .status-word{font-size:9px!important;line-height:1!important}

  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer{
    grid-template-columns:38px minmax(0,1fr) 38px!important;gap:7px!important;min-height:54px!important;padding:7px 9px calc(7px + env(safe-area-inset-bottom,0px))!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .cattach,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .csend{width:38px!important;height:38px!important;min-width:38px!important;border-radius:19px!important}
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .input,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .chat-editbox{
    min-height:38px!important;height:38px!important;border-radius:19px!important;padding:8px 12px!important;font-size:13px!important;line-height:20px!important;
  }
}


/* ---- inline style 150 ---- */

/* V630 — final professional mobile chat proportions: slimmer, edge-aligned, restrained. */
@media(max-width:1023px){
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-thread-head,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .ct-head{
    min-height:58px!important; padding:7px 9px!important; gap:7px!important;
    background:linear-gradient(180deg,#121c23 0%,#0e171d 100%)!important;
    border-bottom:1px solid rgba(255,255,255,.055)!important; box-shadow:none!important;
  }
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-back,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-act{
    width:32px!important;height:32px!important;min-width:32px!important;border-radius:16px!important;
    background:rgba(255,255,255,.055)!important;border:1px solid rgba(255,255,255,.07)!important;box-shadow:none!important;
  }
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-back svg,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-act svg{width:17px!important;height:17px!important}
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-card>.avatar,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-team-card>.avatar,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-thread-head>.avatar{
    width:36px!important;height:36px!important;min-width:36px!important;font-size:11px!important;
    border:1px solid rgba(255,255,255,.16)!important;box-shadow:none!important;
  }
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-card,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-team-card{gap:7px!important;padding:0!important}
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-name{font-size:15px!important;line-height:1.05!important;font-weight:850!important;letter-spacing:-.015em!important}
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-sub,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-presence{font-size:9.5px!important;line-height:1.05!important;margin-top:2px!important;opacity:.78!important}
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-member-chev{width:26px!important;height:26px!important;flex:0 0 26px!important}

  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-scroll{
    padding:8px 7px 12px!important; gap:2px!important;
    background:linear-gradient(180deg,#0c151b 0%,#091217 100%)!important;
  }
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-date-separator{margin:4px 0 6px!important}
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-date-separator span{
    min-height:20px!important;padding:2px 8px!important;font-size:9px!important;line-height:16px!important;
    border-radius:10px!important;background:#26323a!important;border:1px solid rgba(255,255,255,.055)!important;box-shadow:none!important;
  }

  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg{gap:5px!important;margin:0!important;align-items:flex-end!important}
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.group-start{margin-top:4px!important}
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.group-continuation{margin-top:1px!important}
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg-av{
    width:24px!important;min-width:24px!important;max-width:24px!important;height:24px!important;flex:0 0 24px!important;padding-bottom:1px!important;
  }
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg-av .avatar{
    width:22px!important;height:22px!important;min-width:22px!important;font-size:8.5px!important;line-height:1!important;
    border:1px solid rgba(255,255,255,.17)!important;box-shadow:none!important;
  }

  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .bubble,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine) .bubble{
    width:fit-content!important;min-width:0!important;max-width:min(74%,310px)!important;
    padding:5px 8px 4px!important;border-radius:10px!important;box-shadow:none!important;
  }
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine) .bubble{
    background:#202a31!important;border:1px solid rgba(255,255,255,.055)!important;border-bottom-left-radius:3px!important;
  }
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble{
    background:linear-gradient(145deg,#43784d,#376641)!important;border:1px solid rgba(194,228,198,.09)!important;border-bottom-right-radius:3px!important;
  }
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-author{
    margin:0 0 1px!important;font-size:9px!important;line-height:1.05!important;font-weight:800!important;letter-spacing:0!important;color:#69ad6e!important;
  }
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-text{
    font-size:12px!important;line-height:1.22!important;font-weight:480!important;letter-spacing:0!important;
  }
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-meta{margin-top:2px!important;gap:3px!important;line-height:1!important}
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-meta time,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg-status,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .status-word{font-size:8px!important;line-height:1!important;font-weight:650!important;opacity:.76!important}

  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer{
    grid-template-columns:34px minmax(0,1fr) 34px!important;gap:6px!important;min-height:48px!important;
    padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px))!important;
    background:#0d171d!important;border-top:1px solid rgba(255,255,255,.055)!important;
  }
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .cattach,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .csend{
    width:34px!important;height:34px!important;min-width:34px!important;border-radius:17px!important;box-shadow:none!important;
  }
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .input,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-composer .chat-editbox{
    min-height:34px!important;height:34px!important;border-radius:17px!important;padding:6px 11px!important;font-size:12.5px!important;line-height:20px!important;
    background:#202a31!important;border:1px solid rgba(255,255,255,.06)!important;box-shadow:none!important;
  }
}
@media(max-width:400px){
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .bubble,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg.mine .bubble,
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg:not(.mine) .bubble{max-width:min(76%,286px)!important}
  body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .b-text{font-size:11.75px!important}
}


/* ---- inline style 151 ---- */

/* v639 — iPhone/PWA chat-header interaction repair.
   v630's compact override accidentally removed the top safe-area inset from
   open conversations, allowing the iOS status bar/Dynamic Island hit region
   to sit over Back / All Team / members. Keep the approved dark layout, but
   place all header actions below the safe area and guarantee real tap targets. */
@media (max-width:1023px){
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-thread-head,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .ct-head{
    min-height:calc(58px + env(safe-area-inset-top,0px))!important;
    padding:calc(7px + env(safe-area-inset-top,0px)) 9px 7px!important;
    position:relative!important;
    z-index:120!important;
    overflow:visible!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    -webkit-user-select:none!important;
    user-select:none!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-back,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-act,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-card,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-team-card{
    position:relative!important;
    z-index:2!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    -webkit-tap-highlight-color:rgba(255,255,255,.08)!important;
  }

  /* 44px is the reliable iPhone tap target. Visual styling remains the same. */
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-back,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-act{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    flex:0 0 44px!important;
    border-radius:22px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-back svg,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-act svg{
    width:20px!important;
    height:20px!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-card,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-team-card{
    min-height:44px!important;
    flex:1 1 auto!important;
    min-width:0!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .cth-team-card .cth-member-chev{
    pointer-events:none!important;
  }

  /* The scrolling conversation must never float above the interactive header. */
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-scroll{
    position:relative!important;
    z-index:1!important;
  }
}


/* ---- app-polish-v641.css ---- */
/* EarthRoster v641 — professional desktop roster board + scroll stability.
   Scope: desktop Roster week grid only. Existing shift click/open/action behaviour
   is intentionally preserved. */

@media (min-width:1024px){
  /* One vertical scroll owner: the application .main scroller. */
  body.ww-roster-active,
  body.ww-roster-active #app,
  body.ww-roster-active .shell,
  body.ww-roster-active .main,
  body.ww-roster-active .content,
  body.ww-roster-active .page{
    scroll-behavior:auto!important;
    overflow-anchor:none!important;
  }
  body.ww-roster-active .main,
  body.ww-roster-active .content{
    overflow-x:hidden!important;
    overscroll-behavior-x:none!important;
  }

  body.ww-roster-active .rwg-wrap,
  body.ww-roster-active .ww511-rwg-wrap{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    max-height:none!important;
    height:auto!important;
    margin-top:8px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    overscroll-behavior-x:contain!important;
    overscroll-behavior-y:auto!important;
    scroll-behavior:auto!important;
    overflow-anchor:none!important;
    scrollbar-gutter:auto!important;
    contain:layout style!important;
    border:1px solid #dfe6df!important;
    border-radius:14px!important;
    background:#fbfcfa!important;
    box-shadow:0 2px 10px rgba(25,43,29,.055)!important;
  }

  /* Responsive week sizing. Large desktops show the full week; smaller laptops
     keep horizontal movement inside the roster without allowing the page itself
     to drift sideways. */
  body.ww-roster-active .rwg-grid{
    grid-template-columns:140px repeat(7,minmax(128px,1fr))!important;
    min-width:1036px!important;
    width:100%!important;
    align-items:stretch!important;
  }
  body.ww-roster-active .rwg-corner,
  body.ww-roster-active .rwg-dayhead{
    padding:9px 8px!important;
    min-height:56px!important;
    background:#244a31!important;
    border-color:rgba(255,255,255,.09)!important;
  }
  body.ww-roster-active .rwg-dayhead.today{
    background:#2f6842!important;
    box-shadow:inset 0 -3px 0 #8fbd99!important;
  }
  body.ww-roster-active .rwg-corner{border-top-left-radius:13px!important;}
  body.ww-roster-active .rwg-corner strong{color:#fff!important;font-size:11px!important;}
  body.ww-roster-active .rwg-corner small{color:#c8d8cc!important;font-size:8.5px!important;}
  body.ww-roster-active .rwg-dow{font-size:9.5px!important;letter-spacing:.065em!important;color:#dbe7dd!important;opacity:1!important;}
  body.ww-roster-active .rwg-num{font-size:16px!important;line-height:1!important;color:#fff!important;}
  body.ww-roster-active .rwg-dayhrs{
    margin-top:3px!important;padding:2px 7px!important;font-size:8.5px!important;
    background:rgba(255,255,255,.12)!important;color:#eef5ef!important;border:1px solid rgba(255,255,255,.08)!important;
  }
  body.ww-roster-active .rwg-dayhrs-zero{color:#c3d0c5!important;background:rgba(255,255,255,.07)!important;}
  body.ww-roster-active .rwg-dayadd{
    width:20px!important;height:20px!important;top:6px!important;right:6px!important;
    border-radius:7px!important;background:rgba(255,255,255,.12)!important;
  }

  body.ww-roster-active .rwg-name{
    padding:9px!important;gap:8px!important;
    background:#f7f9f6!important;
    border-top-color:#e6ebe5!important;border-right-color:#e2e8e1!important;
    contain:layout style!important;
  }
  body.ww-roster-active .rwg-av{
    width:28px!important;height:28px!important;border-radius:9px!important;
    font-size:10px!important;background:#3f7650!important;box-shadow:none!important;
  }
  body.ww-roster-active .rwg-nametxt strong{font-size:11.5px!important;line-height:1.1!important;color:#223329!important;}
  body.ww-roster-active .rwg-nametxt em{font-size:9px!important;line-height:1.1!important;color:#758178!important;}

  body.ww-roster-active .rwg-cell{
    min-height:42px!important;
    padding:4px!important;
    gap:3px!important;
    background:#fcfdfb!important;
    border-top-color:#e8ece7!important;
    border-left-color:#edf0ec!important;
    contain:layout style!important;
    overflow:visible!important;
  }
  body.ww-roster-active .rwg-cell-add{
    min-height:25px!important;border-radius:8px!important;border-width:1px!important;
    opacity:0!important;transition:none!important;
  }
  body.ww-roster-active .rwg-cell:hover .rwg-cell-add{opacity:.56!important;}

  /* Job colour becomes a controlled accent instead of an unreadable saturated
     background. Text is always dark and high-contrast. */
  body.ww-roster-active .rwg-cell .rgc,
  body.ww-roster-active .rwg-cell .ww511-rgc{
    position:relative!important;
    min-height:48px!important;
    margin:0!important;
    border-radius:9px!important;
    overflow:hidden!important;
    background:linear-gradient(90deg,
      color-mix(in srgb,var(--accent,#527a5b) 10%,#ffffff 90%) 0%,
      #ffffff 72%)!important;
    border:1px solid color-mix(in srgb,var(--accent,#527a5b) 24%,#dfe5df 76%)!important;
    border-left:3px solid color-mix(in srgb,var(--accent,#527a5b) 78%,#31483a 22%)!important;
    box-shadow:0 1px 3px rgba(28,45,32,.08)!important;
    transform:none!important;
    transition:none!important;
    animation:none!important;
    filter:none!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    contain:layout style!important;
    isolation:isolate!important;
  }
  body.ww-roster-active .rwg-cell .rgc:hover{
    transform:none!important;
    border-color:color-mix(in srgb,var(--accent,#527a5b) 38%,#cfd8cf 62%)!important;
    box-shadow:0 2px 6px rgba(28,45,32,.11)!important;
    z-index:3!important;
  }
  body.ww-roster-active .rwg-cell .rgc-main{
    position:relative!important;
    z-index:1!important;
    min-height:48px!important;
    padding:5px 7px 5px 8px!important;
    background:transparent!important;
  }
  body.ww-roster-active .rwg-cell .rgc-row1{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:5px!important;
    min-height:0!important;
    align-items:center!important;
    overflow:hidden!important;
  }
  body.ww-roster-active .rwg-cell .rgc-time{
    display:block!important;
    width:auto!important;max-width:100%!important;height:auto!important;
    min-width:0!important;
    padding:0!important;
    border:0!important;border-radius:0!important;background:transparent!important;
    color:#516057!important;
    font-size:9.2px!important;font-weight:750!important;line-height:1.12!important;letter-spacing:-.015em!important;
    text-align:left!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  }
  body.ww-roster-active .rwg-cell .rgc-dur{
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    height:17px!important;min-height:17px!important;width:auto!important;min-width:0!important;
    padding:0 5px!important;border-radius:999px!important;
    background:#f1f4f1!important;border:1px solid #e1e7e1!important;
    color:#526159!important;font-size:7.9px!important;font-weight:850!important;line-height:17px!important;letter-spacing:0!important;
    box-shadow:none!important;white-space:nowrap!important;
  }
  body.ww-roster-active .rwg-cell .rgc-row2{
    margin-top:3px!important;gap:4px!important;min-width:0!important;align-items:center!important;
  }
  body.ww-roster-active .rwg-cell .rgc-dot{
    width:5px!important;height:5px!important;min-width:5px!important;box-shadow:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc-dot.pub{background:#4d815d!important;}
  body.ww-roster-active .rwg-cell .rgc-dot.draft{background:#b78334!important;}
  body.ww-roster-active .rwg-cell .rgc-client{
    color:#223329!important;
    font-size:10.5px!important;font-weight:850!important;line-height:1.12!important;letter-spacing:-.01em!important;
    white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  }
  body.ww-roster-active .rwg-cell .ww511-rgc-bill{
    margin-top:2px!important;
    padding-right:56px!important;
    color:#7a867e!important;
    font-size:7.6px!important;font-weight:650!important;line-height:1.05!important;
    white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  }

  body.ww-roster-active .rwg-cell .rgc.draft{
    background:#fffdf9!important;
    border:1px dashed #c7ae7a!important;
    border-left:3px solid #b38436!important;
    box-shadow:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc.draft .rgc-time,
  body.ww-roster-active .rwg-cell .rgc.draft .rgc-client{color:#5d4d31!important;}

  /* Employee response states. Rejected changes the entire card so it cannot be
     mistaken for an ordinary shift. */
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-accepted{
    background:linear-gradient(90deg,#f1f8f2 0%,#ffffff 70%)!important;
    border-color:#b7d2bd!important;
    border-left-color:#4d835b!important;
    box-shadow:0 1px 3px rgba(48,91,58,.09)!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected{
    opacity:1!important;
    background:linear-gradient(90deg,#fff0ef 0%,#fff9f8 72%)!important;
    border:1px solid #e1a4a0!important;
    border-left:4px solid #bf4b49!important;
    box-shadow:0 1px 4px rgba(151,54,50,.13)!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-time,
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-client{color:#7f302f!important;}
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-dur{
    color:#823836!important;background:#fff5f4!important;border-color:#efcfcc!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .ww511-rgc-bill{color:#9a5552!important;}
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-dot{background:#bf4b49!important;}

  /* v641 final contrast lock: older published-card rules used white client
     text, white time chips and text shadows intended for saturated cards.
     This build uses pale cards, so explicitly neutralise those legacy styles
     with the same/higher specificity. */
  body.ww-roster-active .rwg-cell .rgc.pub .rgc-time{
    color:#4b5c52!important;
    -webkit-text-fill-color:#4b5c52!important;
    background:transparent!important;border:0!important;box-shadow:none!important;text-shadow:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc.pub .rgc-dur{
    color:#4f6056!important;
    -webkit-text-fill-color:#4f6056!important;
    background:#f1f4f1!important;border:1px solid #e0e7e0!important;box-shadow:none!important;text-shadow:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc.pub .rgc-client{
    color:#203128!important;
    -webkit-text-fill-color:#203128!important;
    text-shadow:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc.pub .ww511-rgc-bill{
    color:#78857c!important;
    -webkit-text-fill-color:#78857c!important;
    text-shadow:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc.pub .rgc-dot.pub{
    background:#4d815d!important;box-shadow:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-accepted .rgc-client{
    color:#284332!important;-webkit-text-fill-color:#284332!important;text-shadow:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-accepted .rgc-time{
    color:#4b5c52!important;-webkit-text-fill-color:#4b5c52!important;text-shadow:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-client,
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-time{
    -webkit-text-fill-color:#7f302f!important;text-shadow:none!important;
  }

  body.ww-roster-active .rwg-cell .ww546-rgc-response{
    position:absolute!important;
    right:6px!important;bottom:5px!important;z-index:2!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:3px!important;
    min-height:16px!important;height:16px!important;
    margin:0!important;padding:0 6px!important;
    border-radius:999px!important;
    font-size:7.2px!important;font-weight:900!important;line-height:16px!important;letter-spacing:.045em!important;
    text-transform:uppercase!important;white-space:nowrap!important;
    box-shadow:none!important;
  }
  body.ww-roster-active .rwg-cell .ww546-rgc-response svg{
    width:8px!important;height:8px!important;min-width:8px!important;stroke-width:2.6!important;
  }
  body.ww-roster-active .rwg-cell .ww546-rgc-response.is-accepted{
    background:#e7f2e9!important;color:#356d42!important;border:1px solid #c3dbc8!important;
  }
  body.ww-roster-active .rwg-cell .ww546-rgc-response.is-rejected{
    background:#bd4948!important;color:#fff!important;border:1px solid #aa3d3d!important;
  }

  /* Existing action controls remain, but reveal as an overlay instead of
     changing the card's height. This prevents hover/layout jumps. */
  body.ww-roster-active .rwg-cell .rgc-tools{
    position:absolute!important;
    left:4px!important;right:4px!important;bottom:3px!important;z-index:6!important;
    display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:3px!important;
    width:auto!important;height:22px!important;max-height:22px!important;
    margin:0!important;padding:2px 3px!important;
    opacity:0!important;overflow:visible!important;pointer-events:none!important;
    border-radius:7px!important;
    background:rgba(255,255,255,.96)!important;border:1px solid #e0e6df!important;
    box-shadow:0 2px 8px rgba(24,42,28,.12)!important;
    transform:none!important;transition:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc:hover .rgc-tools,
  body.ww-roster-active .rwg-cell .rgc:focus-within .rgc-tools{
    opacity:1!important;pointer-events:auto!important;padding:2px 3px!important;max-height:22px!important;
  }
  body.ww-roster-active .rwg-cell .rgc-tool{
    flex:0 0 18px!important;width:18px!important;height:18px!important;min-width:18px!important;
    padding:0!important;border-radius:5px!important;border:0!important;
    background:#f4f6f4!important;box-shadow:none!important;
    transform:none!important;transition:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc-tool svg{width:10px!important;height:10px!important;}
  body.ww-roster-active .rwg-cell .rgc-tool:hover{transform:none!important;box-shadow:none!important;}

  body.ww-roster-active .rwg-wrap *,
  body.ww-roster-active .rwg-wrap *::before,
  body.ww-roster-active .rwg-wrap *::after{
    animation:none!important;
    scroll-behavior:auto!important;
  }
}

@media (min-width:1024px) and (max-width:1279px){
  body.ww-roster-active .rwg-grid{
    grid-template-columns:136px repeat(7,minmax(124px,1fr))!important;
    min-width:1008px!important;
  }
  body.ww-roster-active .rwg-cell .rgc-client{font-size:10px!important;}
  body.ww-roster-active .rwg-cell .rgc-time{font-size:8.8px!important;}
}

@media (min-width:1600px){
  body.ww-roster-active .rwg-grid{
    grid-template-columns:156px repeat(7,minmax(0,1fr))!important;
    min-width:0!important;
  }
}


/* ---- app-polish-v644-bundle-4.css ---- */
/* ---- app-polish-v642.css ---- */
/* EarthRoster v642 — wider professional roster cards + stronger colour identity.
   Scope: desktop roster board only. Preserves v641 click/open behaviour and
   one-owner vertical scrolling. */

@media (min-width:1024px){
  /* Give each day a little more horizontal breathing room. The roster owns
     horizontal overflow only; v641 still owns vertical scroll handoff. */
  body.ww-roster-active .rwg-grid{
    grid-template-columns:126px repeat(7,minmax(146px,1fr))!important;
    min-width:1148px!important;
  }

  body.ww-roster-active .rwg-name{
    padding:9px 8px!important;
  }

  body.ww-roster-active .rwg-cell{
    padding:5px!important;
    gap:4px!important;
  }

  /* Stronger job-colour identity without returning to saturated blocks. */
  body.ww-roster-active .rwg-cell .rgc,
  body.ww-roster-active .rwg-cell .ww511-rgc{
    min-height:56px!important;
    border-radius:10px!important;
    background:linear-gradient(112deg,
      color-mix(in srgb,var(--accent,#527a5b) 25%,#ffffff 75%) 0%,
      color-mix(in srgb,var(--accent,#527a5b) 13%,#ffffff 87%) 52%,
      #ffffff 100%)!important;
    border:1px solid color-mix(in srgb,var(--accent,#527a5b) 36%,#d9e0da 64%)!important;
    border-left:4px solid color-mix(in srgb,var(--accent,#527a5b) 88%,#24362a 12%)!important;
    box-shadow:0 2px 5px rgba(26,43,31,.09)!important;
  }
  body.ww-roster-active .rwg-cell .rgc:hover{
    border-color:color-mix(in srgb,var(--accent,#527a5b) 50%,#cbd4cc 50%)!important;
    border-left-color:color-mix(in srgb,var(--accent,#527a5b) 92%,#24362a 8%)!important;
    box-shadow:0 3px 8px rgba(26,43,31,.12)!important;
  }

  body.ww-roster-active .rwg-cell .rgc-main{
    min-height:56px!important;
    padding:7px 9px!important;
  }
  body.ww-roster-active .rwg-cell .rgc-row1{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:8px!important;
  }
  body.ww-roster-active .rwg-cell .rgc-time{
    font-size:9.4px!important;
    line-height:1.15!important;
  }
  body.ww-roster-active .rwg-cell .rgc-dur{
    height:18px!important;
    min-height:18px!important;
    padding:0 6px!important;
    font-size:8px!important;
    line-height:18px!important;
    background:rgba(255,255,255,.78)!important;
    border-color:rgba(76,96,82,.13)!important;
  }
  body.ww-roster-active .rwg-cell .rgc-row2{
    margin-top:4px!important;
    gap:5px!important;
  }
  body.ww-roster-active .rwg-cell .rgc-client{
    font-size:10.7px!important;
    line-height:1.14!important;
    color:#1f3026!important;
    -webkit-text-fill-color:#1f3026!important;
  }
  body.ww-roster-active .rwg-cell .ww511-rgc-bill{
    margin-top:3px!important;
    padding-right:0!important;
    font-size:7.8px!important;
    line-height:1.1!important;
    color:#6f7b73!important;
    -webkit-text-fill-color:#6f7b73!important;
  }

  /* Published cards keep their own colour. Accepted is a polished status,
     not a replacement green card, so blue/purple/orange jobs stay distinct. */
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-accepted{
    background:linear-gradient(112deg,
      color-mix(in srgb,var(--accent,#527a5b) 25%,#ffffff 75%) 0%,
      color-mix(in srgb,var(--accent,#527a5b) 13%,#ffffff 87%) 52%,
      #ffffff 100%)!important;
    border-color:color-mix(in srgb,var(--accent,#527a5b) 38%,#d5ded6 62%)!important;
    border-left-color:color-mix(in srgb,var(--accent,#527a5b) 88%,#294130 12%)!important;
    box-shadow:0 2px 5px rgba(26,43,31,.09), inset 0 0 0 1px rgba(65,126,79,.10)!important;
  }

  /* Rejected is unmistakable, but still restrained and professional. */
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected{
    background:linear-gradient(112deg,#f7d9d7 0%,#fdebea 54%,#fff8f7 100%)!important;
    border:1px solid #d98b86!important;
    border-left:4px solid #b83f3d!important;
    box-shadow:0 2px 6px rgba(151,54,50,.14)!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-time,
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-client{
    color:#672927!important;
    -webkit-text-fill-color:#672927!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .ww511-rgc-bill{
    color:#8c4d49!important;
    -webkit-text-fill-color:#8c4d49!important;
  }

  /* Reserve a dedicated footer lane whenever an employee response exists.
     This prevents ACCEPTED / REJECTED from covering the client name, time or
     billing line even at narrower laptop widths. */
  body.ww-roster-active .rwg-cell .rgc-main:has(.ww546-rgc-response){
    min-height:68px!important;
    padding-bottom:27px!important;
  }
  body.ww-roster-active .rwg-cell .rgc:has(.ww546-rgc-response){
    min-height:68px!important;
  }
  body.ww-roster-active .rwg-cell .rgc-main:has(.ww546-rgc-response) .ww511-rgc-bill{
    max-width:calc(100% - 74px)!important;
    padding-right:0!important;
  }

  body.ww-roster-active .rwg-cell .ww546-rgc-response{
    right:7px!important;
    bottom:6px!important;
    min-height:18px!important;
    height:18px!important;
    padding:0 7px!important;
    border-radius:6px!important;
    font-size:7.4px!important;
    font-weight:900!important;
    line-height:18px!important;
    letter-spacing:.055em!important;
    box-shadow:0 1px 2px rgba(30,49,34,.06)!important;
  }
  body.ww-roster-active .rwg-cell .ww546-rgc-response svg{
    width:8px!important;
    height:8px!important;
  }
  body.ww-roster-active .rwg-cell .ww546-rgc-response.is-accepted{
    background:#e4f1e7!important;
    color:#2d6b3c!important;
    border:1px solid #b4d0bb!important;
  }
  body.ww-roster-active .rwg-cell .ww546-rgc-response.is-rejected{
    background:#b83f3d!important;
    color:#fff!important;
    border:1px solid #a73735!important;
  }

  /* Draft remains distinct from both published and response states. */
  body.ww-roster-active .rwg-cell .rgc.draft{
    background:linear-gradient(112deg,#fff4da 0%,#fffaf0 58%,#ffffff 100%)!important;
    border:1px dashed #c59a4f!important;
    border-left:4px solid #ad7721!important;
  }

  /* Action controls remain overlay-only to avoid card reflow/jitter. */
  body.ww-roster-active .rwg-cell .rgc-tools{
    left:6px!important;
    right:6px!important;
    bottom:5px!important;
  }
  body.ww-roster-active .rwg-cell .rgc:has(.ww546-rgc-response) .rgc-tools{
    bottom:4px!important;
  }
}

@media (min-width:1024px) and (max-width:1279px){
  body.ww-roster-active .rwg-grid{
    grid-template-columns:122px repeat(7,minmax(142px,1fr))!important;
    min-width:1116px!important;
  }
}

@media (min-width:1600px){
  body.ww-roster-active .rwg-grid{
    grid-template-columns:138px repeat(7,minmax(148px,1fr))!important;
    min-width:1174px!important;
  }
}

/* ---- app-polish-v643.css ---- */
/* EarthRoster v643 — slimmer rectangular roster cards, guaranteed client-total line,
   clearer job colours and unmistakable rejected state.
   Scope: desktop admin roster board only. v641 scroll handoff remains unchanged. */

@media (min-width:1024px){
  /* More horizontal card room. Keep vertical scrolling with the page and allow
     the roster wrapper to own horizontal overflow only when required. */
  body.ww-roster-active .rwg-grid{
    grid-template-columns:126px repeat(7,minmax(164px,1fr))!important;
    min-width:1274px!important;
  }
  body.ww-roster-active .rwg-cell{
    padding:4px 5px!important;
    gap:4px!important;
  }

  /* Slimmer, more rectangular cards. */
  body.ww-roster-active .rwg-cell .rgc,
  body.ww-roster-active .rwg-cell .ww511-rgc{
    min-height:51px!important;
    border-radius:9px!important;
    background:
      linear-gradient(108deg,
        color-mix(in srgb,var(--accent,#527a5b) 34%,#ffffff 66%) 0%,
        color-mix(in srgb,var(--accent,#527a5b) 21%,#ffffff 79%) 48%,
        color-mix(in srgb,var(--accent,#527a5b) 10%,#ffffff 90%) 100%)!important;
    border:1px solid color-mix(in srgb,var(--accent,#527a5b) 52%,#d5ddd6 48%)!important;
    border-left:4px solid color-mix(in srgb,var(--accent,#527a5b) 94%,#25372b 6%)!important;
    box-shadow:0 2px 5px rgba(27,43,32,.10)!important;
    overflow:hidden!important;
  }
  body.ww-roster-active .rwg-cell .rgc:hover{
    border-color:color-mix(in srgb,var(--accent,#527a5b) 62%,#cbd5cd 38%)!important;
    border-left-color:color-mix(in srgb,var(--accent,#527a5b) 98%,#233429 2%)!important;
    box-shadow:0 3px 8px rgba(27,43,32,.13)!important;
  }

  /* Three compact information rows. The footer is a real grid row, so Client
     total cannot disappear underneath Accepted / Rejected. */
  body.ww-roster-active .rwg-cell .rgc-main{
    min-height:51px!important;
    padding:5px 8px 5px 9px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-rows:auto auto auto!important;
    column-gap:4px!important;
    row-gap:2px!important;
    align-content:center!important;
  }
  body.ww-roster-active .rwg-cell .rgc-row1{
    grid-column:1 / -1!important;
    grid-row:1!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:8px!important;
    min-width:0!important;
  }
  body.ww-roster-active .rwg-cell .rgc-row2{
    grid-column:1 / -1!important;
    grid-row:2!important;
    margin-top:0!important;
    gap:5px!important;
    min-width:0!important;
  }
  body.ww-roster-active .rwg-cell .rgc-time{
    font-size:9.6px!important;
    line-height:1.12!important;
    color:#35483d!important;
    -webkit-text-fill-color:#35483d!important;
  }
  body.ww-roster-active .rwg-cell .rgc-dur{
    height:16px!important;
    min-height:16px!important;
    padding:0 6px!important;
    font-size:7.8px!important;
    line-height:16px!important;
    color:#405248!important;
    -webkit-text-fill-color:#405248!important;
    background:rgba(255,255,255,.70)!important;
    border:1px solid rgba(63,83,69,.13)!important;
  }
  body.ww-roster-active .rwg-cell .rgc-client{
    font-size:10.8px!important;
    line-height:1.12!important;
    font-weight:850!important;
    color:#1d3024!important;
    -webkit-text-fill-color:#1d3024!important;
  }
  body.ww-roster-active .rwg-cell .rgc-dot{
    width:5px!important;height:5px!important;min-width:5px!important;
  }

  /* Always-visible client total footer. */
  body.ww-roster-active .rwg-cell .ww511-rgc-bill{
    grid-column:1!important;
    grid-row:3!important;
    align-self:center!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    font-size:7.7px!important;
    line-height:1.1!important;
    font-weight:750!important;
    color:#5c6a61!important;
    -webkit-text-fill-color:#5c6a61!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    opacity:1!important;
    visibility:visible!important;
  }

  /* Status is now part of the footer row instead of floating over copy. */
  body.ww-roster-active .rwg-cell .ww546-rgc-response{
    position:static!important;
    grid-column:2!important;
    grid-row:3!important;
    align-self:center!important;
    justify-self:end!important;
    min-height:16px!important;
    height:16px!important;
    margin:0!important;
    padding:0 4px!important;
    border-radius:5px!important;
    font-size:6.8px!important;
    line-height:16px!important;
    font-weight:900!important;
    letter-spacing:.045em!important;
    box-shadow:none!important;
  }
  body.ww-roster-active .rwg-cell .ww546-rgc-response svg{
    width:8px!important;height:8px!important;min-width:8px!important;
  }
  body.ww-roster-active .rwg-cell .ww546-rgc-response.is-accepted{
    background:#dff0e3!important;
    color:#245f35!important;
    border:1px solid #a9cbb1!important;
  }

  /* Response cards no longer need extra height because the response has a
     dedicated footer cell. */
  body.ww-roster-active .rwg-cell .rgc-main:has(.ww546-rgc-response),
  body.ww-roster-active .rwg-cell .rgc:has(.ww546-rgc-response){
    min-height:51px!important;
  }
  body.ww-roster-active .rwg-cell .rgc-main:has(.ww546-rgc-response){
    padding-bottom:5px!important;
  }
  body.ww-roster-active .rwg-cell .rgc-main:has(.ww546-rgc-response) .ww511-rgc-bill{
    max-width:none!important;
    padding-right:0!important;
  }

  /* Accepted retains the original job colour. The green badge communicates
     response state without making every accepted job look identical. */
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-accepted{
    background:
      linear-gradient(108deg,
        color-mix(in srgb,var(--accent,#527a5b) 34%,#ffffff 66%) 0%,
        color-mix(in srgb,var(--accent,#527a5b) 21%,#ffffff 79%) 48%,
        color-mix(in srgb,var(--accent,#527a5b) 10%,#ffffff 90%) 100%)!important;
    border-color:color-mix(in srgb,var(--accent,#527a5b) 54%,#d0d9d1 46%)!important;
    border-left-color:color-mix(in srgb,var(--accent,#527a5b) 95%,#26382c 5%)!important;
    box-shadow:0 2px 5px rgba(27,43,32,.10), inset 0 0 0 1px rgba(48,113,63,.07)!important;
  }

  /* REJECTED: deliberately different from every normal job card.
     Strong red edge, cancellation tint, faint strike pattern and crossed-out
     job information make the state obvious before the badge is even read. */
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected{
    background:
      repeating-linear-gradient(135deg,rgba(167,48,45,.045) 0 7px,rgba(255,255,255,0) 7px 14px),
      linear-gradient(108deg,#f1c7c4 0%,#f8dedc 50%,#fff3f2 100%)!important;
    border:1px solid #c95d59!important;
    border-left:5px solid #9f2f2d!important;
    box-shadow:0 2px 7px rgba(132,39,37,.18), inset 0 0 0 1px rgba(177,55,52,.10)!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-time,
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-client{
    color:#702a28!important;
    -webkit-text-fill-color:#702a28!important;
    text-decoration-line:line-through!important;
    text-decoration-color:#a53a37!important;
    text-decoration-thickness:1.4px!important;
    text-decoration-skip-ink:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-dur{
    color:#7a302e!important;
    -webkit-text-fill-color:#7a302e!important;
    background:rgba(255,245,244,.75)!important;
    border-color:#dfa6a2!important;
    text-decoration-line:line-through!important;
    text-decoration-thickness:1px!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .ww511-rgc-bill{
    color:#8a4743!important;
    -webkit-text-fill-color:#8a4743!important;
    text-decoration-line:line-through!important;
    text-decoration-color:#b35a56!important;
    text-decoration-thickness:1px!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-dot{
    background:#a63633!important;
  }
  body.ww-roster-active .rwg-cell .ww546-rgc-response.is-rejected{
    background:#9f2f2d!important;
    color:#fff!important;
    border:1px solid #852624!important;
    box-shadow:0 1px 2px rgba(94,21,20,.18)!important;
  }

  /* Draft still remains distinct and readable. */
  body.ww-roster-active .rwg-cell .rgc.draft{
    background:linear-gradient(108deg,#f7e3b6 0%,#fff1d1 48%,#fff9ec 100%)!important;
    border:1px dashed #b9842f!important;
    border-left:4px solid #9c671c!important;
  }

  /* Keep tools overlay-only and away from normal text layout. */
  body.ww-roster-active .rwg-cell .rgc-tools{
    left:5px!important;
    right:5px!important;
    bottom:3px!important;
  }
}

@media (min-width:1024px) and (max-width:1279px){
  body.ww-roster-active .rwg-grid{
    grid-template-columns:122px repeat(7,minmax(158px,1fr))!important;
    min-width:1228px!important;
  }
}

@media (min-width:1600px){
  body.ww-roster-active .rwg-grid{
    grid-template-columns:136px repeat(7,minmax(170px,1fr))!important;
    min-width:1326px!important;
  }
}

/* ---- app-polish-v644.css ---- */
/* EarthRoster v644 — whole-app stability and responsiveness pass. */
html,body,#app,.shell,.main,.content,.page,#page{scroll-behavior:auto!important}
.main,.content,#page,.page{min-width:0!important}
/* Availability is horizontally scrollable, but must hand vertical motion back to the page. */
.avail-grid-wrap{
  overscroll-behavior-x:contain!important;
  overscroll-behavior-y:auto!important;
  scroll-behavior:auto!important;
  scroll-snap-type:none!important;
}
/* Other wide work grids should never create document-level sideways drift. */
.rwg-wrap{
  overscroll-behavior-x:contain!important;
  overscroll-behavior-y:auto!important;
  scroll-behavior:auto!important;
  scroll-snap-type:none!important;
}
.v213-filter-row{
  max-width:100%!important;
  min-width:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior-x:contain!important;
  overscroll-behavior-y:auto!important;
  scrollbar-width:none!important;
}
.v213-filter-row::-webkit-scrollbar{display:none!important}
.v213-filter{flex:0 0 auto!important}
.v644-booking-more{display:flex!important;justify-content:center!important;margin:5px 0 14px!important}
.v644-booking-more .btn{min-width:220px!important}
/* While a finger/trackpad is actively moving the mobile page, avoid costly decorative repaints.
   These return immediately when scrolling stops; the approved visual design is unchanged at rest. */
@media(max-width:1023px){
  body.ww536-user-scrolling .v213-card,
  body.ww536-user-scrolling .directory-card,
  body.ww536-user-scrolling .client-card,
  body.ww536-user-scrolling .employee-card,
  body.ww536-user-scrolling .doc-card,
  body.ww536-user-scrolling .folder-card,
  body.ww536-user-scrolling .notif-item,
  body.ww536-user-scrolling .appr-row,
  body.ww536-user-scrolling .timesheet-row,
  body.ww536-user-scrolling .ts-row,
  body.ww536-user-scrolling .rcard,
  body.ww536-user-scrolling .rwg-cell .rgc{
    box-shadow:none!important;
    filter:none!important;
    transition:none!important;
  }
  .main,.content,.page,#page{will-change:auto!important;transform:none!important}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important}
}
@media(max-width:520px){
  .v213-filter-row{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    overflow:visible!important;
    padding-bottom:0!important;
  }
  .v213-filter{width:100%!important;text-align:center!important;min-width:0!important;padding:9px 8px!important}
}

/* EarthRoster v645 — personal avatars for one-to-one employee conversations.
   Legacy private pair threads were stored as groups, which made every row use
   the same people icon. They now use the other participant's initials and a
   stable muted colour while real multi-person groups keep the group icon. */
body .chat-list.cv-list .cv-av .avatar.cv-private-peer{
  border-radius:50%!important;
  color:#fff!important;
  font-weight:850!important;
  letter-spacing:.02em!important;
  border:1px solid rgba(255,255,255,.20)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 3px 8px -7px rgba(0,0,0,.9)!important;
}
body .chat-list.cv-list .cv-av .avatar.cv-private-peer[data-c="0"]{background:linear-gradient(145deg,#6f9872,#426b4b)!important}
body .chat-list.cv-list .cv-av .avatar.cv-private-peer[data-c="1"]{background:linear-gradient(145deg,#61968e,#386a64)!important}
body .chat-list.cv-list .cv-av .avatar.cv-private-peer[data-c="2"]{background:linear-gradient(145deg,#678ba6,#405f7b)!important}
body .chat-list.cv-list .cv-av .avatar.cv-private-peer[data-c="3"]{background:linear-gradient(145deg,#7d76a2,#554f78)!important}
body .chat-list.cv-list .cv-av .avatar.cv-private-peer[data-c="4"]{background:linear-gradient(145deg,#98758a,#6e4e62)!important}
body .chat-list.cv-list .cv-av .avatar.cv-private-peer[data-c="5"]{background:linear-gradient(145deg,#a97763,#784b3b)!important}
body .chat-list.cv-list .cv-av .avatar.cv-private-peer[data-c="6"]{background:linear-gradient(145deg,#ae8b58,#7a6233)!important}
body .chat-list.cv-list .cv-av .avatar.cv-private-peer[data-c="7"]{background:linear-gradient(145deg,#869669,#5e6d42)!important}


/* ---- app-polish-v647.css ---- */
/* EarthRoster v647 — Desktop Messages overlay workspace
   Removes the harsh empty black desktop area and opens conversations as a
   focused floating panel over the Messages inbox with a softly blurred backdrop.
   Mobile chat behaviour remains unchanged. */

@media (min-width:1024px){
  body.ww-chat-active .main,
  body.ww-chat-active main.content,
  body.ww-chat-active .content{
    background:
      radial-gradient(880px 560px at 88% 8%,rgba(91,133,91,.13),transparent 62%),
      radial-gradient(760px 520px at 28% 98%,rgba(191,166,119,.12),transparent 64%),
      linear-gradient(145deg,#eef3e8 0%,#f7f4eb 54%,#f5f7ef 100%)!important;
  }

  /* Messages landing page: one intentional workspace, no black/dead strip. */
  .chat-shell.chat-list-only,
  .chat-shell.show-thread{
    position:relative!important;
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-height:560px!important;
    height:calc(100dvh - 132px)!important;
    margin:0!important;
    padding:18px 22px 22px!important;
    overflow:hidden!important;
    border-radius:0!important;
    background:
      radial-gradient(760px 520px at 100% 0%,rgba(94,141,98,.12),transparent 64%),
      radial-gradient(700px 500px at 38% 100%,rgba(197,174,127,.10),transparent 66%),
      linear-gradient(145deg,#edf3e8 0%,#f7f4eb 58%,#f3f6ee 100%)!important;
    box-shadow:none!important;
    isolation:isolate!important;
  }

  .chat-shell.chat-list-only .chat-list.cv-list,
  .chat-shell.show-thread .chat-list.cv-list{
    position:relative!important;
    z-index:1!important;
    display:flex!important;
    flex-direction:column!important;
    width:min(620px,100%)!important;
    max-width:620px!important;
    height:100%!important;
    min-height:0!important;
    padding:20px 22px!important;
    overflow:hidden!important;
    border:1px solid rgba(44,76,49,.11)!important;
    border-radius:28px!important;
    background:rgba(255,252,245,.94)!important;
    box-shadow:
      0 28px 74px -48px rgba(31,59,37,.42),
      0 10px 26px -20px rgba(38,64,42,.20)!important;
    backdrop-filter:saturate(1.04)!important;
  }

  .chat-shell.chat-list-only .cv-head,
  .chat-shell.chat-list-only .cv-search,
  .chat-shell.chat-list-only .cv-threads,
  .chat-shell.show-thread .cv-head,
  .chat-shell.show-thread .cv-search,
  .chat-shell.show-thread .cv-threads{
    width:100%!important;
    max-width:none!important;
  }

  .chat-shell.chat-list-only .cv-row,
  .chat-shell.show-thread .cv-row{
    padding-left:14px!important;
    padding-right:14px!important;
  }

  /* Open conversation: blur/dim the existing inbox rather than replacing it
     with a permanent second column. */
  .chat-shell.show-thread::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:20!important;
    background:rgba(18,35,24,.28)!important;
    -webkit-backdrop-filter:blur(7px) saturate(.86)!important;
    backdrop-filter:blur(7px) saturate(.86)!important;
    pointer-events:none!important;
  }

  .chat-shell.show-thread .chat-list.cv-list{
    filter:saturate(.90)!important;
    transform:scale(.995)!important;
    transform-origin:left center!important;
  }

  /* Floating conversation panel */
  .chat-shell.show-thread .chat-thread{
    position:absolute!important;
    z-index:30!important;
    top:24px!important;
    right:clamp(28px,4vw,58px)!important;
    bottom:24px!important;
    left:auto!important;
    display:flex!important;
    flex-direction:column!important;
    width:min(790px,calc(100% - 94px))!important;
    max-width:790px!important;
    min-width:560px!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:hidden!important;
    border:1px solid rgba(255,255,255,.09)!important;
    border-radius:30px!important;
    background:#10181c!important;
    box-shadow:
      0 42px 100px -34px rgba(6,19,11,.70),
      0 18px 48px -24px rgba(0,0,0,.48),
      0 0 0 1px rgba(16,40,25,.12)!important;
    animation:ww647ChatFloatIn .18s ease-out both!important;
  }

  @keyframes ww647ChatFloatIn{
    from{opacity:0;transform:translateY(8px) scale(.988)}
    to{opacity:1;transform:translateY(0) scale(1)}
  }

  .chat-shell.show-thread .chat-thread-head,
  .chat-shell.show-thread .ct-head{
    position:relative!important;
    z-index:3!important;
    flex:0 0 auto!important;
    min-height:82px!important;
    padding:13px 18px!important;
    gap:12px!important;
    background:linear-gradient(180deg,#182329 0%,#131d22 100%)!important;
    border-bottom:1px solid rgba(255,255,255,.075)!important;
    box-shadow:0 8px 26px rgba(0,0,0,.13)!important;
  }

  .chat-shell.show-thread .chat-thread .cth-back{
    display:grid!important;
    place-items:center!important;
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    flex:0 0 44px!important;
    border:1px solid rgba(255,255,255,.09)!important;
    border-radius:15px!important;
    background:#202c32!important;
    color:#edf3ef!important;
    cursor:pointer!important;
  }
  .chat-shell.show-thread .chat-thread .cth-back:hover{
    background:#28363d!important;
    transform:translateY(-1px)!important;
  }
  .chat-shell.show-thread .chat-thread .cth-back svg{width:19px!important;height:19px!important}

  .chat-shell.show-thread .chat-thread .cth-card,
  .chat-shell.show-thread .chat-thread .cth-team-card{
    flex:1 1 auto!important;
    min-width:0!important;
    gap:11px!important;
    color:#f6f8f6!important;
  }
  .chat-shell.show-thread .chat-thread .cth-card>.avatar,
  .chat-shell.show-thread .chat-thread .cth-team-card>.avatar,
  .chat-shell.show-thread .chat-thread .chat-thread-head>.avatar{
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    border-radius:50%!important;
    border:1px solid rgba(255,255,255,.24)!important;
    box-shadow:0 0 0 3px rgba(111,164,111,.10)!important;
  }
  .chat-shell.show-thread .chat-thread .cth-name{
    color:#f5f8f5!important;
    font-size:18px!important;
    font-weight:820!important;
    letter-spacing:-.02em!important;
  }
  .chat-shell.show-thread .chat-thread .cth-sub,
  .chat-shell.show-thread .chat-thread .cth-presence{
    color:#9eaca4!important;
    font-size:12.5px!important;
    font-weight:620!important;
  }
  .chat-shell.show-thread .chat-thread .cth-act,
  .chat-shell.show-thread .chat-thread .cth-member-chev{
    display:grid!important;
    place-items:center!important;
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    border:1px solid rgba(255,255,255,.08)!important;
    border-radius:14px!important;
    background:#202c32!important;
    color:#dce7e0!important;
  }

  .chat-shell.show-thread .workphoto-banner{
    flex:0 0 auto!important;
    background:#17252a!important;
    color:#dfe9e2!important;
    border-bottom:1px solid rgba(255,255,255,.065)!important;
  }

  .chat-shell.show-thread .chat-scroll{
    position:relative!important;
    z-index:1!important;
    flex:1 1 auto!important;
    min-height:0!important;
    height:auto!important;
    padding:22px 24px 28px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    background:
      radial-gradient(520px 340px at 102% -5%,rgba(58,104,76,.13),transparent 66%),
      linear-gradient(180deg,#10191e 0%,#0c1418 100%)!important;
  }

  .chat-shell.show-thread .chat-scroll .msg{
    max-width:100%!important;
  }
  .chat-shell.show-thread .chat-scroll .bubble,
  .chat-shell.show-thread .chat-scroll .msg.mine .bubble,
  .chat-shell.show-thread .chat-scroll .msg:not(.mine) .bubble{
    max-width:min(72%,560px)!important;
    border-radius:18px!important;
    padding:11px 14px 9px!important;
    box-shadow:0 7px 18px rgba(0,0,0,.16)!important;
  }
  .chat-shell.show-thread .chat-scroll .msg:not(.mine) .bubble{
    background:#222e34!important;
    color:#f5f7f6!important;
    border:1px solid rgba(255,255,255,.07)!important;
    border-bottom-left-radius:6px!important;
  }
  .chat-shell.show-thread .chat-scroll .msg.mine .bubble{
    background:linear-gradient(145deg,#477b53,#376543)!important;
    color:#fff!important;
    border:1px solid rgba(204,233,207,.10)!important;
    border-bottom-right-radius:6px!important;
  }
  .chat-shell.show-thread .chat-scroll .b-text{font-size:14px!important;line-height:1.38!important}
  .chat-shell.show-thread .chat-scroll .b-author{color:#74b078!important;font-size:11px!important}
  .chat-shell.show-thread .chat-scroll .b-meta,
  .chat-shell.show-thread .chat-scroll .b-meta time,
  .chat-shell.show-thread .chat-scroll .msg-status,
  .chat-shell.show-thread .chat-scroll .status-word{font-size:9.5px!important}

  .chat-shell.show-thread .chat-composer{
    position:relative!important;
    z-index:3!important;
    flex:0 0 auto!important;
    grid-template-columns:42px minmax(0,1fr) 42px!important;
    gap:9px!important;
    min-height:66px!important;
    padding:9px 12px!important;
    background:linear-gradient(180deg,#151f24 0%,#11191d 100%)!important;
    border-top:1px solid rgba(255,255,255,.075)!important;
    box-shadow:0 -8px 26px rgba(0,0,0,.14)!important;
  }
  .chat-shell.show-thread .chat-composer .cattach,
  .chat-shell.show-thread .chat-composer .csend{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    border-radius:14px!important;
  }
  .chat-shell.show-thread .chat-composer .cattach{
    background:#202b31!important;
    color:#b9c8bf!important;
    border:1px solid rgba(255,255,255,.08)!important;
  }
  .chat-shell.show-thread .chat-composer .csend{
    background:linear-gradient(145deg,#5e9a64,#427c4e)!important;
    color:#fff!important;
    border:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 6px 15px rgba(43,99,55,.25)!important;
  }
  .chat-shell.show-thread .chat-composer .chat-editbox,
  .chat-shell.show-thread .chat-composer #chatInput{
    min-height:42px!important;
    height:42px!important;
    max-height:120px!important;
    padding:10px 15px!important;
    border-radius:16px!important;
    background:#202b31!important;
    color:#f3f6f4!important;
    border:1px solid rgba(255,255,255,.08)!important;
    font-size:14px!important;
    line-height:1.45!important;
    box-shadow:none!important;
  }
  .chat-shell.show-thread .chat-composer .chat-editbox::placeholder,
  .chat-shell.show-thread .chat-composer #chatInput::placeholder{color:#829087!important;opacity:1!important}

  /* At smaller desktop/laptop widths, keep the floating panel comfortably
     inside the content without ever becoming a cramped second column. */
  @media (max-width:1260px){
    .chat-shell.chat-list-only .chat-list.cv-list,
    .chat-shell.show-thread .chat-list.cv-list{width:min(560px,100%)!important;max-width:560px!important}
    .chat-shell.show-thread .chat-thread{
      right:24px!important;
      width:min(720px,calc(100% - 64px))!important;
      max-width:720px!important;
      min-width:520px!important;
    }
  }
}

@media (min-width:1024px){
  /* Final specificity pass: older desktop chat rules used longer selectors.
     Keep the floating panel visually consistent and all text fully readable. */
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-scroll{
    background:
      radial-gradient(520px 340px at 102% -5%,rgba(58,104,76,.13),transparent 66%),
      linear-gradient(180deg,#10191e 0%,#0c1418 100%)!important;
    color:#f4f7f5!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg:not(.mine) .bubble{
    background:linear-gradient(180deg,#253139 0%,#202a31 100%)!important;
    color:#f5f7f8!important;
    border:1px solid rgba(190,207,216,.11)!important;
    border-bottom-left-radius:6px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg.mine .bubble{
    background:linear-gradient(145deg,#477b53,#376543)!important;
    color:#fff!important;
    border:1px solid rgba(204,233,207,.10)!important;
    border-bottom-right-radius:6px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg:not(.mine) .b-text,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg:not(.mine) .b-meta,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg:not(.mine) .b-meta time{
    color:#f1f5f3!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg.mine .b-text{
    color:#fff!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer{
    background:linear-gradient(180deg,#151f24 0%,#11191d 100%)!important;
    border-top:1px solid rgba(255,255,255,.075)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .chat-editbox,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer #chatInput{
    background:#202b31!important;
    color:#f3f6f4!important;
    border:1px solid rgba(255,255,255,.08)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .cattach{
    background:#202b31!important;
    color:#b9c8bf!important;
    border:1px solid rgba(255,255,255,.08)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .csend{
    background:linear-gradient(145deg,#5e9a64,#427c4e)!important;
    color:#fff!important;
    border:1px solid rgba(255,255,255,.10)!important;
  }
}
@media (min-width:1024px){
  .chat-shell.show-thread::before{pointer-events:auto!important;}
  .chat-shell.show-thread .chat-list.cv-list{pointer-events:none!important;user-select:none!important;}
  .chat-shell.show-thread .chat-thread{pointer-events:auto!important;}
}


/* ---- app-polish-v648.css ---- */
/* EarthRoster v648 — desktop Messages compact split-workspace refinement
   Requested: slimmer chat pane, no blurred/dimmed backdrop, and keep the
   conversation list fully visible/clickable for rapid switching. Mobile stays
   full-screen and untouched. */

@media (min-width:1024px){
  /* No overlay scrim or blur. The inbox remains live and readable underneath. */
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread::before,
  .chat-shell.show-thread::before{
    content:none!important;
    display:none!important;
    background:transparent!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    pointer-events:none!important;
  }

  /* Keep the left conversation rail active while a chat is open. */
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-list.cv-list,
  .chat-shell.show-thread .chat-list.cv-list{
    pointer-events:auto!important;
    user-select:auto!important;
    filter:none!important;
    transform:none!important;
    opacity:1!important;
    z-index:2!important;
    width:min(545px,44%)!important;
    max-width:545px!important;
    padding:18px 18px!important;
    transition:none!important;
  }
  .chat-shell.show-thread .chat-list.cv-list .cv-row{
    cursor:pointer!important;
  }
  .chat-shell.show-thread .chat-list.cv-list .cv-row:hover{
    transform:none!important;
    box-shadow:0 7px 18px -16px rgba(31,65,38,.38)!important;
    border-color:rgba(52,91,58,.18)!important;
  }

  /* Slimmer floating chat: clearly separated, but no longer a huge modal. */
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread,
  .chat-shell.show-thread .chat-thread{
    top:18px!important;
    right:22px!important;
    bottom:18px!important;
    width:520px!important;
    max-width:calc(54% - 18px)!important;
    min-width:470px!important;
    border-radius:24px!important;
    box-shadow:
      0 24px 56px -30px rgba(8,27,14,.46),
      0 8px 24px -18px rgba(0,0,0,.30),
      0 0 0 1px rgba(255,255,255,.045)!important;
    animation:ww648ChatIn .14s ease-out both!important;
  }
  @keyframes ww648ChatIn{
    from{opacity:0;transform:translateX(8px)}
    to{opacity:1;transform:translateX(0)}
  }

  /* Compact header and composer reinforce the slimmer, cleaner silhouette. */
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-thread-head,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .ct-head{
    min-height:68px!important;
    padding:9px 12px!important;
    gap:9px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-back{
    width:38px!important;height:38px!important;min-width:38px!important;flex-basis:38px!important;border-radius:12px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-card>.avatar,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-team-card>.avatar,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-thread-head>.avatar{
    width:42px!important;height:42px!important;min-width:42px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-name{font-size:16px!important}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-sub,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-presence{font-size:11px!important}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-act,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-member-chev{
    width:36px!important;height:36px!important;min-width:36px!important;border-radius:12px!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-scroll{
    padding:18px 18px 22px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-scroll .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-scroll .msg.mine .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-scroll .msg:not(.mine) .bubble{
    max-width:min(82%,410px)!important;
    padding:9px 12px 8px!important;
    border-radius:15px!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer{
    grid-template-columns:38px minmax(0,1fr) 38px!important;
    min-height:58px!important;
    padding:8px 10px!important;
    gap:7px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .cattach,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .csend{
    width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;border-radius:13px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .chat-editbox,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer #chatInput{
    min-height:38px!important;height:38px!important;padding:8px 12px!important;border-radius:14px!important;font-size:13px!important;
  }

  /* Laptop: keep both inbox and chat useful without overlap. */
  @media (max-width:1380px){
    html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-list.cv-list,
    .chat-shell.show-thread .chat-list.cv-list{
      width:min(490px,43%)!important;
      max-width:490px!important;
      padding:16px!important;
    }
    html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread,
    .chat-shell.show-thread .chat-thread{
      right:18px!important;
      width:485px!important;
      min-width:445px!important;
      max-width:54%!important;
    }
  }
}


/* ---- app-polish-v649.css ---- */
/* EarthRoster v649 — refined direct-message header + composer
   Requested: remove role subtitle, redesign initials badge, and make the
   desktop/laptop message composer cleaner, slimmer and less pill-like.
   Keeps v648's narrow chat pane and clickable conversation rail. */

/* Direct message header: name only, no role/presence subtitle. */
.chat-thread .cth-dm-card .cth-info{
  display:flex!important;
  align-items:center!important;
  min-height:36px!important;
}
.chat-thread .cth-dm-card .cth-sub,
.chat-thread .cth-dm-card .cth-presence{display:none!important}
.chat-thread .cth-dm-card .cth-name{
  margin:0!important;
  line-height:1.15!important;
}

/* Personal monogram — cleaner soft square instead of the old double-ring circle. */
.chat-thread .cth-dm-card>.avatar.cv-private-peer{
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  border-radius:11px!important;
  border:1px solid rgba(255,255,255,.13)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 5px 14px -10px rgba(0,0,0,.9)!important;
  font-size:11.5px!important;
  font-weight:800!important;
  letter-spacing:.055em!important;
  color:rgba(255,255,255,.96)!important;
}
/* Give the header monogram the same stable per-person hue system as the list. */
.chat-thread .cth-dm-card>.avatar.cv-private-peer[data-c="0"]{background:linear-gradient(145deg,#68896d,#405e46)!important}
.chat-thread .cth-dm-card>.avatar.cv-private-peer[data-c="1"]{background:linear-gradient(145deg,#5d8782,#3c625e)!important}
.chat-thread .cth-dm-card>.avatar.cv-private-peer[data-c="2"]{background:linear-gradient(145deg,#647f95,#40596f)!important}
.chat-thread .cth-dm-card>.avatar.cv-private-peer[data-c="3"]{background:linear-gradient(145deg,#77708f,#514b6a)!important}
.chat-thread .cth-dm-card>.avatar.cv-private-peer[data-c="4"]{background:linear-gradient(145deg,#8d6d7e,#654958)!important}
.chat-thread .cth-dm-card>.avatar.cv-private-peer[data-c="5"]{background:linear-gradient(145deg,#976b59,#6a4739)!important}
.chat-thread .cth-dm-card>.avatar.cv-private-peer[data-c="6"]{background:linear-gradient(145deg,#9b8055,#6d5937)!important}
.chat-thread .cth-dm-card>.avatar.cv-private-peer[data-c="7"]{background:linear-gradient(145deg,#7b8961,#56633f)!important}

/* Message-row personal avatar: compact squircle so the visual language matches. */
.chat-thread .msg-av .avatar{
  border-radius:8px!important;
  border:1px solid rgba(255,255,255,.11)!important;
  box-shadow:none!important;
  font-weight:800!important;
  letter-spacing:.04em!important;
}

@media (min-width:1024px){
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-thread-head,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .ct-head{
    min-height:60px!important;
    padding:8px 10px!important;
    gap:8px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-back{
    width:34px!important;height:34px!important;min-width:34px!important;flex-basis:34px!important;
    border-radius:10px!important;
    background:rgba(255,255,255,.045)!important;
    border:1px solid rgba(255,255,255,.08)!important;
    box-shadow:none!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-name{
    font-size:15px!important;
    font-weight:760!important;
    letter-spacing:-.01em!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-act{
    width:34px!important;height:34px!important;min-width:34px!important;border-radius:10px!important;
    background:rgba(255,255,255,.04)!important;
    border:1px solid rgba(255,255,255,.08)!important;
    box-shadow:none!important;
  }

  /* Composer: low-profile rectangular controls, not three competing circles/pills. */
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer{
    grid-template-columns:34px minmax(0,1fr) 36px!important;
    align-items:center!important;
    min-height:54px!important;
    padding:7px 9px!important;
    gap:7px!important;
    background:linear-gradient(180deg,#121b20,#10181d)!important;
    border-top:1px solid rgba(255,255,255,.07)!important;
    box-shadow:0 -8px 20px -18px rgba(0,0,0,.8)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .cattach{
    width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;
    border-radius:10px!important;
    background:rgba(255,255,255,.035)!important;
    border:1px solid rgba(255,255,255,.075)!important;
    color:#a7b4b0!important;
    box-shadow:none!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .cattach:hover{
    background:rgba(255,255,255,.065)!important;
    color:#d4ddd9!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .chat-editbox,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer #chatInput{
    height:36px!important;
    min-height:36px!important;
    max-height:92px!important;
    padding:8px 11px!important;
    border-radius:10px!important;
    background:#182228!important;
    border:1px solid rgba(165,180,187,.15)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.02)!important;
    color:#eef3f1!important;
    caret-color:#77b967!important;
    font-size:13px!important;
    line-height:1.35!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .chat-editbox:focus,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer #chatInput:focus{
    border-color:rgba(103,157,91,.58)!important;
    box-shadow:0 0 0 2px rgba(92,143,61,.10),inset 0 1px 0 rgba(255,255,255,.02)!important;
    outline:none!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .chat-editbox::placeholder,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer #chatInput::placeholder{
    color:rgba(220,229,226,.46)!important;
    opacity:1!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .csend{
    width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;
    border-radius:11px!important;
    background:linear-gradient(145deg,#638e59,#477443)!important;
    border:1px solid rgba(255,255,255,.10)!important;
    color:#fff!important;
    box-shadow:0 6px 14px -10px rgba(71,116,67,.95)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .csend:hover{
    background:linear-gradient(145deg,#6d9a62,#4e7d49)!important;
    transform:none!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .cattach svg,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .csend svg{
    width:17px!important;height:17px!important;
  }
}

/* Specificity guard: older message-theme rules used highly specific !important
   circular avatar rules. v649 intentionally wins those for direct chats. */
@media (min-width:1024px){
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-card.cth-dm-card > .avatar.cv-private-peer.chat-hue-av{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    max-width:36px!important;
    flex:0 0 36px!important;
    border-radius:11px!important;
    padding:0!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 5px 14px -10px rgba(0,0,0,.9)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-card.cth-dm-card > .avatar.cv-private-peer.chat-hue-av::before{
    content:none!important;
    display:none!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg-av .avatar.chat-hue-av{
    width:24px!important;
    height:24px!important;
    min-width:24px!important;
    max-width:24px!important;
    flex:0 0 24px!important;
    border-radius:8px!important;
    padding:0!important;
    box-shadow:none!important;
    font-size:8px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg-av .avatar.chat-hue-av::before{
    content:none!important;
    display:none!important;
  }
}
@media (min-width:1024px){
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-card.cth-dm-card > .avatar.cv-private-peer.chat-hue-av{
    min-height:36px!important;
    max-height:36px!important;
    align-self:center!important;
  }
}

/* Mobile keeps the proven full-screen conversation behaviour, but adopts the
   same cleaner v649 monogram/composer visual language with touch-safe sizing. */
@media (max-width:1023px){
  html body.chat-thread-open .chat-thread .cth-dm-card > .avatar.cv-private-peer.chat-hue-av{
    width:25px!important;
    height:25px!important;
    min-width:25px!important;
    min-height:25px!important;
    max-width:25px!important;
    max-height:25px!important;
    flex:0 0 25px!important;
    border-radius:12px!important;
    padding:0!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 4px 12px -10px rgba(0,0,0,.9)!important;
  }
  html body.chat-thread-open .chat-thread .cth-dm-card > .avatar.cv-private-peer.chat-hue-av::before{content:none!important;display:none!important}
  html body.chat-thread-open .chat-thread .msg-av .avatar.chat-hue-av{
    width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;max-width:24px!important;max-height:24px!important;
    flex:0 0 24px!important;border-radius:8px!important;box-shadow:none!important;font-size:8px!important;
  }
  html body.chat-thread-open .chat-thread .msg-av .avatar.chat-hue-av::before{content:none!important;display:none!important}

  html body.chat-thread-open .chat-thread .chat-composer{
    grid-template-columns:44px minmax(0,1fr) 44px!important;
    min-height:62px!important;
    padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px))!important;
    gap:8px!important;
    background:#11191e!important;
    border-top:1px solid rgba(255,255,255,.07)!important;
    box-shadow:0 -8px 22px -18px rgba(0,0,0,.85)!important;
  }
  html body.chat-thread-open .chat-thread .chat-composer textarea.chat-editbox,
  html body.chat-thread-open .chat-thread .chat-composer #chatInput.chat-editbox{
    height:44px!important;
    min-height:44px!important;
    padding:10px 13px!important;
    border-radius:12px!important;
    background:#192329!important;
    border:1px solid rgba(165,180,187,.15)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.02)!important;
    font-size:16px!important;
  }
  html body.chat-thread-open .chat-thread .chat-composer .cattach,
  html body.chat-thread-open .chat-thread .chat-composer .csend{
    width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;border-radius:13px!important;box-shadow:none!important;
  }
  html body.chat-thread-open .chat-thread .chat-composer .cattach{
    background:rgba(255,255,255,.035)!important;border:1px solid rgba(255,255,255,.075)!important;color:#a7b4b0!important;
  }
  html body.chat-thread-open .chat-thread .chat-composer .csend{
    background:linear-gradient(145deg,#638e59,#477443)!important;border:1px solid rgba(255,255,255,.10)!important;color:#fff!important;
  }
}
@media (max-width:1023px){
  html body.chat-thread-open #chatInput.chat-editbox.input{
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
    border-radius:12px!important;
    box-sizing:border-box!important;
  }
}
@media (max-width:1023px){
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer #chatInput.chat-editbox.input,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer textarea#chatInput.chat-editbox{
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
    padding:10px 13px!important;
    border-radius:12px!important;
    background:#192329!important;
    border:1px solid rgba(165,180,187,.15)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.02)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .cattach,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .csend{
    width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;border-radius:13px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .cattach{
    background:rgba(255,255,255,.035)!important;border:1px solid rgba(255,255,255,.075)!important;color:#a7b4b0!important;box-shadow:none!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .csend{
    background:linear-gradient(145deg,#638e59,#477443)!important;background-image:linear-gradient(145deg,#638e59,#477443)!important;border:1px solid rgba(255,255,255,.10)!important;color:#fff!important;box-shadow:none!important;
  }
}


/* ---- app-polish-v650.css ---- */
/* EarthRoster v650 — desktop roster interaction/readability repair.
   Restores deliberate click-to-expand/click-to-collapse cards, keeps the
   professional v643 colour language, enlarges key text, and removes hover
   reflow/flicker. Mobile roster styling is intentionally untouched. */
@media (min-width:1024px){
  /* Native browser scrolling is the only vertical scroll behaviour. */
  body.ww-roster-active .rwg-wrap{
    overflow-x:auto!important;
    overflow-y:hidden!important;
    overscroll-behavior-x:contain!important;
    overscroll-behavior-y:auto!important;
    scroll-behavior:auto!important;
    scroll-snap-type:none!important;
    overflow-anchor:none!important;
  }

  /* Keep the v643 long rectangular card shape, but give readable copy enough
     vertical room. Closed cards remain slim; only a deliberately opened card
     gains the action strip below it. */
  body.ww-roster-active .rwg-cell .rgc,
  body.ww-roster-active .rwg-cell .ww511-rgc{
    min-height:62px!important;
    border-radius:10px!important;
    overflow:hidden!important;
    transform:none!important;
    animation:none!important;
    transition:none!important;
    will-change:auto!important;
    backface-visibility:visible!important;
    cursor:pointer!important;
  }
  body.ww-roster-active .rwg-cell .rgc:hover,
  body.ww-roster-active .rwg-cell .rgc:focus-within{
    transform:none!important;
    filter:none!important;
    z-index:auto!important;
    /* Hover must never change layout or flash tools. */
  }

  body.ww-roster-active .rwg-cell .rgc-main{
    min-height:62px!important;
    padding:7px 9px 7px 10px!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-rows:auto auto auto!important;
    column-gap:6px!important;
    row-gap:3px!important;
    align-content:center!important;
  }
  body.ww-roster-active .rwg-cell .rgc-main:has(.ww546-rgc-response),
  body.ww-roster-active .rwg-cell .rgc:has(.ww546-rgc-response){
    min-height:62px!important;
  }
  body.ww-roster-active .rwg-cell .rgc-main:has(.ww546-rgc-response){
    padding-bottom:7px!important;
  }

  /* Bigger hierarchy: time, client and billing line are now readable at a
     normal desktop/laptop viewing distance. */
  body.ww-roster-active .rwg-cell .rgc-time{
    font-size:12.2px!important;
    line-height:1.12!important;
    font-weight:850!important;
    letter-spacing:-.018em!important;
    color:#2f4036!important;
    -webkit-text-fill-color:#2f4036!important;
  }
  body.ww-roster-active .rwg-cell .rgc-dur{
    height:20px!important;
    min-height:20px!important;
    padding:0 7px!important;
    border-radius:999px!important;
    font-size:9.8px!important;
    line-height:20px!important;
    font-weight:900!important;
    color:#34483c!important;
    -webkit-text-fill-color:#34483c!important;
    background:rgba(255,255,255,.82)!important;
    border:1px solid rgba(55,77,63,.16)!important;
  }

  /* The white client band is stable and always present. It replaces the old
     hover-only white flash with an intentional design element. */
  body.ww-roster-active .rwg-cell .rgc-row2{
    grid-column:1 / -1!important;
    grid-row:2!important;
    display:flex!important;
    align-items:center!important;
    gap:6px!important;
    min-width:0!important;
    margin:1px 0 0!important;
    padding:4px 7px!important;
    border-radius:7px!important;
    background:rgba(255,255,255,.76)!important;
    border:1px solid rgba(44,65,51,.10)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.70)!important;
  }
  body.ww-roster-active .rwg-cell .rgc-client{
    font-size:14px!important;
    line-height:1.08!important;
    font-weight:900!important;
    letter-spacing:-.018em!important;
    color:#17291e!important;
    -webkit-text-fill-color:#17291e!important;
    text-shadow:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc-dot{
    width:6px!important;height:6px!important;min-width:6px!important;
  }
  body.ww-roster-active .rwg-cell .ww511-rgc-bill{
    grid-column:1!important;
    grid-row:3!important;
    margin:0!important;
    padding:0 0 0 1px!important;
    font-size:9.7px!important;
    line-height:1.12!important;
    font-weight:780!important;
    color:#536158!important;
    -webkit-text-fill-color:#536158!important;
    opacity:1!important;
    visibility:visible!important;
  }

  /* Accepted / Rejected stay on the footer lane and never cover copy. */
  body.ww-roster-active .rwg-cell .ww546-rgc-response{
    position:static!important;
    grid-column:2!important;
    grid-row:3!important;
    align-self:center!important;
    justify-self:end!important;
    height:19px!important;min-height:19px!important;
    padding:0 6px!important;
    border-radius:6px!important;
    font-size:7.8px!important;
    line-height:19px!important;
    font-weight:950!important;
    letter-spacing:.045em!important;
    white-space:nowrap!important;
  }
  body.ww-roster-active .rwg-cell .ww546-rgc-response svg{
    width:8px!important;height:8px!important;min-width:8px!important;
  }

  /* Rejected card remains unmistakably cancelled and its white client band is
     tinted instead of looking like a normal active job. */
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-row2{
    background:rgba(255,240,239,.83)!important;
    border-color:rgba(159,47,45,.18)!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-time,
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .rgc-client,
  body.ww-roster-active .rwg-cell .rgc.ww546-rgc-rejected .ww511-rgc-bill{
    text-decoration-line:line-through!important;
    text-decoration-color:#a33b37!important;
    text-decoration-thickness:1.35px!important;
    text-decoration-skip-ink:none!important;
  }

  /* Stable white action strip: hidden by default, opened only by an intentional
     card click, and collapsed by clicking the same card again. No hover reveal. */
  body.ww-roster-active .rwg-cell .rgc-tools,
  body.ww-roster-active .rwg-cell .rgc:hover .rgc-tools,
  body.ww-roster-active .rwg-cell .rgc:focus-within .rgc-tools{
    position:relative!important;
    left:auto!important;right:auto!important;bottom:auto!important;
    z-index:2!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:6px!important;
    width:100%!important;
    height:0!important;
    min-height:0!important;
    max-height:0!important;
    margin:0!important;
    padding:0 8px!important;
    opacity:0!important;
    visibility:hidden!important;
    overflow:hidden!important;
    pointer-events:none!important;
    border:0!important;
    border-top:0 solid transparent!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
    transform:none!important;
    transition:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww650-tools-open .rgc-tools{
    height:34px!important;
    min-height:34px!important;
    max-height:34px!important;
    padding:5px 8px!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    border-top:1px solid color-mix(in srgb,var(--accent,#527a5b) 22%,#e0e6e1 78%)!important;
    background:linear-gradient(90deg,#fff 0%,#fbfcfb 100%)!important;
  }
  body.ww-roster-active .rwg-cell .rgc.ww650-tools-open{
    box-shadow:0 3px 8px rgba(27,43,32,.12)!important;
  }
  body.ww-roster-active .rwg-cell .rgc-tool{
    flex:0 0 28px!important;
    width:28px!important;height:24px!important;min-width:28px!important;
    padding:0!important;
    border-radius:6px!important;
    border:1px solid #e4e9e5!important;
    background:#f7f9f7!important;
    box-shadow:none!important;
    transform:none!important;
    transition:none!important;
  }
  body.ww-roster-active .rwg-cell .rgc-tool svg{width:12px!important;height:12px!important;}
  body.ww-roster-active .rwg-cell .rgc-tool:hover{transform:none!important;box-shadow:none!important;}
  body.ww-roster-active .rwg-cell .rgc-tool.t-assign{color:#31687b!important}
  body.ww-roster-active .rwg-cell .rgc-tool.t-publish{color:#36734a!important}
  body.ww-roster-active .rwg-cell .rgc-tool.t-add{color:#8a661e!important}
  body.ww-roster-active .rwg-cell .rgc-tool.t-del{color:#a84842!important}

  /* Occupied cells no longer flash a second '+' button while the pointer moves
     across them. Empty cells still expose a quiet add target. */
  body.ww-roster-active .rwg-cell:has(.rgc) > .rwg-cell-add,
  body.ww-roster-active .rwg-cell:has(.rgc):hover > .rwg-cell-add{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }
  body.ww-roster-active .rwg-cell:not(:has(.rgc)) > .rwg-cell-add{
    opacity:.18!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  body.ww-roster-active .rwg-cell:not(:has(.rgc)):hover > .rwg-cell-add{opacity:.42!important;}

  /* No roster hover/scroll animation or paint-only transformation. */
  body.ww-roster-active .rwg-wrap *,
  body.ww-roster-active .rwg-wrap *::before,
  body.ww-roster-active .rwg-wrap *::after{
    animation:none!important;
    scroll-behavior:auto!important;
  }
}

@media (min-width:1024px) and (max-width:1279px){
  body.ww-roster-active .rwg-cell .rgc-time{font-size:11.6px!important;}
  body.ww-roster-active .rwg-cell .rgc-client{font-size:13.2px!important;}
  body.ww-roster-active .rwg-cell .ww511-rgc-bill{font-size:9.2px!important;}
}

/* v650 final readability width pass: desktop cards are intentionally a little
   longer so full shift times and client names are not squeezed into ellipses. */
@media (min-width:1024px){
  body.ww-roster-active .rwg-grid{
    grid-template-columns:130px repeat(7,minmax(184px,1fr))!important;
    min-width:1418px!important;
  }
  body.ww-roster-active .rwg-cell .rgc-time{font-size:11.8px!important;}
  body.ww-roster-active .rwg-cell .rgc-client{font-size:14.2px!important;}
  body.ww-roster-active .rwg-cell .ww511-rgc-bill{font-size:10.1px!important;}
  body.ww-roster-active .rwg-cell .ww546-rgc-response{font-size:8.1px!important;padding:0 7px!important;}
}
@media (min-width:1024px) and (max-width:1279px){
  body.ww-roster-active .rwg-grid{
    grid-template-columns:126px repeat(7,minmax(176px,1fr))!important;
    min-width:1358px!important;
  }
  body.ww-roster-active .rwg-cell .rgc-time{font-size:11.4px!important;}
  body.ww-roster-active .rwg-cell .rgc-client{font-size:13.6px!important;}
  body.ww-roster-active .rwg-cell .ww511-rgc-bill{font-size:9.7px!important;}
}


/* ---- app-polish-v652.css ---- */
/* EarthRoster v652 — refined All Team member directory */
body[data-modal-type="team-members"] .modal-overlay{background:rgba(9,25,15,.58)!important}
body[data-modal-type="team-members"] .modal{width:min(520px,calc(100% - 24px))!important;max-width:520px!important;max-height:min(82dvh,760px)!important;border-radius:28px!important;background:#f6f4ed!important;border:1px solid rgba(30,67,39,.10)!important;box-shadow:0 28px 70px rgba(7,24,13,.30),0 2px 0 rgba(255,255,255,.82) inset!important;overflow:hidden!important}
body[data-modal-type="team-members"] .modal-head{min-height:62px!important;padding:15px 16px 10px!important;border-bottom:0!important;background:linear-gradient(180deg,#faf9f4 0%,#f6f4ed 100%)!important}
body[data-modal-type="team-members"] .modal-head h2{font-family:var(--font-body,Inter Tight,system-ui,sans-serif)!important;font-size:20px!important;line-height:1.05!important;font-weight:900!important;letter-spacing:-.025em!important;color:#173522!important;text-align:left!important}
body[data-modal-type="team-members"] .modal-x{width:38px!important;height:38px!important;border-radius:13px!important;background:#ece9df!important;color:#5b665d!important;font-size:24px!important;box-shadow:none!important;border:1px solid rgba(31,68,40,.08)!important}
body[data-modal-type="team-members"] .modal-x:hover{background:#e4ecdf!important;color:#1e5b35!important}
body[data-modal-type="team-members"] .modal-body{padding:2px 14px 12px!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:thin!important;scrollbar-color:rgba(52,85,58,.24) transparent!important}
body[data-modal-type="team-members"] .modal-body::-webkit-scrollbar{width:5px!important}
body[data-modal-type="team-members"] .modal-body::-webkit-scrollbar-thumb{background:rgba(52,85,58,.24)!important;border-radius:99px!important}
body[data-modal-type="team-members"] .team-members-intro{min-height:62px!important;display:flex!important;align-items:center!important;gap:11px!important;margin:0 0 10px!important;padding:10px 12px!important;border-radius:18px!important;background:linear-gradient(135deg,#edf3e9 0%,#f8f7f1 72%)!important;color:#193b25!important;border:1px solid rgba(37,91,51,.12)!important;box-shadow:none!important}
body[data-modal-type="team-members"] .team-members-intro .team-members-hero>.avatar{width:40px!important;height:40px!important;min-width:40px!important;border-radius:13px!important;border:1px solid rgba(41,92,54,.18)!important;box-shadow:0 5px 12px rgba(34,75,43,.10)!important}
body[data-modal-type="team-members"] .team-members-intro>span:last-child{flex:1 1 auto!important;display:flex!important;flex-direction:column!important;gap:3px!important;min-width:0!important}
body[data-modal-type="team-members"] .team-members-intro strong{font-family:var(--font-body,Inter Tight,system-ui,sans-serif)!important;font-size:15.5px!important;font-weight:900!important;line-height:1.1!important;color:#163620!important}
body[data-modal-type="team-members"] .team-members-intro em{font-size:11.5px!important;line-height:1.25!important;font-weight:650!important;color:#6d7b70!important}
body[data-modal-type="team-members"] .team-members-list{display:flex!important;flex-direction:column!important;gap:0!important;overflow:hidden!important;border-radius:20px!important;border:1px solid rgba(36,72,43,.12)!important;background:#fffdf8!important;box-shadow:0 10px 26px rgba(28,54,33,.07)!important}
body[data-modal-type="team-members"] .team-member-row{width:100%!important;min-height:62px!important;display:flex!important;align-items:center!important;gap:11px!important;margin:0!important;padding:9px 11px!important;border:0!important;border-bottom:1px solid rgba(35,65,40,.085)!important;border-radius:0!important;background:transparent!important;color:#1b3423!important;box-shadow:none!important;transform:none!important;text-align:left!important;font:inherit!important;transition:background-color .12s ease!important}
body[data-modal-type="team-members"] .team-member-row:last-child{border-bottom:0!important}
body[data-modal-type="team-members"] button.team-member-row{cursor:pointer!important;-webkit-tap-highlight-color:transparent!important}
body[data-modal-type="team-members"] button.team-member-row:hover{background:#f4f7f0!important}
body[data-modal-type="team-members"] button.team-member-row:active{background:#edf3e9!important;transform:none!important}
body[data-modal-type="team-members"] .team-member-row.is-self{background:#f5f3ec!important}
body[data-modal-type="team-members"] .team-member-row .avatar{width:40px!important;height:40px!important;min-width:40px!important;border-radius:13px!important;font-size:13px!important;font-weight:900!important;border:1px solid rgba(255,255,255,.62)!important;box-shadow:0 4px 10px rgba(28,55,35,.12)!important}
body[data-modal-type="team-members"] .team-member-copy{flex:1 1 auto!important;min-width:0!important;display:flex!important;flex-direction:column!important;gap:3px!important}
body[data-modal-type="team-members"] .team-member-copy strong{font-family:var(--font-body,Inter Tight,system-ui,sans-serif)!important;font-size:15px!important;font-weight:900!important;line-height:1.15!important;letter-spacing:-.018em!important;color:#183720!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body[data-modal-type="team-members"] .team-member-copy em{font-size:11.5px!important;font-weight:650!important;line-height:1.25!important;color:#718075!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body[data-modal-type="team-members"] .team-member-message{display:grid!important;place-items:center!important;width:36px!important;height:36px!important;flex:0 0 36px!important;border-radius:12px!important;border:1px solid rgba(40,96,54,.11)!important;background:#edf4e9!important;color:#245f37!important;box-shadow:none!important}
body[data-modal-type="team-members"] .team-member-message svg{width:16px!important;height:16px!important;stroke-width:2!important}
body[data-modal-type="team-members"] .team-member-you{font-size:9.5px!important;font-weight:900!important;letter-spacing:.075em!important;color:#59665d!important;background:#e9ece4!important;border:1px solid rgba(42,71,47,.08)!important;border-radius:10px!important;padding:6px 8px!important}
body[data-modal-type="team-members"] .modal-foot{display:flex!important;align-items:center!important;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))!important;margin:0!important;border-top:1px solid rgba(34,66,40,.09)!important;background:rgba(248,247,241,.98)!important}
body[data-modal-type="team-members"] .team-members-footnote{display:none!important}
body[data-modal-type="team-members"] .modal-foot .btn{flex:1 1 100%!important;height:43px!important;border-radius:14px!important;font-size:13px!important;font-weight:900!important;box-shadow:0 7px 16px rgba(30,78,43,.14)!important}
@media(max-width:599px){body[data-modal-type="team-members"] .modal-overlay{align-items:flex-end!important;padding:0 10px calc(8px + env(safe-area-inset-bottom,0px))!important}body[data-modal-type="team-members"] .modal{width:100%!important;max-width:none!important;max-height:min(86dvh,760px)!important;border-radius:26px!important;margin:0!important}body[data-modal-type="team-members"] .modal-head{padding:13px 14px 8px!important;min-height:56px!important}body[data-modal-type="team-members"] .modal-head h2{font-size:19px!important}body[data-modal-type="team-members"] .modal-body{padding:2px 11px 10px!important}body[data-modal-type="team-members"] .team-members-intro{min-height:58px!important;padding:9px 10px!important;border-radius:16px!important;margin-bottom:8px!important}body[data-modal-type="team-members"] .team-members-intro .team-members-hero>.avatar{width:38px!important;height:38px!important;min-width:38px!important;border-radius:12px!important}body[data-modal-type="team-members"] .team-members-intro strong{font-size:15px!important}body[data-modal-type="team-members"] .team-members-intro em{font-size:11px!important}body[data-modal-type="team-members"] .team-members-list{border-radius:18px!important}body[data-modal-type="team-members"] .team-member-row{min-height:58px!important;padding:8px 9px!important;gap:10px!important}body[data-modal-type="team-members"] .team-member-row .avatar{width:38px!important;height:38px!important;min-width:38px!important;border-radius:12px!important;font-size:12.5px!important}body[data-modal-type="team-members"] .team-member-copy strong{font-size:14.5px!important}body[data-modal-type="team-members"] .team-member-copy em{font-size:11px!important}body[data-modal-type="team-members"] .team-member-message{width:34px!important;height:34px!important;flex-basis:34px!important;border-radius:11px!important}body[data-modal-type="team-members"] .modal-foot{padding:9px 11px calc(9px + env(safe-area-inset-bottom,0px))!important}body[data-modal-type="team-members"] .modal-foot .btn{height:42px!important;border-radius:13px!important}}


/* ---- app-polish-v653.css ---- */
/* EarthRoster v653 — full-app stability and native scrolling pass. */
html,body,#app,.shell,.main,.content{scroll-behavior:auto!important;}

/* Mobile: .main is the one vertical page scroller. Keep native momentum on and
   never promote ordinary page cards to their own vertical scroll surfaces. */
@media(max-width:1023px){
  .main{
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:none!important;
    scroll-snap-type:none!important;
    scroll-padding-top:0!important;
  }
  body:not(.chat-thread-open):not(.modal-open) .main{touch-action:pan-y!important;}
  body:not(.chat-thread-open):not(.modal-open) .content,
  body:not(.chat-thread-open):not(.modal-open) #page,
  body:not(.chat-thread-open):not(.modal-open) .page{
    overflow-y:visible!important;
    max-height:none!important;
    scroll-snap-type:none!important;
  }
  /* The roster must never use delayed content-visibility geometry. Variable
     card heights + deferred paint can look like cards blink/pop while scrolling. */
  .roster-mobile .rcard,
  .roster-mobile .ww512-roster-card,
  .roster-mobile .ww522-roster-card,
  .roster-mobile .ww583-card,
  .roster-mobile .ww585-card{
    content-visibility:visible!important;
    contain:none!important;
    contain-intrinsic-size:none!important;
  }
  /* Don't visually change cards merely because a scroll gesture started. The
     scroll scheduler still pauses expensive network work in JavaScript. */
  body.ww536-user-scrolling .rcard,
  body.ww536-user-scrolling .ww512-roster-card,
  body.ww536-user-scrolling .ww522-roster-card,
  body.ww536-user-scrolling .v213-card,
  body.ww536-user-scrolling .directory-card,
  body.ww536-user-scrolling .client-card,
  body.ww536-user-scrolling .employee-card,
  body.ww536-user-scrolling .notif-item,
  body.ww536-user-scrolling .timesheet-row,
  body.ww536-user-scrolling .ts-row{
    filter:none!important;
  }
}

/* Desktop/laptop: exactly one vertical scroll owner (.main). Components that
   need horizontal overflow keep it, but don't compete for vertical wheel input. */
@media(min-width:1024px){
  html,body,#app,.shell{overflow:hidden!important;}
  .main{overflow-y:auto!important;overflow-x:hidden!important;scroll-snap-type:none!important;}
  .content,#page,.page{overflow-y:visible!important;max-height:none!important;}
  .rwg-wrap,.avail-grid-wrap,.v213-filter-row{overscroll-behavior-y:auto!important;scroll-snap-type:none!important;}
}

/* Keep touch targets stable while scrolling; no scale/translate feedback on
   operational lists, which can look like a shake when the finger drifts. */
@media(max-width:1023px){
  .roster-mobile [data-action]:active,
  .cv-row:active,
  .directory-card:active,
  .client-card:active,
  .employee-card:active,
  .v213-card:active{transform:none!important;}
}


/* ---- app-polish-v654.css ---- */
/* EarthRoster v654 — single-row multi-staff roster layout.
   SCOPE: compact/admin roster cards only. 3, 4 and 5+ assigned employees stay
   in one horizontal staff row instead of wrapping into a second line. */
@media (max-width:1023px){
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band,
  body .home-roster-list .ww585-admin-card .ww585-staff-band{
    grid-template-columns:58px minmax(0,1fr)!important;
    align-items:center!important;
    min-height:48px!important;
  }

  body.ww-roster-active .roster-mobile .ww585-admin-card .ww583-staff-label,
  body .home-roster-list .ww585-admin-card .ww583-staff-label{
    align-items:center!important;
    padding:0 8px 0 4px!important;
    font-size:9px!important;
    letter-spacing:.12em!important;
  }

  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-grid,
  body .home-roster-list .ww585-admin-card .ww585-staff-grid{
    width:100%!important;
    min-width:0!important;
    margin:6px 0!important;
    display:grid!important;
    grid-auto-flow:column!important;
    align-items:stretch!important;
    overflow:visible!important;
    border:0!important;
  }

  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="1"] .ww585-staff-grid,
  body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="1"] .ww585-staff-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="2"] .ww585-staff-grid,
  body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="2"] .ww585-staff-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="3"] .ww585-staff-grid,
  body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="3"] .ww585-staff-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="4"] .ww585-staff-grid,
  body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="4"] .ww585-staff-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="5"] .ww585-staff-grid,
  body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="5"] .ww585-staff-grid{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
  }

  /* A single row must stay a single row: use vertical separators only. */
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person,
  body .home-roster-list .ww585-admin-card .ww585-person{
    min-width:0!important;
    min-height:38px!important;
    padding:5px 9px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:4px!important;
    overflow:hidden!important;
    border-top:0!important;
    border-right:0!important;
    border-left:1px solid rgba(255,255,255,.12)!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person:first-child,
  body .home-roster-list .ww585-admin-card .ww585-person:first-child{
    border-left:0!important;
  }

  body.ww-roster-active .roster-mobile .ww585-admin-card .ww583-staff-name,
  body .home-roster-list .ww585-admin-card .ww583-staff-name{
    width:100%!important;
    min-width:0!important;
    font-size:12px!important;
    line-height:1.05!important;
    font-weight:860!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state,
  body .home-roster-list .ww585-admin-card .ww585-person-state{
    margin-left:0!important;
    min-height:19px!important;
    max-width:100%!important;
    padding:0 7px!important;
    gap:4px!important;
    font-size:7.8px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-person-state svg,
  body .home-roster-list .ww585-admin-card .ww585-person-state svg{
    width:8px!important;height:8px!important;flex:0 0 8px!important;
  }

  /* Four/five-person cards retain the same one-row geometry; type reduces only
     enough to prevent status pills from colliding. */
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="4"] .ww585-person,
  body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="4"] .ww585-person{
    padding-left:7px!important;padding-right:7px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="4"] .ww583-staff-name,
  body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="4"] .ww583-staff-name{
    font-size:11.4px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="5"] .ww585-person,
  body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="5"] .ww585-person{
    padding-left:6px!important;padding-right:6px!important;gap:3px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="5"] .ww583-staff-name,
  body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="5"] .ww583-staff-name{
    font-size:11.2px!important;
  }
  body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="5"] .ww585-person-state,
  body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="5"] .ww585-person-state{
    min-height:19px!important;padding:0 6px!important;font-size:8px!important;
  }

  /* Multi-person cards no longer grow an extra staff row. */
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]),
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]),
  body.ww-roster-active .roster-mobile .ww585-admin-card:has(.ww585-staff-band[data-staff-count="5"]),
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="3"]),
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="4"]),
  body .home-roster-list .ww585-admin-card:has(.ww585-staff-band[data-staff-count="5"]){
    min-height:122px!important;
  }

  /* On very narrow phones keep one row but allow only the staff strip to pan
     horizontally. This avoids squeezing five names into unreadable 55px cells
     without creating a second row or disturbing vertical roster scrolling. */
  @media (max-width:520px){
    body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band,
    body .home-roster-list .ww585-admin-card .ww585-staff-band{
      grid-template-columns:45px minmax(0,1fr)!important;
    }
    body.ww-roster-active .roster-mobile .ww585-admin-card .ww583-staff-label,
    body .home-roster-list .ww585-admin-card .ww583-staff-label{
      font-size:7.8px!important;padding-right:5px!important;
    }
    body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="4"] .ww585-staff-grid,
    body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="5"] .ww585-staff-grid,
    body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="4"] .ww585-staff-grid,
    body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="5"] .ww585-staff-grid{
      display:flex!important;
      flex-wrap:nowrap!important;
      overflow-x:auto!important;
      overflow-y:hidden!important;
      scrollbar-width:none!important;
      -webkit-overflow-scrolling:touch!important;
      overscroll-behavior-x:contain!important;
      touch-action:pan-x pan-y!important;
    }
    body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="4"] .ww585-person,
    body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="4"] .ww585-person{
      flex:0 0 118px!important;
    }
    body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-band[data-staff-count="5"] .ww585-person,
    body .home-roster-list .ww585-admin-card .ww585-staff-band[data-staff-count="5"] .ww585-person{
      flex:0 0 108px!important;
    }
    body.ww-roster-active .roster-mobile .ww585-admin-card .ww585-staff-grid::-webkit-scrollbar,
    body .home-roster-list .ww585-admin-card .ww585-staff-grid::-webkit-scrollbar{display:none!important;}
  }
}


/* ---- app-polish-v655.css ---- */
/* EarthRoster v655 — mobile chat readability + standard professional sizing
   Purpose: restore comfortable, app-standard chat typography, message cards,
   avatars and composer without changing desktop v648/v649 conversation flow. */

@media (max-width:1023px){
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread,
  html body.chat-thread-open .chat-thread{
    --chat-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    font-family:var(--chat-font)!important;
  }

  /* Header — standard mobile proportions, larger identity and touch targets. */
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-thread-head,
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .ct-head,
  html body.chat-thread-open .chat-thread .chat-thread-head,
  html body.chat-thread-open .chat-thread .ct-head{
    min-height:82px!important;
    padding:12px 14px!important;
    gap:11px!important;
    background:linear-gradient(180deg,#152126 0%,#10191d 100%)!important;
    border-bottom:1px solid rgba(255,255,255,.09)!important;
    box-shadow:0 5px 16px rgba(0,0,0,.16)!important;
  }
  html body.chat-thread-open .chat-thread .cth-back,
  html body.chat-thread-open .chat-thread .cth-act{
    width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;
    border-radius:15px!important;
    background:#202b31!important;
    color:#f4f7f5!important;
    border:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 2px 7px rgba(0,0,0,.10)!important;
  }
  html body.chat-thread-open .chat-thread .cth-back svg,
  html body.chat-thread-open .chat-thread .cth-act svg{width:22px!important;height:22px!important;}

  html body.chat-thread-open .chat-thread .cth-card,
  html body.chat-thread-open .chat-thread .cth-dm-card,
  html body.chat-thread-open .chat-thread .cth-team-card{gap:10px!important;min-width:0!important;}

  html body.chat-thread-open .chat-thread .cth-dm-card > .avatar.cv-private-peer.chat-hue-av,
  html body.chat-thread-open .chat-thread .cth-card > .avatar,
  html body.chat-thread-open .chat-thread .cth-team-card > .avatar{
    width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;
    max-width:48px!important;max-height:48px!important;flex:0 0 48px!important;
    border-radius:14px!important;
    border:1px solid rgba(239,244,239,.45)!important;
    box-shadow:0 0 0 3px rgba(105,150,104,.12),0 5px 13px rgba(0,0,0,.18)!important;
    font-family:var(--chat-font)!important;
    font-size:14px!important;font-weight:800!important;letter-spacing:.02em!important;
  }
  html body.chat-thread-open .chat-thread .cth-name{
    font-family:var(--chat-font)!important;
    font-size:19px!important;
    font-weight:750!important;
    line-height:1.15!important;
    letter-spacing:-.015em!important;
    color:#f7faf8!important;
  }
  /* Direct chats intentionally show the person's name only. */
  html body.chat-thread-open .chat-thread .cth-dm-card .cth-sub,
  html body.chat-thread-open .chat-thread .cth-dm-card .cth-presence{display:none!important;}

  /* Conversation surface. */
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .chat-scroll,
  html body.chat-thread-open .chat-thread .chat-scroll{
    padding:16px 14px 22px!important;
    gap:5px!important;
    background:
      radial-gradient(460px 300px at 100% -4%,rgba(56,105,75,.10),transparent 66%),
      linear-gradient(180deg,#10191e 0%,#0c1418 100%)!important;
    overflow-x:hidden!important;
  }
  html body.chat-thread-open .chat-thread .chat-date-separator{margin:10px 0 14px!important;}
  html body.chat-thread-open .chat-thread .chat-date-separator span{
    min-height:29px!important;
    padding:6px 12px!important;
    border-radius:999px!important;
    font-family:var(--chat-font)!important;
    font-size:12.5px!important;
    font-weight:620!important;
    color:#d5ddda!important;
    background:#253139!important;
    border:1px solid rgba(255,255,255,.08)!important;
    box-shadow:none!important;
  }

  /* Messages — no more tiny chips. Short messages retain a useful card size. */
  html body.ww-chat-active.chat-thread-open .chat-shell .chat-thread .msg,
  html body.chat-thread-open .chat-thread .msg{
    width:100%!important;
    max-width:none!important;
    gap:9px!important;
    align-items:flex-end!important;
  }
  html body.chat-thread-open .chat-thread .msg.group-start{margin-top:10px!important;}
  html body.chat-thread-open .chat-thread .msg.group-continuation{margin-top:4px!important;}
  html body.chat-thread-open .chat-thread .msg-av{
    width:38px!important;min-width:38px!important;max-width:38px!important;
    height:38px!important;flex:0 0 38px!important;
    align-items:flex-end!important;
  }
  html body.chat-thread-open .chat-thread .msg-av .avatar,
  html body.chat-thread-open .chat-thread .msg-av .avatar.chat-hue-av{
    width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;
    max-width:36px!important;max-height:36px!important;flex:0 0 36px!important;
    border-radius:11px!important;
    border:1px solid rgba(239,244,239,.38)!important;
    box-shadow:0 2px 8px rgba(0,0,0,.15)!important;
    font-family:var(--chat-font)!important;
    font-size:10.5px!important;font-weight:800!important;letter-spacing:.02em!important;
  }

  html body.chat-thread-open .chat-thread .bubble,
  html body.chat-thread-open .chat-thread .msg.mine .bubble,
  html body.chat-thread-open .chat-thread .msg:not(.mine) .bubble{
    width:fit-content!important;
    min-width:88px!important;
    max-width:78%!important;
    padding:11px 13px 9px!important;
    border-radius:16px!important;
    box-shadow:0 3px 11px rgba(0,0,0,.16)!important;
  }
  html body.chat-thread-open .chat-thread .msg:not(.mine) .bubble{
    background:linear-gradient(180deg,#27343c 0%,#202b32 100%)!important;
    color:#f5f7f7!important;
    border:1px solid rgba(196,211,219,.12)!important;
    border-bottom-left-radius:6px!important;
  }
  html body.chat-thread-open .chat-thread .msg.mine .bubble{
    background:linear-gradient(145deg,#4f8958 0%,#3d7048 100%)!important;
    color:#fff!important;
    border:1px solid rgba(202,233,205,.13)!important;
    border-bottom-right-radius:6px!important;
  }
  html body.chat-thread-open .chat-thread .b-author{
    margin:0 0 4px!important;
    font-family:var(--chat-font)!important;
    font-size:12.5px!important;font-weight:750!important;line-height:1.2!important;
  }
  html body.chat-thread-open .chat-thread .b-text{
    font-family:var(--chat-font)!important;
    font-size:16.5px!important;
    font-weight:450!important;
    line-height:1.38!important;
    letter-spacing:-.006em!important;
    color:inherit!important;
  }
  html body.chat-thread-open .chat-thread .b-meta{
    margin-top:6px!important;
    gap:5px!important;
    line-height:1!important;
  }
  html body.chat-thread-open .chat-thread .b-meta time,
  html body.chat-thread-open .chat-thread .msg-status,
  html body.chat-thread-open .chat-thread .status-word{
    font-family:var(--chat-font)!important;
    font-size:11px!important;
    line-height:1!important;
  }

  /* Composer — comfortable but compact, with normal app-sized controls. */
  html body.chat-thread-open .chat-thread .chat-composer{
    grid-template-columns:48px minmax(0,1fr) 48px!important;
    gap:9px!important;
    min-height:70px!important;
    padding:9px 10px calc(9px + env(safe-area-inset-bottom,0px))!important;
    background:#111a1f!important;
    border-top:1px solid rgba(255,255,255,.085)!important;
    box-shadow:0 -5px 18px rgba(0,0,0,.16)!important;
  }
  html body.chat-thread-open .chat-thread .chat-composer .cattach,
  html body.chat-thread-open .chat-thread .chat-composer .csend{
    width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;
    border-radius:14px!important;
  }
  html body.chat-thread-open .chat-thread .chat-composer .cattach{
    background:#202b31!important;color:#c7d2ce!important;border:1px solid rgba(255,255,255,.09)!important;
  }
  html body.chat-thread-open .chat-thread .chat-composer .csend{
    background:linear-gradient(145deg,#619562,#477b4c)!important;color:#fff!important;
    border:1px solid rgba(255,255,255,.12)!important;box-shadow:0 3px 10px rgba(0,0,0,.16)!important;
  }
  html body.chat-thread-open .chat-thread .chat-composer .cattach svg,
  html body.chat-thread-open .chat-thread .chat-composer .csend svg{width:22px!important;height:22px!important;}

  html body.chat-thread-open .chat-thread .chat-composer textarea.chat-editbox,
  html body.chat-thread-open .chat-thread .chat-composer #chatInput.chat-editbox,
  html body.chat-thread-open .chat-thread .chat-composer #chatInput.chat-editbox.input{
    height:48px!important;min-height:48px!important;max-height:112px!important;
    padding:12px 14px!important;
    border-radius:14px!important;
    background:#1d282e!important;color:#f4f7f5!important;
    border:1px solid rgba(183,200,193,.14)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important;
    font-family:var(--chat-font)!important;
    font-size:16.5px!important;
    line-height:1.35!important;
  }
  html body.chat-thread-open .chat-thread .chat-composer #chatInput::placeholder{color:#8f9c96!important;opacity:1!important;}
}

@media (max-width:380px){
  html body.chat-thread-open .chat-thread .bubble,
  html body.chat-thread-open .chat-thread .msg.mine .bubble,
  html body.chat-thread-open .chat-thread .msg:not(.mine) .bubble{
    min-width:82px!important;max-width:80%!important;padding:10px 12px 8px!important;
  }
  html body.chat-thread-open .chat-thread .b-text{font-size:16px!important;}
  html body.chat-thread-open .chat-thread .msg-av{width:35px!important;min-width:35px!important;max-width:35px!important;flex-basis:35px!important;}
  html body.chat-thread-open .chat-thread .msg-av .avatar,
  html body.chat-thread-open .chat-thread .msg-av .avatar.chat-hue-av{width:33px!important;height:33px!important;min-width:33px!important;max-width:33px!important;}
}

/* v655 final specificity pass — older v629/v630 compact rules are embedded
   in index.html and intentionally used !important. This block supersedes
   those mobile-only compact values without disturbing desktop. */
@media (max-width:1023px){
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-thread-head,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .ct-head{
    min-height:82px!important;padding:12px 14px!important;gap:11px!important;
    background:linear-gradient(180deg,#152126 0%,#10191d 100%)!important;
    border-bottom:1px solid rgba(255,255,255,.09)!important;box-shadow:0 5px 16px rgba(0,0,0,.16)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-back,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-act{
    width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;flex:0 0 46px!important;
    border-radius:15px!important;background:#202b31!important;border:1px solid rgba(255,255,255,.10)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-dm-card > .avatar.cv-private-peer.chat-hue-av,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-card>.avatar,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-team-card>.avatar{
    width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;max-width:48px!important;max-height:48px!important;flex:0 0 48px!important;
    border-radius:14px!important;font-size:14px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-name{
    font-size:19px!important;line-height:1.15!important;font-weight:750!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-scroll{
    padding:16px 14px 22px!important;gap:5px!important;
    background:radial-gradient(460px 300px at 100% -4%,rgba(56,105,75,.10),transparent 66%),linear-gradient(180deg,#10191e 0%,#0c1418 100%)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-date-separator{margin:10px 0 14px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-date-separator span{
    min-height:29px!important;padding:6px 12px!important;font-size:12.5px!important;line-height:1.15!important;border-radius:999px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg{gap:9px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg.group-start{margin-top:10px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg.group-continuation{margin-top:4px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg-av{
    width:38px!important;min-width:38px!important;max-width:38px!important;height:38px!important;flex:0 0 38px!important;padding-bottom:0!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg-av .avatar,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg-av .avatar.chat-hue-av{
    width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;max-width:36px!important;max-height:36px!important;flex:0 0 36px!important;
    border-radius:11px!important;font-size:10.5px!important;line-height:1!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg.mine .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg:not(.mine) .bubble{
    width:fit-content!important;min-width:88px!important;max-width:min(78%,350px)!important;
    padding:11px 13px 9px!important;border-radius:16px!important;box-shadow:0 3px 11px rgba(0,0,0,.16)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg:not(.mine) .bubble{border-bottom-left-radius:6px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg.mine .bubble{border-bottom-right-radius:6px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .b-author{
    margin:0 0 4px!important;font-size:12.5px!important;line-height:1.2!important;font-weight:750!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .b-text{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif!important;
    font-size:16.5px!important;line-height:1.38!important;font-weight:450!important;letter-spacing:-.006em!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .b-meta{margin-top:6px!important;gap:5px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .b-meta time,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg-status,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .status-word{
    font-size:11px!important;line-height:1!important;font-weight:600!important;opacity:.82!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer{
    grid-template-columns:48px minmax(0,1fr) 48px!important;gap:9px!important;min-height:70px!important;
    padding:9px 10px calc(9px + env(safe-area-inset-bottom,0px))!important;background:#111a1f!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .cattach,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .csend{
    width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;border-radius:14px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .input,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .chat-editbox,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer #chatInput.chat-editbox.input,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer textarea#chatInput.chat-editbox{
    min-height:48px!important;height:48px!important;max-height:112px!important;border-radius:14px!important;
    padding:12px 14px!important;font-size:16.5px!important;line-height:1.35!important;background:#1d282e!important;
    border:1px solid rgba(183,200,193,.14)!important;
  }
}
@media (max-width:380px){
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg.mine .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg:not(.mine) .bubble{min-width:82px!important;max-width:min(80%,320px)!important;padding:10px 12px 8px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .b-text{font-size:16px!important;}
}


/* ---- app-polish-v656.css ---- */
/* EarthRoster v656 — balanced, standard mobile messaging proportions
   Keeps v655 readability improvements while bringing chat sizing back to
   familiar iMessage/WhatsApp-like density. Desktop v648/v649 flow unchanged. */
@media (max-width:1023px){
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-thread-head,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .ct-head,
  html body.chat-thread-open .chat-thread .chat-thread-head,
  html body.chat-thread-open .chat-thread .ct-head{
    min-height:72px!important;
    padding:9px 12px!important;
    gap:9px!important;
    box-shadow:0 3px 11px rgba(0,0,0,.13)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-back,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-act,
  html body.chat-thread-open .chat-thread .cth-back,
  html body.chat-thread-open .chat-thread .cth-act{
    width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;flex:0 0 44px!important;
    border-radius:14px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-back svg,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-act svg,
  html body.chat-thread-open .chat-thread .cth-back svg,
  html body.chat-thread-open .chat-thread .cth-act svg{width:20px!important;height:20px!important;}

  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-dm-card > .avatar.cv-private-peer.chat-hue-av,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-card>.avatar,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-team-card>.avatar,
  html body.chat-thread-open .chat-thread .cth-dm-card > .avatar.cv-private-peer.chat-hue-av,
  html body.chat-thread-open .chat-thread .cth-card>.avatar,
  html body.chat-thread-open .chat-thread .cth-team-card>.avatar{
    width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;max-width:42px!important;max-height:42px!important;flex:0 0 42px!important;
    border-radius:13px!important;font-size:12.5px!important;
    box-shadow:0 0 0 2px rgba(105,150,104,.10),0 3px 9px rgba(0,0,0,.14)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .cth-name,
  html body.chat-thread-open .chat-thread .cth-name{
    font-size:17px!important;line-height:1.16!important;font-weight:750!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-scroll,
  html body.chat-thread-open .chat-thread .chat-scroll{
    padding:13px 12px 18px!important;
    gap:4px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-date-separator,
  html body.chat-thread-open .chat-thread .chat-date-separator{margin:8px 0 11px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-date-separator span,
  html body.chat-thread-open .chat-thread .chat-date-separator span{
    min-height:26px!important;padding:5px 10px!important;font-size:11.5px!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg,
  html body.chat-thread-open .chat-thread .msg{gap:7px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg.group-start,
  html body.chat-thread-open .chat-thread .msg.group-start{margin-top:8px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg.group-continuation,
  html body.chat-thread-open .chat-thread .msg.group-continuation{margin-top:3px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg-av,
  html body.chat-thread-open .chat-thread .msg-av{
    width:34px!important;min-width:34px!important;max-width:34px!important;height:34px!important;flex:0 0 34px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg-av .avatar,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg-av .avatar.chat-hue-av,
  html body.chat-thread-open .chat-thread .msg-av .avatar,
  html body.chat-thread-open .chat-thread .msg-av .avatar.chat-hue-av{
    width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;max-width:32px!important;max-height:32px!important;flex:0 0 32px!important;
    border-radius:10px!important;font-size:9.5px!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg.mine .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg:not(.mine) .bubble,
  html body.chat-thread-open .chat-thread .bubble,
  html body.chat-thread-open .chat-thread .msg.mine .bubble,
  html body.chat-thread-open .chat-thread .msg:not(.mine) .bubble{
    min-width:76px!important;
    max-width:min(80%,340px)!important;
    padding:9px 11px 8px!important;
    border-radius:15px!important;
    box-shadow:0 2px 8px rgba(0,0,0,.14)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .b-author,
  html body.chat-thread-open .chat-thread .b-author{
    margin:0 0 3px!important;font-size:11.5px!important;line-height:1.2!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .b-text,
  html body.chat-thread-open .chat-thread .b-text{
    font-size:15.5px!important;
    line-height:1.36!important;
    font-weight:430!important;
    letter-spacing:-.004em!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .b-meta,
  html body.chat-thread-open .chat-thread .b-meta{margin-top:5px!important;gap:4px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .b-meta time,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg-status,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .status-word,
  html body.chat-thread-open .chat-thread .b-meta time,
  html body.chat-thread-open .chat-thread .msg-status,
  html body.chat-thread-open .chat-thread .status-word{
    font-size:10px!important;line-height:1!important;
  }

  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer,
  html body.chat-thread-open .chat-thread .chat-composer{
    grid-template-columns:44px minmax(0,1fr) 44px!important;
    gap:7px!important;
    min-height:62px!important;
    padding:8px 9px calc(8px + env(safe-area-inset-bottom,0px))!important;
    box-shadow:0 -3px 12px rgba(0,0,0,.13)!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .cattach,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .csend,
  html body.chat-thread-open .chat-thread .chat-composer .cattach,
  html body.chat-thread-open .chat-thread .chat-composer .csend{
    width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;border-radius:13px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .cattach svg,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .csend svg,
  html body.chat-thread-open .chat-thread .chat-composer .cattach svg,
  html body.chat-thread-open .chat-thread .chat-composer .csend svg{width:20px!important;height:20px!important;}
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .input,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer .chat-editbox,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer #chatInput.chat-editbox.input,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer textarea#chatInput.chat-editbox,
  html body.chat-thread-open .chat-thread .chat-composer .input,
  html body.chat-thread-open .chat-thread .chat-composer .chat-editbox,
  html body.chat-thread-open .chat-thread .chat-composer #chatInput.chat-editbox.input,
  html body.chat-thread-open .chat-thread .chat-composer textarea#chatInput.chat-editbox{
    min-height:44px!important;height:44px!important;max-height:104px!important;
    border-radius:13px!important;
    padding:10px 12px!important;
    font-size:15.5px!important;
    line-height:1.35!important;
  }
}

@media (max-width:380px){
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg.mine .bubble,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .msg:not(.mine) .bubble,
  html body.chat-thread-open .chat-thread .bubble,
  html body.chat-thread-open .chat-thread .msg.mine .bubble,
  html body.chat-thread-open .chat-thread .msg:not(.mine) .bubble{
    min-width:72px!important;max-width:min(81%,316px)!important;padding:8px 10px 7px!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .b-text,
  html body.chat-thread-open .chat-thread .b-text{font-size:15px!important;}
}


/* ---- app-polish-v657.css ---- */
/* EarthRoster v657 — restore employee roster controls on mobile
   Restores the staff roster hero that an older v568 mobile override hid.
   Keeps v653+ stability fixes and v656 messaging sizing untouched. */
@media (max-width:1023px){
  body.ww-roster-active .rst-hero.staff,
  body.ww-roster-active .ww511-roster-hero.staff{
    display:block!important;
    position:relative!important;
    margin:10px 10px 12px!important;
    padding:12px!important;
    border-radius:20px!important;
    overflow:hidden!important;
    background:linear-gradient(145deg,#1f5c34 0%,#17472a 100%)!important;
    border:1px solid rgba(255,255,255,.10)!important;
    box-shadow:0 8px 22px rgba(19,55,30,.15)!important;
    color:#fff!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hero-bg{display:none!important;}
  body.ww-roster-active .rst-hero.staff .rst-hero-top{
    display:grid!important;
    grid-template-columns:42px minmax(0,1fr) 42px!important;
    align-items:center!important;
    gap:10px!important;
    min-height:44px!important;
    margin:0!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-nav{
    width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    border-radius:13px!important;
    border:1px solid rgba(255,255,255,.18)!important;
    background:rgba(255,255,255,.08)!important;
    color:#fff!important;
    box-shadow:none!important;
    opacity:1!important;visibility:visible!important;pointer-events:auto!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-nav svg{width:18px!important;height:18px!important;}
  body.ww-roster-active .rst-hero.staff .rst-hero-label{
    min-width:0!important;text-align:center!important;display:flex!important;flex-direction:column!important;gap:3px!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-eyebrow{
    display:block!important;color:rgba(255,255,255,.68)!important;font-size:9px!important;line-height:1!important;
    font-weight:850!important;letter-spacing:.13em!important;text-transform:uppercase!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hero-label strong{
    display:block!important;color:#fff!important;font-size:17px!important;line-height:1.18!important;font-weight:800!important;
    letter-spacing:-.015em!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hero-foot,
  body.ww-roster-active .rst-hero.staff .ww511-hero-foot,
  body.ww-roster-active .rst-hero.staff .ww512-hero-foot{
    display:grid!important;
    grid-template-columns:minmax(0,.7fr) minmax(0,.7fr) minmax(150px,1.55fr)!important;
    align-items:stretch!important;
    gap:8px!important;
    margin:10px 0 0!important;
    padding:0!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hs{
    min-width:0!important;min-height:48px!important;padding:7px 8px!important;border-radius:13px!important;
    display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
    background:rgba(255,255,255,.075)!important;border:1px solid rgba(255,255,255,.11)!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hs strong{color:#fff!important;font-size:17px!important;line-height:1!important;font-weight:850!important;}
  body.ww-roster-active .rst-hero.staff .rst-hs em{margin-top:4px!important;color:rgba(255,255,255,.62)!important;font-size:8.5px!important;line-height:1!important;font-weight:800!important;font-style:normal!important;text-transform:uppercase!important;letter-spacing:.06em!important;}
  body.ww-roster-active .rst-hero.staff .rst-hero-add{
    min-width:0!important;min-height:48px!important;height:auto!important;padding:0 12px!important;border-radius:13px!important;
    display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;
    border:1px solid rgba(255,255,255,.92)!important;background:#fff!important;color:#245c34!important;
    font-size:12.5px!important;font-weight:850!important;line-height:1.1!important;box-shadow:0 4px 12px rgba(0,0,0,.10)!important;
    opacity:1!important;visibility:visible!important;pointer-events:auto!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hero-add .rha-ic{
    width:25px!important;height:25px!important;min-width:25px!important;border-radius:9px!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;background:#2f7d45!important;color:#fff!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hero-add svg{width:14px!important;height:14px!important;}
}
@media (max-width:390px){
  body.ww-roster-active .rst-hero.staff{margin:8px 8px 10px!important;padding:10px!important;border-radius:18px!important;}
  body.ww-roster-active .rst-hero.staff .rst-hero-foot{grid-template-columns:64px 64px minmax(0,1fr)!important;gap:6px!important;}
  body.ww-roster-active .rst-hero.staff .rst-hs{padding:6px 4px!important;}
  body.ww-roster-active .rst-hero.staff .rst-hero-add{padding:0 9px!important;font-size:11.5px!important;gap:6px!important;}
}


/* ---- app-polish-v658.css ---- */
/* EarthRoster v658 — compact employee roster summary
   Keeps month navigation, totals and request-shift action while removing the oversized mobile hero. */
@media (max-width:1023px){
  body.ww-roster-active .rst-hero.staff,
  body.ww-roster-active .ww511-roster-hero.staff{
    margin:7px 10px 10px!important;
    padding:9px 10px 10px!important;
    border-radius:18px!important;
    background:linear-gradient(145deg,#1f5c34 0%,#17472a 100%)!important;
    box-shadow:0 6px 16px rgba(19,55,30,.13)!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hero-top{
    grid-template-columns:36px minmax(0,1fr) 36px!important;
    gap:8px!important;
    min-height:36px!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-nav{
    width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;
    border-radius:11px!important;background:rgba(255,255,255,.07)!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-nav svg{width:16px!important;height:16px!important;}
  body.ww-roster-active .rst-hero.staff .rst-hero-label{gap:1px!important;}
  body.ww-roster-active .rst-hero.staff .rst-eyebrow{
    font-size:7.5px!important;letter-spacing:.15em!important;line-height:1.05!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hero-label strong{
    font-size:15.5px!important;line-height:1.08!important;font-weight:820!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hero-foot,
  body.ww-roster-active .rst-hero.staff .ww511-hero-foot,
  body.ww-roster-active .rst-hero.staff .ww512-hero-foot{
    grid-template-columns:68px 62px minmax(0,1fr)!important;
    gap:7px!important;margin:8px 0 0!important;align-items:center!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hs{
    min-height:40px!important;height:40px!important;padding:4px 5px!important;border-radius:11px!important;
    background:rgba(255,255,255,.07)!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hs strong{
    font-size:14.5px!important;line-height:1!important;letter-spacing:-.01em!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hs em{
    margin-top:3px!important;font-size:7.2px!important;letter-spacing:.075em!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hero-add{
    grid-column:auto!important;width:auto!important;max-width:none!important;margin:0!important;
    min-height:40px!important;height:40px!important;padding:0 10px!important;border-radius:11px!important;
    gap:7px!important;font-size:11.5px!important;line-height:1!important;white-space:nowrap!important;
    box-shadow:0 2px 8px rgba(0,0,0,.08)!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hero-add .rha-ic{
    width:22px!important;height:22px!important;min-width:22px!important;border-radius:7px!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hero-add svg{width:12px!important;height:12px!important;}
}
@media (max-width:390px){
  body.ww-roster-active .rst-hero.staff{margin:6px 8px 9px!important;padding:8px 9px 9px!important;border-radius:17px!important;}
  body.ww-roster-active .rst-hero.staff .rst-hero-foot{grid-template-columns:62px 57px minmax(0,1fr)!important;gap:6px!important;}
  body.ww-roster-active .rst-hero.staff .rst-hs{height:38px!important;min-height:38px!important;}
  body.ww-roster-active .rst-hero.staff .rst-hero-add{height:38px!important;min-height:38px!important;padding:0 8px!important;font-size:10.7px!important;gap:5px!important;}
  body.ww-roster-active .rst-hero.staff .rst-hero-add .rha-ic{width:20px!important;height:20px!important;min-width:20px!important;}
}


/* ---- app-polish-v659.css ---- */
/* EarthRoster v659 — employee roster summary fit polish
   Rebalances Hours / Shifts / Request row so longer totals such as 17h 30m stay readable on one line. */
@media (max-width:1023px){
  body.ww-roster-active .rst-hero.staff .rst-hero-foot,
  body.ww-roster-active .rst-hero.staff .ww511-hero-foot,
  body.ww-roster-active .rst-hero.staff .ww512-hero-foot{
    grid-template-columns:82px 58px minmax(0,1fr)!important;
    gap:7px!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hs{
    min-width:0!important;
    overflow:hidden!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hs strong{
    display:block!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
    font-size:13.8px!important;
    line-height:1!important;
    font-variant-numeric:tabular-nums!important;
    letter-spacing:-.02em!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hs em{
    white-space:nowrap!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hero-add{
    min-width:0!important;
    padding-inline:9px!important;
    font-size:11.2px!important;
    gap:6px!important;
  }
}
@media (max-width:390px){
  body.ww-roster-active .rst-hero.staff .rst-hero-foot,
  body.ww-roster-active .rst-hero.staff .ww511-hero-foot,
  body.ww-roster-active .rst-hero.staff .ww512-hero-foot{
    grid-template-columns:78px 54px minmax(0,1fr)!important;
    gap:6px!important;
  }
  body.ww-roster-active .rst-hero.staff .rst-hs strong{font-size:13.2px!important;}
  body.ww-roster-active .rst-hero.staff .rst-hero-add{font-size:10.6px!important;padding-inline:7px!important;gap:5px!important;}
}


/* ---- app-polish-v660.css ---- */
/* EarthRoster v660 — compact employee dashboard Today summary
   Keeps all Today information and Clock access while reducing the oversized mobile hero. */
@media (max-width:700px){
  .hm .hm-hero.staff{
    min-height:0!important;
    height:auto!important;
    margin:7px 10px 12px!important;
    padding:12px 13px 11px!important;
    border-radius:18px!important;
    box-shadow:0 8px 20px -14px rgba(9,30,17,.55)!important;
    background:
      radial-gradient(105% 90% at 100% 0%,rgba(201,151,91,.10),transparent 52%),
      linear-gradient(145deg,#285c39 0%,#173b25 100%)!important;
  }
  .hm .hm-hero.staff::after{opacity:.42!important;}
  .hm .hm-hero.staff .hm-hero-row{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    min-height:48px!important;
  }
  .hm .hm-hero.staff .hm-hero-copy{
    min-width:0!important;
    flex:1 1 auto!important;
  }
  .hm .hm-hero.staff .hm-eyebrow{
    display:block!important;
    margin:0 0 2px!important;
    font-size:8.5px!important;
    line-height:1!important;
    letter-spacing:.13em!important;
  }
  .hm .hm-hero.staff .hm-hero-copy h1{
    margin:0 0 2px!important;
    font-size:20px!important;
    line-height:1.04!important;
    letter-spacing:-.025em!important;
  }
  .hm .hm-hero.staff .hm-hero-copy p{
    margin:0!important;
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:11.2px!important;
    line-height:1.15!important;
    color:rgba(255,255,255,.78)!important;
  }
  .hm .hm-hero.staff .hm-hero-add{
    width:48px!important;
    min-width:48px!important;
    height:48px!important;
    min-height:48px!important;
    padding:0!important;
    border-radius:13px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:1px!important;
    box-shadow:0 4px 12px -7px rgba(0,0,0,.38)!important;
    background:#fffdf7!important;
    color:#173a26!important;
  }
  .hm .hm-hero.staff .hm-hero-add svg{
    width:17px!important;
    height:17px!important;
    min-width:17px!important;
    min-height:17px!important;
  }
  .hm .hm-hero.staff .hm-hero-add span{
    font-size:9.2px!important;
    line-height:1!important;
    font-weight:800!important;
  }
  .hm .hm-hero.staff .hm-hero-stats{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
    margin-top:9px!important;
  }
  .hm .hm-hero.staff .hm-hs{
    min-width:0!important;
    min-height:44px!important;
    height:44px!important;
    padding:5px 4px!important;
    border-radius:11px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:2px!important;
    background:rgba(255,255,255,.075)!important;
    border:1px solid rgba(255,255,255,.13)!important;
    box-shadow:none!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
  .hm .hm-hero.staff .hm-hs strong{
    font-size:17px!important;
    line-height:1!important;
    font-weight:850!important;
    letter-spacing:-.02em!important;
  }
  .hm .hm-hero.staff .hm-hs em{
    margin:0!important;
    font-size:7.8px!important;
    line-height:1!important;
    letter-spacing:.055em!important;
    white-space:nowrap!important;
  }
}
@media (max-width:390px){
  .hm .hm-hero.staff{margin:6px 8px 10px!important;padding:11px 11px 10px!important;border-radius:17px!important;}
  .hm .hm-hero.staff .hm-hero-copy h1{font-size:18.5px!important;}
  .hm .hm-hero.staff .hm-hero-copy p{font-size:10.6px!important;}
  .hm .hm-hero.staff .hm-hero-add{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;border-radius:12px!important;}
  .hm .hm-hero.staff .hm-hero-stats{gap:5px!important;margin-top:8px!important;}
  .hm .hm-hero.staff .hm-hs{height:42px!important;min-height:42px!important;border-radius:10px!important;}
  .hm .hm-hero.staff .hm-hs strong{font-size:16px!important;}
  .hm .hm-hero.staff .hm-hs em{font-size:7.2px!important;}
}


/* ---- app-polish-v661.css ---- */
/* EarthRoster v661 — mobile Messages safe-area + stable conversation viewport.
   Scope: open mobile conversation only. No roster/dashboard visual changes. */
@media (max-width:1023px){
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-thread-head,
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .ct-head,
  html body.chat-thread-open .chat-thread .chat-thread-head,
  html body.chat-thread-open .chat-thread .ct-head{
    box-sizing:border-box!important;
    min-height:calc(72px + env(safe-area-inset-top,0px))!important;
    padding-top:calc(9px + env(safe-area-inset-top,0px))!important;
    padding-right:12px!important;
    padding-bottom:9px!important;
    padding-left:12px!important;
    position:relative!important;
    z-index:12!important;
    flex:0 0 auto!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-scroll,
  html body.chat-thread-open .chat-thread .chat-scroll{
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overflow-anchor:none!important;
    scroll-behavior:auto!important;
    touch-action:pan-y!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
  }
  html body.ww-chat-active.chat-thread-open .chat-shell.show-thread .chat-thread .chat-composer,
  html body.chat-thread-open .chat-thread .chat-composer{
    flex:0 0 auto!important;
    padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))!important;
    position:relative!important;
    z-index:12!important;
  }
}


/* ---- app-polish-v662.css ---- */
/* EarthRoster v662 — professional reliability release.
   No visual redesign: only scroll ownership, safe areas, connectivity and
   interaction-state hardening. */
html,body{max-width:100%;overflow-x:hidden}
body:not(.chat-thread-open) .main,
body:not(.chat-thread-open) .content{
  scroll-behavior:auto!important;
  overflow-anchor:none!important;
}
@media (max-width:1023px){
  body:not(.chat-thread-open) .main,
  body:not(.chat-thread-open) .content,
  body.ww-roster-active .roster-mobile{
    touch-action:pan-y!important;
    overscroll-behavior-x:none!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body.ww-roster-active .roster-mobile,
  body.ww-roster-active .roster-mobile *{
    scroll-snap-type:none!important;
    scroll-snap-align:none!important;
  }
  /* Keep ordinary page headers below the iPhone status area when the installed
     app is launched standalone. Conversation safe-area rules remain in v661. */
  @media (display-mode:standalone){
    body:not(.chat-thread-open) .topbar{
      padding-top:calc(var(--topbar-pad-top, 12px) + env(safe-area-inset-top,0px))!important;
    }
  }
}

/* Small connectivity state. Hidden while online; it never changes layout. */
#ww662Connection{
  position:fixed;z-index:2147482000;left:50%;top:calc(8px + env(safe-area-inset-top,0px));
  transform:translate(-50%,-140%);opacity:0;pointer-events:none;
  display:flex;align-items:center;gap:7px;max-width:min(92vw,420px);
  padding:7px 11px;border-radius:999px;background:#2e332f;color:#fff;
  border:1px solid rgba(255,255,255,.14);box-shadow:0 8px 24px rgba(0,0,0,.20);
  font:700 11.5px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  transition:opacity .16s ease,transform .16s ease;
}
#ww662Connection.is-visible{opacity:1;transform:translate(-50%,0)}
#ww662Connection.is-online{background:#24472c}
#ww662Connection i{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.85}
@media(prefers-reduced-motion:reduce){#ww662Connection{transition:none}}


/* ---- app-polish-v663.css ---- */
/* EarthRoster v663 — compact Admin Action Centre + shift workflow. */
.ww663-action-centre{margin:14px 0 16px;background:#fff;border:1px solid rgba(36,69,46,.12);border-radius:18px;box-shadow:0 8px 24px rgba(31,53,38,.07);overflow:hidden}
.ww663-ac-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px 9px}
.ww663-ac-head>div:first-child{min-width:0}.ww663-ac-head span{display:block;font-size:9px;font-weight:900;letter-spacing:.12em;color:#758178}.ww663-ac-head h2{margin:3px 0 0;font-size:16px;line-height:1.1;color:#20372a}
.ww663-ac-count{display:flex;align-items:baseline;gap:4px;flex:0 0 auto;padding:7px 10px;border-radius:12px;background:#f4e6dc;color:#8b3d2d}.ww663-ac-count strong{font-size:19px;line-height:1}.ww663-ac-count small{font-size:9px;font-weight:900;text-transform:uppercase}
.ww663-ac-summary{display:flex;gap:7px;padding:0 15px 10px}.ww663-ac-summary span{font-size:10px;font-weight:800;padding:4px 8px;border-radius:999px;background:#edf2ed;color:#536158}.ww663-ac-summary .urgent{background:#fce8e4;color:#983f34}.ww663-ac-summary b{font-size:11px}
.ww663-ac-list{border-top:1px solid rgba(36,69,46,.08)}
.ww663-ac-row{appearance:none;width:100%;border:0;border-bottom:1px solid rgba(36,69,46,.075);background:#fff;display:grid;grid-template-columns:32px minmax(0,1fr) auto 15px;gap:9px;align-items:center;text-align:left;padding:9px 12px;cursor:pointer;color:inherit}.ww663-ac-row:last-child{border-bottom:0}.ww663-ac-row:hover{background:#f8faf7}
.ww663-ac-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#eef3ee;color:#365c43}.ww663-ac-icon svg{width:16px;height:16px}.ww663-ac-row.is-rejected .ww663-ac-icon,.ww663-ac-row.is-unassigned .ww663-ac-icon,.ww663-ac-row.is-clockout .ww663-ac-icon,.ww663-ac-row.is-flagged .ww663-ac-icon{background:#fbe8e4;color:#a23e31}.ww663-ac-row.is-late .ww663-ac-icon{background:#fff1d5;color:#8c6415}
.ww663-ac-copy{min-width:0}.ww663-ac-copy strong{display:block;font-size:12px;line-height:1.2;color:#263c2f}.ww663-ac-copy small{display:block;margin-top:2px;font-size:9.5px;line-height:1.25;color:#7c867e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ww663-ac-tag{font-size:8.5px!important;font-weight:900!important;letter-spacing:.03em!important;text-transform:uppercase;color:#45604d!important;background:#edf2ed;border-radius:999px;padding:5px 7px;white-space:nowrap}.ww663-ac-go{transform:rotate(180deg);color:#718078}.ww663-ac-go svg{width:13px;height:13px}
.ww663-ac-more{width:100%;border:0;border-top:1px solid rgba(36,69,46,.08);background:#f7f9f6;color:#46604e;font-size:10px;font-weight:850;padding:9px 12px;cursor:pointer}
.ww663-action-centre.is-clear{padding-bottom:12px;background:#f8fbf7}.ww663-action-centre.is-clear p{margin:0;padding:0 15px;font-size:10.5px;color:#6f7d72}.ww663-ac-clear{display:flex!important;align-items:center;gap:4px;font-size:9px!important;color:#2c7040!important;background:#e2f0e3;padding:6px 8px;border-radius:999px}.ww663-ac-clear svg{width:12px;height:12px}

.ww663-lifecycle{margin:10px 0 12px;border:1px solid rgba(43,72,51,.12);border-radius:15px;background:#f8faf7;padding:11px 12px}.ww663-lc-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.ww663-lc-head>div span{display:block;font-size:8px;font-weight:900;letter-spacing:.12em;color:#7e8980}.ww663-lc-head>div strong{display:block;margin-top:2px;font-size:13px;color:#273e30}.ww663-lc-state{font-size:8.5px;font-weight:900;border-radius:999px;padding:5px 7px;background:#e9eee9;color:#536158;white-space:nowrap}.ww663-lc-state.is-danger{background:#f9e3df;color:#9c3c31}.ww663-lc-state.is-live{background:#e1efe4;color:#2b6a3e}.ww663-lc-state.is-ready{background:#e8efe6;color:#3d6747}.ww663-lc-state.is-done{background:#dfeee1;color:#2d6c3e}.ww663-lc-state.is-waiting{background:#fff0d6;color:#805d1a}
.ww663-lc-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.ww663-lc-step{min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;color:#8a948c}.ww663-lc-step i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e6ebe6;border:1px solid #d6ded7;font-style:normal;font-size:9px;font-weight:900}.ww663-lc-step i svg{width:11px;height:11px}.ww663-lc-step span{max-width:100%;font-size:8px;line-height:1.05;font-weight:800;overflow-wrap:anywhere}.ww663-lc-step.is-done{color:#356945}.ww663-lc-step.is-done i{background:#dfeee1;border-color:#c6dec9;color:#2d6c3e}.ww663-lc-step.is-current{color:#735513}.ww663-lc-step.is-current i{background:#fff0d6;border-color:#efd7a7;color:#805d1a}.ww663-lc-step.is-attention{color:#943b31}.ww663-lc-step.is-attention i{background:#f9e3df;border-color:#efc8c2;color:#9c3c31}

@media(max-width:1023px){.ww663-action-centre{margin:10px 0 13px;border-radius:15px}.ww663-ac-head{padding:11px 12px 8px}.ww663-ac-head h2{font-size:14px}.ww663-ac-row{grid-template-columns:30px minmax(0,1fr) auto 13px;gap:7px;padding:8px 9px}.ww663-ac-icon{width:30px;height:30px}.ww663-ac-copy strong{font-size:11.25px}.ww663-ac-copy small{font-size:8.8px}.ww663-ac-tag{font-size:7.7px!important;padding:4px 6px}.ww663-ac-summary{padding:0 12px 8px}.ww663-lifecycle{padding:10px;margin-top:8px}}
@media(max-width:370px){.ww663-ac-tag{display:none}.ww663-ac-row{grid-template-columns:29px minmax(0,1fr) 13px}.ww663-lc-step span{font-size:7.4px}}


/* ---- app-polish-v664.css ---- */
/* EarthRoster v664 — workflow strengthening without changing the established visual language. */
.ww664-leave-panel{margin-top:18px;padding:0;overflow:hidden;border:1px solid rgba(36,69,46,.12);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(31,53,38,.055)}
.ww664-section-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:15px 16px 12px;border-bottom:1px solid rgba(36,69,46,.08)}
.ww664-section-head>div{min-width:0}.ww664-section-head span:first-child{display:block;font-size:8.5px;font-weight:900;letter-spacing:.12em;color:#7b887e}.ww664-section-head h3{margin:3px 0 3px;font-size:16px;line-height:1.15;color:#263c2f}.ww664-section-head p{margin:0;max-width:560px;color:#7a867c;font-size:10.5px;line-height:1.4}.ww664-count{flex:0 0 auto;border-radius:999px;background:#edf2ed;color:#56655a;padding:6px 9px;font-size:8.5px!important;font-weight:900!important;letter-spacing:.02em!important}.ww664-count.has{background:#fff0d6;color:#805d1a}
.ww664-leave-form{padding:13px 15px;background:#f8faf7;border-bottom:1px solid rgba(36,69,46,.08)}.ww664-two{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:9px}.ww664-two label>span{display:block;margin:0 0 4px;font-size:8.5px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:#718076}.ww664-leave-form .input{height:40px!important;min-height:40px!important;font-size:12px!important}.ww664-request-btn{min-height:38px!important;font-size:11px!important}.ww664-request-btn svg{width:14px;height:14px}
.ww664-leave-list{padding:4px 14px 10px}.ww664-leave-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto 24px;gap:8px;align-items:center;padding:9px 1px;border-bottom:1px solid rgba(36,69,46,.07)}.ww664-leave-row:last-child{border-bottom:0}.ww664-leave-dot{width:7px;height:7px;border-radius:50%;background:#d29d3e}.ww664-leave-row.is-approved .ww664-leave-dot{background:#3f8552}.ww664-leave-row.is-declined .ww664-leave-dot{background:#a24b3c}.ww664-leave-row strong{display:block;font-size:11.5px;color:#2a4031}.ww664-leave-row small{display:block;margin-top:2px;font-size:9px;color:#7d887f}.ww664-leave-row>b{font-size:7.5px;color:#6d786f;letter-spacing:.05em}.ww664-leave-row>button{border:0;background:#f1f3ef;color:#7a847c;width:24px;height:24px;border-radius:50%;font-size:17px;line-height:1;cursor:pointer}.ww664-empty{padding:14px 15px;color:#7c877e;font-size:10.5px}
.ww664-admin-leave{margin:0 0 16px}.ww664-admin-requests{padding:5px 14px 9px}.ww664-request-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(36,69,46,.07)}.ww664-request-card:last-child{border-bottom:0}.ww664-request-copy strong{display:block;font-size:11.5px;color:#2a4031}.ww664-request-copy small{display:block;margin-top:2px;font-size:9px;line-height:1.3;color:#7b867e}.ww664-request-actions{display:flex;gap:5px}.ww664-request-actions button{border:0;border-radius:9px;padding:7px 9px;font-size:8.5px;font-weight:900;cursor:pointer}.ww664-decline{background:#f5e6e2;color:#913d31}.ww664-approve{background:#e0eee2;color:#2d6a3d}.ww664-upcoming{padding:11px 15px 13px;background:#f8faf7;border-top:1px solid rgba(36,69,46,.08)}.ww664-mini-title{display:block;margin-bottom:6px;font-size:8px;font-weight:900;letter-spacing:.09em;color:#758177}.ww664-upcoming>div{display:flex;justify-content:space-between;gap:10px;padding:5px 0;font-size:9.5px}.ww664-upcoming strong{color:#2d4334}.ww664-upcoming div span{color:#7c877f;text-align:right}
.ww664-conflict-panel{margin:0 0 12px;border-radius:14px;border:1px solid #d8e3d9;background:#f7faf7;padding:10px 12px;display:flex;gap:9px;align-items:center}.ww664-conflict-panel .ww664-conflict-icon{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;flex:0 0 auto;background:#e6efe7;color:#3d7049}.ww664-conflict-icon svg{width:15px;height:15px}.ww664-conflict-panel>span:last-child strong,.ww664-conflict-head span:last-child strong{display:block;font-size:11.5px;color:#2b4232}.ww664-conflict-panel>span:last-child small,.ww664-conflict-head span:last-child small{display:block;margin-top:2px;font-size:9px;line-height:1.3;color:#758177}.ww664-conflict-panel.is-neutral{background:#f7f8f5}.ww664-conflict-panel.is-neutral .ww664-conflict-icon{background:#ecefe9;color:#6c786e}.ww664-conflict-panel.has-warning,.ww664-conflict-panel.has-block{display:block;padding:0;overflow:hidden}.ww664-conflict-head{display:flex;gap:9px;align-items:center;padding:10px 12px}.ww664-conflict-panel.has-warning{border-color:#edd8ad;background:#fffaf0}.ww664-conflict-panel.has-warning .ww664-conflict-icon{background:#fff0d2;color:#896215}.ww664-conflict-panel.has-block{border-color:#edc8c1;background:#fff7f5}.ww664-conflict-panel.has-block .ww664-conflict-icon{background:#f9e2de;color:#993e32}.ww664-conflict-list{border-top:1px solid rgba(80,70,45,.08);padding:5px 11px 8px}.ww664-conflict-list>div{display:grid;grid-template-columns:17px 1fr;gap:6px;align-items:start;padding:4px 0;font-size:9.2px;line-height:1.35;color:#665f4c}.ww664-conflict-list i{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:8px;font-weight:900;background:#f4e5c4;color:#7e5b14}.ww664-conflict-list .is-block{color:#873e35}.ww664-conflict-list .is-block i{background:#f3d9d4;color:#933e32}
.ww664-timeline{margin:10px 0 12px;border:1px solid rgba(43,72,51,.12);border-radius:15px;background:#fff;overflow:hidden}.ww664-tl-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid rgba(43,72,51,.08)}.ww664-tl-head span small{display:block;font-size:7.8px;font-weight:900;letter-spacing:.12em;color:#7c887f}.ww664-tl-head span strong{display:block;margin-top:2px;font-size:13px;color:#283f30}.ww664-tl-head>b{font-size:8px;padding:5px 7px;border-radius:999px;background:#eef2ed;color:#5f6d62}.ww664-tl-list{padding:4px 11px 8px}.ww664-tl-row{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;padding:6px 0}.ww664-tl-row:not(:last-child):before{content:"";position:absolute;left:12px;top:27px;bottom:-5px;width:1px;background:#dfe6df}.ww664-tl-row>i{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#edf1ed;color:#66746a;font-style:normal;font-size:8px;font-weight:900;z-index:1}.ww664-tl-row>i svg{width:11px;height:11px}.ww664-tl-row span strong{display:block;font-size:10.5px;color:#2a4132}.ww664-tl-row span small{display:block;margin-top:2px;font-size:8.5px;line-height:1.25;color:#7b867e}.ww664-tl-row.is-good>i{background:#e0eee2;color:#2f6b3e}.ww664-tl-row.is-bad>i{background:#f8e2de;color:#983f34}.ww664-tl-row.is-live>i{background:#e4eee6;color:#3e754c}
@media(max-width:700px){.ww664-section-head{padding:12px}.ww664-section-head h3{font-size:14px}.ww664-two{grid-template-columns:1fr;gap:7px}.ww664-leave-form{padding:11px 12px}.ww664-leave-list{padding:4px 11px 9px}.ww664-request-card{grid-template-columns:32px minmax(0,1fr);align-items:start}.ww664-request-actions{grid-column:2;justify-content:flex-end}.ww664-admin-requests{padding:5px 12px 9px}.ww664-upcoming{padding:10px 12px}.ww664-conflict-panel{margin-bottom:10px}.ww664-timeline{margin-top:8px}}


/* ---- app-polish-v665.css ---- */
/* EarthRoster v665 — Offline sync, audit and recovery UI */
.ww665-sync-pill{position:fixed;z-index:1800;left:max(14px,env(safe-area-inset-left));bottom:calc(18px + env(safe-area-inset-bottom));border:1px solid rgba(61,89,62,.18);background:#f4f2e9;color:#233328;border-radius:14px;padding:8px 10px;display:flex;align-items:center;gap:8px;box-shadow:0 8px 25px rgba(31,45,34,.16);opacity:0;pointer-events:none;transform:translateY(8px);transition:.22s ease;font-family:inherit;text-align:left;max-width:min(340px,calc(100vw - 28px))}.ww665-sync-pill.visible{opacity:1;pointer-events:auto;transform:none}.ww665-sync-pill i{width:9px;height:9px;border-radius:50%;background:#c58b37;box-shadow:0 0 0 4px rgba(197,139,55,.12)}.ww665-sync-pill[data-state="offline"] i{background:#aa6356}.ww665-sync-pill[data-state="failed"] i{background:#b83c31}.ww665-sync-pill span{display:grid;gap:1px;min-width:0}.ww665-sync-pill strong{font-size:11px;font-weight:900;letter-spacing:.01em}.ww665-sync-pill small{font-size:9px;opacity:.68;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ww665-open{overflow:hidden!important}.ww665-overlay{position:fixed;inset:0;z-index:10000;background:rgba(20,29,23,.46);display:flex;align-items:flex-end;justify-content:center;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom))}.ww665-sheet{width:min(720px,100%);max-height:min(82dvh,780px);background:#f8f6ef;border:1px solid rgba(61,89,62,.14);border-radius:22px;box-shadow:0 24px 80px rgba(17,27,20,.28);overflow:hidden;display:flex;flex-direction:column}.ww665-sheet>header{display:flex;align-items:center;justify-content:space-between;padding:17px 18px 14px;border-bottom:1px solid rgba(61,89,62,.12);background:#f2f0e7}.ww665-sheet>header span{display:grid;gap:2px}.ww665-sheet>header strong{font-size:17px;font-weight:900;color:#25382b}.ww665-sheet>header small{font-size:11px;color:#6d766f}.ww665-sheet>header button{width:34px;height:34px;border-radius:50%;border:1px solid rgba(61,89,62,.14);background:#fff;color:#344c39;font-size:22px;line-height:1}.ww665-sheet>main{padding:14px;overflow:auto;-webkit-overflow-scrolling:touch}.ww665-summary,.ww665-recovery-note{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border-radius:14px;background:#e9efe5;border:1px solid rgba(61,89,62,.12);margin-bottom:10px}.ww665-summary span,.ww665-recovery-note{color:#334b38}.ww665-summary span{display:grid;gap:2px}.ww665-summary b,.ww665-recovery-note strong{font-size:12px;font-weight:900}.ww665-summary small,.ww665-recovery-note span{font-size:10px;opacity:.76}.ww665-summary button,.ww665-recovery-row button{border:0;border-radius:10px;background:#476b4b;color:#fff;padding:8px 10px;font-size:10px;font-weight:900}.ww665-summary.is-failed{background:#f8e7e1;color:#7c3028}.ww665-list{display:grid;gap:7px}.ww665-row,.ww665-audit-row,.ww665-recovery-row{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid rgba(61,89,62,.1);border-radius:13px;padding:10px 11px}.ww665-row>span,.ww665-audit-row>span,.ww665-recovery-row>span{display:grid;gap:2px;min-width:0;flex:1}.ww665-row strong,.ww665-audit-row strong,.ww665-recovery-row strong{font-size:11px;color:#293c2f}.ww665-row small,.ww665-audit-row small,.ww665-recovery-row small{font-size:9px;color:#747b75;line-height:1.35}.ww665-row .st{width:9px;height:9px;border-radius:50%;background:#849484;flex:0 0 auto}.ww665-row .st.saved{background:#aa6356}.ww665-row .st.waiting{background:#c58b37}.ww665-row .st.failed{background:#b83c31}.ww665-row .st.synced{background:#5b825f}.ww665-audit-row>i{width:28px;height:28px;border-radius:9px;background:#e9efe5;color:#446248;display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:900;flex:0 0 auto}.ww665-audit-row em{font-size:8.5px;color:#879088;font-style:normal}.ww665-toolbar{display:flex;justify-content:flex-end;padding:2px 3px 9px;color:#6e776f;font-size:10px}.ww665-toolbar b{color:#35523b}.ww665-empty{padding:28px 14px;text-align:center;color:#7a827b;font-size:11px}.ww665-undo{position:fixed;z-index:11000;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translate(-50%,12px);width:min(420px,calc(100vw - 28px));background:#24372a;color:#fff;border-radius:15px;padding:10px 11px 10px 13px;display:flex;align-items:center;gap:10px;box-shadow:0 14px 40px rgba(14,23,17,.3);opacity:0;transition:.2s ease}.ww665-undo.show{opacity:1;transform:translate(-50%,0)}.ww665-undo span{display:grid;gap:1px;min-width:0;flex:1}.ww665-undo strong{font-size:11px}.ww665-undo small{font-size:9px;opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ww665-undo button{border:0;border-radius:10px;background:#e8efe5;color:#29412e;font-size:10px;font-weight:900;padding:8px 11px}.ww665-protection-card{background:#f3f1e9;border:1px solid rgba(61,89,62,.12);border-radius:17px;padding:13px;margin-bottom:16px}.ww665-protection-top{display:flex;align-items:center;gap:9px}.ww665-protection-top>span:nth-child(2){display:grid;gap:2px;min-width:0;flex:1}.ww665-protection-top strong{font-size:12px;color:#293d2f}.ww665-protection-top small{font-size:9px;color:#747d75}.ww665-protection-top>b{font-size:9px;padding:6px 8px;border-radius:999px;background:#e4eadf;color:#46624a;white-space:nowrap}.ww665-protect-icon{width:29px;height:29px;border-radius:9px;display:grid;place-items:center;background:#dce8d9;color:#3e6345;font-weight:900}.ww665-protection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:11px}.ww665-protection-grid button{border:1px solid rgba(61,89,62,.1);background:#fff;border-radius:11px;padding:9px 5px;display:grid;gap:2px;text-align:center;color:#394e3e}.ww665-protection-grid strong{font-size:15px}.ww665-protection-grid span{font-size:8px;font-weight:800;color:#7a827c}.ww665-recovery-note{display:grid;justify-content:stretch}.ww665-recovery-row button{flex:0 0 auto}.ww665-recovery-row{align-items:center}
@media(min-width:760px){.ww665-overlay{align-items:center}.ww665-sheet{border-radius:20px}.ww665-sync-pill{left:22px;bottom:22px}}
@media(max-width:520px){.ww665-overlay{padding:0;align-items:flex-end}.ww665-sheet{width:100%;max-height:86dvh;border-radius:22px 22px 0 0;border-bottom:0}.ww665-sheet>header{padding-top:15px}.ww665-protection-grid span{font-size:7.5px}.ww665-sync-pill{bottom:calc(76px + env(safe-area-inset-bottom))}}


/* ---- app-polish-v666.css ---- */
/* EarthRoster v666 — field job completion. Existing EarthRoster palette preserved. */
.ww666-open{overflow:hidden!important}
.ww666-open-job{width:100%;display:flex;align-items:center;gap:12px;border:1px solid rgba(32,78,51,.16);background:linear-gradient(135deg,#f3f8f1,#edf5ed);border-radius:16px;padding:12px 13px;margin:12px 0 10px;text-align:left;color:#193923;box-shadow:0 8px 22px rgba(27,67,43,.08)}
.ww666-open-job .ww666-job-btn-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#234f35;color:white;flex:0 0 auto}.ww666-open-job svg{width:18px;height:18px}.ww666-open-job>span:nth-child(2){display:grid;gap:2px;min-width:0;flex:1}.ww666-open-job strong{font-size:14px}.ww666-open-job em{font-size:11px;font-style:normal;color:#65766a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ww666-open-job>b{transform:rotate(180deg);display:grid;color:#708078}
.ww666-overlay{position:fixed;inset:0;z-index:10050;background:rgba(13,29,20,.52);backdrop-filter:blur(6px);display:flex;justify-content:center;align-items:flex-end}.ww666-sheet{width:min(720px,100%);height:min(92dvh,920px);background:#f7f8f3;border-radius:24px 24px 0 0;overflow:hidden;box-shadow:0 -18px 60px rgba(8,26,16,.22);display:flex;flex-direction:column}.ww666-sheet>header{min-height:72px;display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px;background:#173b28;color:#fff}.ww666-sheet>header span{display:grid;gap:2px;min-width:0}.ww666-sheet>header small{font-size:9px;font-weight:800;letter-spacing:.12em;color:#bad2bf}.ww666-sheet>header strong{font:600 21px/1.05 Georgia,serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ww666-back,.ww666-head-more{width:40px;height:40px;border:0;border-radius:13px;background:rgba(255,255,255,.11);color:#fff;display:grid;place-items:center}.ww666-back svg{transform:none}.ww666-head-more{font-size:25px;font-weight:300}.ww666-sheet>main{overflow:auto;overscroll-behavior:contain;padding:14px 14px calc(24px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch}
.ww666-job{display:grid;gap:12px}.ww666-job-hero{padding:18px;border-radius:20px;background:linear-gradient(145deg,#214b34,#173a27);color:#fff;box-shadow:0 12px 30px rgba(20,59,38,.16)}.ww666-job-hero.is-complete{background:linear-gradient(145deg,#476545,#294d34)}.ww666-live{display:inline-flex;align-items:center;gap:7px;font-size:9px;letter-spacing:.11em;font-weight:900;color:#d7ead9}.ww666-live i{width:8px;height:8px;border-radius:50%;background:#9ed4a4;box-shadow:0 0 0 4px rgba(158,212,164,.12)}.ww666-job-hero h2{font:600 25px/1.1 Georgia,serif;margin:9px 0 10px}.ww666-job-hero>button{width:100%;display:flex;align-items:center;gap:8px;border:0;background:rgba(255,255,255,.08);color:#fff;border-radius:12px;padding:9px 10px;text-align:left}.ww666-job-hero>button span{flex:1;font-size:12px}.ww666-job-hero>button svg{width:15px}.ww666-job-meta{display:flex;justify-content:space-between;gap:12px;margin-top:12px;padding-top:11px;border-top:1px solid rgba(255,255,255,.13);font-size:11px;color:#d5e4d8}.ww666-job-meta span{display:flex;align-items:center;gap:6px}
.ww666-panel{background:#fff;border:1px solid rgba(31,70,47,.12);border-radius:18px;padding:14px;box-shadow:0 7px 20px rgba(31,62,42,.045)}.ww666-panel-title{display:flex;align-items:center;gap:10px;margin-bottom:12px}.ww666-panel-title>span{width:34px;height:34px;border-radius:11px;background:#edf4ec;color:#245038;display:grid;place-items:center;flex:0 0 auto}.ww666-panel-title>span svg{width:16px;height:16px}.ww666-panel-title>div{display:grid;gap:1px;flex:1;min-width:0}.ww666-panel-title strong{font-size:13px;color:#213b2a}.ww666-panel-title small{font-size:10px;color:#768078}.ww666-instructions{font-size:12px;line-height:1.55;color:#48574d;background:#f7f8f4;border-radius:12px;padding:12px;white-space:pre-wrap}.ww666-empty-mini{display:grid;gap:3px;background:#f7f8f4;border-radius:12px;padding:12px}.ww666-empty-mini strong{font-size:12px;color:#465a4b}.ww666-empty-mini span{font-size:10px;color:#818981}
.ww666-check-list{display:grid;gap:7px}.ww666-check{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:10px;width:100%;border:1px solid #e2e8e1;background:#fbfcf9;border-radius:12px;padding:9px 10px;text-align:left;color:#33483a}.ww666-check i{width:27px;height:27px;border:1.5px solid #afbeb1;border-radius:9px;display:grid;place-items:center;background:#fff}.ww666-check.done{background:#f1f7ef;border-color:#c8dbc8}.ww666-check.done i{background:#345e41;border-color:#345e41;color:#fff}.ww666-check.done span{text-decoration:line-through;color:#617167}.ww666-check:disabled{opacity:1;cursor:default}
.ww666-photo-label{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:9px;color:#78847b}.ww666-photo-label select{border:1px solid #d9e1d8;background:#fff;border-radius:9px;padding:6px 7px;color:#294334;font-size:10px}.ww666-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ww666-photo{position:relative;aspect-ratio:1;border:0;border-radius:13px;overflow:hidden;background:#eef2ec;padding:0}.ww666-photo img{width:100%;height:100%;object-fit:cover}.ww666-photo span{position:absolute;left:5px;bottom:5px;background:rgba(20,49,32,.83);color:#fff;border-radius:8px;padding:4px 6px;font-size:8px;font-weight:800}.ww666-photo-add{aspect-ratio:1;border:1.5px dashed #bdcbbd;background:#f6f9f4;border-radius:13px;display:grid;place-items:center;align-content:center;gap:3px;color:#31533b}.ww666-photo-add span{width:31px;height:31px;border-radius:10px;background:#e8f1e6;display:grid;place-items:center}.ww666-photo-add strong{font-size:10px}.ww666-photo-add em{font-size:8px;font-style:normal;color:#7b887e}
.ww666-issues .ww666-panel-title>button{border:0;background:#edf3ec;color:#294c36;border-radius:10px;padding:7px 9px;font-size:10px;font-weight:800}.ww666-issue-list{display:grid;gap:7px}.ww666-issue-list>button{width:100%;display:grid;grid-template-columns:30px minmax(0,1fr) 18px;gap:9px;align-items:center;border:1px solid #efd9cf;background:#fff8f4;border-radius:12px;padding:9px;text-align:left}.ww666-issue-list>button.resolved{border-color:#d9e5d8;background:#f5f8f3}.ww666-issue-list i{width:28px;height:28px;border-radius:9px;background:#f4d8ca;color:#9c4c2e;display:grid;place-items:center}.ww666-issue-list .resolved i{background:#dceadc;color:#315c3c}.ww666-issue-list span{display:grid;gap:1px;min-width:0}.ww666-issue-list strong{font-size:11px;color:#4c342b}.ww666-issue-list small{font-size:9px;color:#81736d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ww666-panel>textarea{width:100%;min-height:82px;border:1px solid #dce4dc;border-radius:12px;background:#fbfcf9;padding:11px;font:12px/1.45 inherit;color:#2b4032;resize:vertical}.ww666-job-actions{position:sticky;bottom:-14px;display:grid;grid-template-columns:.8fr 1.2fr;gap:9px;background:linear-gradient(transparent,#f7f8f3 20%);padding:18px 0 4px;z-index:4}.ww666-job-actions button{min-height:48px;border-radius:14px;font-size:12px;font-weight:800}.ww666-save{border:1px solid #ccd8cc;background:#fff;color:#35513d}.ww666-complete{border:0;background:#234f35;color:#fff;display:flex;justify-content:center;align-items:center;gap:7px;box-shadow:0 9px 20px rgba(35,79,53,.18)}.ww666-complete.done{background:#52705a}.ww666-complete-note{background:#ecf5ea;border:1px solid #cfe0cc;border-radius:14px;padding:11px;display:grid;gap:2px;color:#34533c}.ww666-complete-note strong{font-size:11px}.ww666-complete-note span{font-size:9px;line-height:1.4}
.ww666-checklist-builder{margin-top:10px}.ww666-checklist-builder label{display:grid;gap:6px}.ww666-checklist-builder label>span{font-size:11px;font-weight:800;color:#384c3e;display:flex;align-items:center;gap:6px}.ww666-checklist-builder label>span small{font-weight:500;color:#8a938b}.ww666-checklist-builder textarea{min-height:92px}.ww666-checklist-builder em{font-size:9px;font-style:normal;color:#828b83;line-height:1.35}
.ww666-report{display:grid;gap:14px}.ww666-report-intro{display:flex;gap:11px;background:#fff1e8;border:1px solid #efd2c0;border-radius:16px;padding:13px}.ww666-report-intro>span{width:37px;height:37px;border-radius:11px;background:#e9c3ae;color:#844427;display:grid;place-items:center;flex:0 0 auto}.ww666-report-intro strong{font-size:13px;color:#593c2d}.ww666-report-intro p{margin:3px 0 0;font-size:10px;line-height:1.45;color:#846f64}.ww666-report>label{display:grid;gap:6px}.ww666-report>label>span{font-size:10px;font-weight:800;color:#4c5a50}.ww666-report select,.ww666-report textarea{width:100%;border:1px solid #d8e0d7;border-radius:12px;background:#fff;padding:11px;color:#2e4234;font:12px inherit}.ww666-report textarea{min-height:120px;resize:vertical}.ww666-issue-photo-wrap{display:grid;gap:8px}.ww666-issue-photo-wrap>button{border:1px dashed #bfcbbf;border-radius:12px;background:#f6f9f4;padding:10px;color:#31533b;font-size:11px;font-weight:800}.ww666-issue-photo-wrap button small{font-weight:500;color:#7d887f}.ww666-issue-photo-wrap #ww666_issue_preview{display:flex;align-items:center;gap:9px}.ww666-issue-photo-wrap img{width:72px;height:72px;object-fit:cover;border-radius:12px}.ww666-issue-photo-wrap #ww666_issue_preview span{font-size:10px;color:#66746a}.ww666-report-actions{display:grid;grid-template-columns:.7fr 1.3fr;gap:9px}.ww666-report-actions button{min-height:46px;border:1px solid #d5ddd4;border-radius:13px;background:#fff;color:#3c5142;font-size:11px;font-weight:800}.ww666-report-actions .primary{border:0;background:#8d452c;color:#fff}
.ww666-incident-detail{display:grid;gap:13px}.ww666-incident-status{display:flex;align-items:center;gap:11px;border:1px solid #eed3c4;background:#fff3ec;border-radius:16px;padding:13px}.ww666-incident-status.resolved{border-color:#cfe0ce;background:#f0f7ee}.ww666-incident-status>i{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#ebc7b4;color:#814127}.ww666-incident-status.resolved>i{background:#d6e8d5;color:#315a3c}.ww666-incident-status>span{display:grid;gap:2px}.ww666-incident-status strong{font-size:14px;color:#50372c}.ww666-incident-status small{font-size:9px;color:#8a756a}.ww666-incident-detail dl{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0}.ww666-incident-detail dl>div{background:#fff;border:1px solid #e3e7e1;border-radius:11px;padding:9px}.ww666-incident-detail dt{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:#8a928b}.ww666-incident-detail dd{margin:3px 0 0;font-size:11px;font-weight:700;color:#35493b}.ww666-incident-detail section{background:#fff;border:1px solid #e2e7e1;border-radius:13px;padding:12px}.ww666-incident-detail section>strong{font-size:10px;color:#47584b}.ww666-incident-detail section p{margin:6px 0 0;font-size:11px;line-height:1.5;color:#57645b;white-space:pre-wrap}.ww666-incident-photos{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.ww666-incident-photos button{border:0;background:#fff;border-radius:12px;overflow:hidden;padding:0;position:relative}.ww666-incident-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.ww666-incident-photos span{position:absolute;left:6px;bottom:6px;background:rgba(30,57,39,.84);color:#fff;font-size:8px;padding:4px 6px;border-radius:7px}.ww666-resolve{border:0;background:#294f36;color:white;border-radius:13px;padding:13px;font-size:11px;font-weight:800}.ww666-resolved-note,.ww666-open-note{border-radius:12px;padding:10px;background:#edf5eb;color:#45604a;font-size:10px}
.ww666-admin-summary{margin:12px 0;background:#f6f8f3;border:1px solid #d8e2d6;border-radius:16px;padding:12px}.ww666-admin-head{display:flex;align-items:center;gap:9px}.ww666-admin-head>span{width:34px;height:34px;border-radius:10px;background:#dfeadf;color:#345c3e;display:grid;place-items:center}.ww666-admin-head>div{display:grid;gap:1px;flex:1}.ww666-admin-head small{font-size:8px;letter-spacing:.08em;font-weight:900;color:#7b887c}.ww666-admin-head strong{font-size:12px;color:#314938}.ww666-admin-head>b{font-size:9px;color:#5f7063;background:#fff;border:1px solid #dbe4da;border-radius:9px;padding:6px 7px}.ww666-admin-checklist{display:grid;gap:3px;margin-top:10px;padding:9px;background:#fff;border-radius:10px}.ww666-admin-checklist strong{font-size:9px;color:#526256}.ww666-admin-checklist span{font-size:9px;color:#758078;line-height:1.4}.ww666-admin-workers{display:grid;gap:6px;margin-top:9px}.ww666-admin-workers button{display:grid;grid-template-columns:28px 1fr 17px;gap:8px;align-items:center;border:0;background:#fff;border-radius:10px;padding:8px;text-align:left}.ww666-admin-workers i{width:27px;height:27px;border-radius:9px;background:#eef1eb;color:#6e7a70;display:grid;place-items:center}.ww666-admin-workers i.done{background:#dfeadf;color:#31593b}.ww666-admin-workers span{display:grid;gap:1px}.ww666-admin-workers strong{font-size:10px;color:#34493a}.ww666-admin-workers small{font-size:8px;color:#7d877f}.ww666-admin-issue{width:100%;margin-top:8px;border:1px solid #ebcdbb;background:#fff2e9;color:#7c432d;border-radius:10px;padding:8px 9px;font-size:9px;font-weight:800;display:flex;gap:6px;align-items:center}.ww666-admin-issue span{margin-left:auto}.ww666-admin-job{display:grid;gap:12px}.ww666-admin-job-top{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #dce4db;border-radius:14px;padding:11px}.ww666-admin-job-top>span{width:36px;height:36px;border-radius:11px;background:#edf1eb;display:grid;place-items:center}.ww666-admin-job-top>span.done{background:#dbe9da;color:#315b3c}.ww666-admin-job-top>div{display:grid;gap:1px;flex:1}.ww666-admin-job-top strong{font-size:12px;color:#334a3a}.ww666-admin-job-top small{font-size:9px;color:#7a857c}.ww666-admin-job-top b{font-size:9px;color:#5f7062}.ww666-admin-job>section{background:#fff;border:1px solid #dfe5de;border-radius:14px;padding:12px}.ww666-admin-job h3{font-size:10px;margin:0 0 9px;color:#526055;text-transform:uppercase;letter-spacing:.06em}.ww666-admin-job p{font-size:11px;line-height:1.5;color:#59665c;white-space:pre-wrap;margin:0}.ww666-timesheet-photo-labels{margin:10px 0;padding:10px;border-radius:11px;background:#f3f7f0;border:1px solid #d8e4d5;display:grid;gap:3px}.ww666-timesheet-photo-labels strong{font-size:10px;color:#3c5542}.ww666-timesheet-photo-labels span{font-size:9px;color:#728075}
.ww666-lightbox{position:fixed;inset:0;z-index:10120;background:rgba(5,15,9,.91);display:grid;place-items:center;padding:22px}.ww666-lightbox img{max-width:100%;max-height:82dvh;object-fit:contain;border-radius:15px}.ww666-lightbox span{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);background:rgba(255,255,255,.12);color:white;padding:7px 11px;border-radius:10px;font-size:10px}.ww666-lightbox button{position:fixed;right:18px;top:calc(18px + env(safe-area-inset-top,0px));width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:white;font-size:25px}
@media(min-width:760px){.ww666-overlay{align-items:center;padding:24px}.ww666-sheet{border-radius:24px;height:min(88vh,880px)}.ww666-photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:390px){.ww666-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ww666-job-meta{font-size:10px}.ww666-sheet>header strong{font-size:19px}}
/* v666 icon sizing guard: keep inherited SVGs compact inside field-work controls. */
.ww666-overlay svg{width:18px;height:18px;max-width:18px;max-height:18px;flex:0 0 auto}
.ww666-job-hero>button svg{width:15px;height:15px}
.ww666-open-job svg{width:18px;height:18px}
/* Keep v666 field-summary icons compact when rendered inside the legacy shift modal. */
.ww666-admin-summary svg,.ww666-admin-job svg,.ww666-timesheet-photo-labels svg{width:16px;height:16px;max-width:16px;max-height:16px;flex:0 0 auto}


/* ---- app-polish-v667.css ---- */
/* EarthRoster v667 — compact operational health UI */
.ww667-health-strip{width:100%;border:1px solid rgba(24,52,31,.12);background:linear-gradient(135deg,#f8f5ec,#eef4e9);border-radius:18px;padding:12px 14px;margin:0 0 12px;display:flex;align-items:center;gap:11px;text-align:left;color:#18341f;box-shadow:0 8px 24px rgba(22,47,29,.06)}
.ww667-health-strip.is-warning{background:linear-gradient(135deg,#fff9ea,#f8f0d9);border-color:rgba(168,111,22,.18)}.ww667-health-strip.is-attention{background:linear-gradient(135deg,#fff4f0,#f9e9e3);border-color:rgba(176,70,46,.2)}
.ww667-health-icon{width:36px;height:36px;border-radius:13px;display:grid;place-items:center;background:#18341f;color:#fff;flex:0 0 auto}.ww667-health-icon svg{width:18px!important;height:18px!important;max-width:18px!important;max-height:18px!important}.ww667-health-strip.is-warning .ww667-health-icon{background:#a36b17}.ww667-health-strip.is-attention .ww667-health-icon{background:#a94734}
.ww667-health-copy{min-width:0;flex:1;display:block}.ww667-health-copy small{display:block;font-size:9px;letter-spacing:.11em;font-weight:900;color:#78806d}.ww667-health-copy strong{display:block;font-size:14px;line-height:1.2;margin-top:1px}.ww667-health-copy em{display:block;font-style:normal;font-size:10.5px;color:#65705f;font-weight:720;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.ww667-health-go{transform:rotate(180deg);opacity:.55}.ww667-health-go svg{width:16px!important;height:16px!important}
.ww663-ac-row.is-anomaly .ww663-ac-icon,.ww663-ac-row.is-escalation .ww663-ac-icon,.ww663-ac-row.is-push-health .ww663-ac-icon,.ww663-ac-row.is-system-health .ww663-ac-icon{background:#fff0e8;color:#a94734}.ww663-ac-row.is-escalation{border-color:rgba(169,71,52,.22)}
.ww667-overlay{position:fixed;inset:0;z-index:100000;background:rgba(13,28,18,.5);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:flex-end}.ww667-sheet{width:min(720px,100%);height:min(92dvh,880px);background:#f7f3e9;border-radius:28px 28px 0 0;overflow:hidden;box-shadow:0 -20px 60px rgba(0,0,0,.25);display:flex;flex-direction:column}.ww667-sheet>header{padding:calc(16px + env(safe-area-inset-top,0px)) 18px 13px;display:flex;align-items:center;justify-content:space-between;background:#17371f;color:#fff}.ww667-sheet>header span small{display:block;font-size:9px;letter-spacing:.14em;font-weight:900;opacity:.7}.ww667-sheet>header span strong{display:block;font-size:20px}.ww667-sheet>header button{border:0;background:rgba(255,255,255,.12);color:#fff;width:38px;height:38px;border-radius:13px;font-size:25px}.ww667-sheet>main{overflow:auto;padding:14px 14px calc(24px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain}
.ww667-health-hero{display:flex;gap:12px;align-items:center;padding:14px;border-radius:18px;background:#eef5ea;border:1px solid rgba(44,100,58,.14)}.ww667-health-hero>span{width:38px;height:38px;display:grid;place-items:center;border-radius:14px;background:#245934;color:#fff}.ww667-health-hero>span svg{width:18px!important;height:18px!important}.ww667-health-hero strong{display:block;color:#18341f}.ww667-health-hero small{display:block;color:#66705f;font-size:11px;font-weight:720;margin-top:2px}.ww667-health-hero.is-warning{background:#fff7e6}.ww667-health-hero.is-warning>span{background:#a36b17}.ww667-health-hero.is-attention{background:#fff0eb}.ww667-health-hero.is-attention>span{background:#a94734}
.ww667-health-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.ww667-health-grid span{background:#fff;border:1px solid rgba(24,52,31,.1);border-radius:15px;padding:10px 8px;text-align:center}.ww667-health-grid b{display:block;color:#18341f;font-size:17px}.ww667-health-grid em{display:block;font-style:normal;color:#78806d;font-size:9.5px;font-weight:800;margin-top:2px}.ww667-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.ww667-actions button{border:1px solid rgba(24,52,31,.14);background:#fff;color:#18341f;border-radius:14px;padding:11px;font-weight:850}.ww667-actions button.primary{background:#18341f;color:#fff}
.ww667-section{background:#fff;border:1px solid rgba(24,52,31,.1);border-radius:19px;margin:10px 0;overflow:hidden}.ww667-section-head{display:flex;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid rgba(24,52,31,.08)}.ww667-section-head strong{display:block;color:#18341f;font-size:13px}.ww667-section-head small{display:block;color:#78806d;font-size:10px;line-height:1.35;margin-top:2px}.ww667-section-head>b{min-width:30px;height:30px;border-radius:11px;background:#edf3e8;color:#31513a;display:grid;place-items:center;font-size:12px}.ww667-list{display:block}
.ww667-push-row,.ww667-anomaly-row,.ww667-data-row{width:100%;display:flex;align-items:center;gap:10px;padding:11px 13px;border:0;border-bottom:1px solid rgba(24,52,31,.07);background:#fff;text-align:left;color:#18341f}.ww667-push-row:last-child,.ww667-anomaly-row:last-child,.ww667-data-row:last-child{border-bottom:0}.ww667-push-row>span:nth-child(2),.ww667-anomaly-row>span:nth-child(2){min-width:0;flex:1}.ww667-push-row strong,.ww667-anomaly-row strong{display:block;font-size:12px}.ww667-push-row small,.ww667-anomaly-row small{display:block;font-size:10px;color:#78806d;line-height:1.35;margin-top:2px}.ww667-push-row>b{font-size:9.5px;padding:5px 7px;border-radius:9px;background:#edf3e8;color:#31513a;white-space:nowrap}.ww667-push-row.is-warn>b{background:#fff2d8;color:#8a5d18}.ww667-push-row.is-bad>b{background:#fde9e2;color:#9e4333}.ww667-anomaly-row>b{font-size:10px;color:#486050}.ww667-severity{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;background:#fde9e2;color:#9e4333;font-weight:950;flex:0 0 auto}.ww667-data-row span{width:25px;height:25px;border-radius:9px;background:#fff0e8;color:#a94734;display:grid;place-items:center;flex:0 0 auto}.ww667-data-row span svg{width:13px!important;height:13px!important}.ww667-data-row strong{font-size:11px}.ww667-empty{padding:18px;text-align:center;color:#78806d;font-size:11px;font-weight:750}.ww667-empty.good{color:#456b4f}
body.ww667-health-open{overflow:hidden}
@media(max-width:520px){.ww667-health-strip{padding:10px 11px;border-radius:16px}.ww667-health-copy em{font-size:9.5px}.ww667-health-grid{grid-template-columns:1fr 1fr}.ww667-sheet{height:94dvh}.ww667-actions{grid-template-columns:1fr}.ww667-push-row{align-items:flex-start}.ww667-push-row>b{max-width:110px;white-space:normal;text-align:right}}


/* ---- app-polish-v668.css ---- */
/* EarthRoster v668 */
.ww668-series-pill{font-size:8px;font-weight:950;letter-spacing:.1em;padding:5px 7px;border-radius:999px;background:#e7efe3;color:#31513a}.ww668-repeat-grid{align-items:end}.ww668-custom{display:none}.ww668-custom.show{display:block}.ww668-custom>span:last-child{display:flex;gap:7px;align-items:center}.ww668-custom em{font-style:normal;font-size:10px;font-weight:850;color:#758071}.ww668-preview{margin-top:8px;padding:10px 11px;border-radius:13px;background:#f4f1e8;border:1px solid rgba(24,52,31,.09)}.ww668-preview strong,.ww668-preview small{display:block}.ww668-preview strong{font-size:11px;color:#18341f}.ww668-preview small{margin-top:2px;font-size:9px;line-height:1.4;color:#798276}.ww668-publish-warn{display:flex;gap:7px;align-items:flex-start;margin-top:8px;padding:9px;border-radius:12px;background:#fff3d9;color:#805617}.ww668-publish-warn>svg{width:15px!important;height:15px!important}.ww668-publish-warn strong,.ww668-publish-warn small{display:block}.ww668-publish-warn strong{font-size:10px}.ww668-publish-warn small{font-size:8.5px;margin-top:1px}
.ww668-smart{margin:0 0 10px;padding:10px;border-radius:17px;background:linear-gradient(135deg,#f7f5ed,#edf4e9);border:1px solid rgba(24,52,31,.12)}.ww668-smart-head{display:flex;gap:8px;align-items:center}.ww668-smart-head>svg{width:31px!important;height:31px!important;padding:7px;border-radius:11px;background:#18341f;color:#fff;box-sizing:border-box}.ww668-smart-head>span{min-width:0;flex:1}.ww668-smart-head strong,.ww668-smart-head small{display:block}.ww668-smart-head strong{font-size:11.5px;color:#18341f}.ww668-smart-head small{font-size:8.7px;color:#788174;margin-top:1px}.ww668-smart-head>b{font-size:8.5px;padding:5px 7px;border-radius:9px;background:#dfeadc;color:#31513a;white-space:nowrap}.ww668-smart-list{display:grid;gap:5px;margin-top:8px}.ww668-smart-list>button{display:flex;width:100%;align-items:center;gap:8px;border:1px solid rgba(24,52,31,.08);border-radius:12px;background:#fff;padding:8px;text-align:left;color:#18341f}.ww668-smart-list>button.top{border-color:rgba(49,104,61,.27)}.ww668-smart-list i{width:24px;height:24px;display:grid;place-items:center;border-radius:8px;background:#edf2e8;font-size:8px;font-style:normal;font-weight:950}.ww668-smart-list .top i{background:#18341f;color:#fff}.ww668-smart-list>button>span{min-width:0;flex:1}.ww668-smart-list strong,.ww668-smart-list small{display:block}.ww668-smart-list strong{font-size:10.5px}.ww668-smart-list small{font-size:8.3px;color:#7b8478;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.ww668-smart-list>button>b{font-size:12px}.ww668-smart-list>button>b em{font-size:7px;font-style:normal;color:#92988f}.ww668-excluded{display:block;text-align:right;margin-top:6px;font-size:8px;color:#887a6f}.ww668-no-safe{display:flex;gap:7px;align-items:center;margin-top:7px;padding:8px;border-radius:11px;background:#fff0eb;color:#974b38}.ww668-no-safe svg{width:15px!important;height:15px!important}.ww668-no-safe strong,.ww668-no-safe small{display:block}.ww668-no-safe strong{font-size:9.5px}.ww668-no-safe small{font-size:8px}
.ww668-ops{margin-top:14px;padding:0!important;overflow:hidden}.ww668-ops-head{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;padding:13px;border-bottom:1px solid rgba(24,52,31,.08)}.ww668-ops-head small,.ww668-ops-head strong,.ww668-ops-head em{display:block}.ww668-ops-head>span>small{font-size:7.5px;letter-spacing:.13em;font-weight:950;color:#869184}.ww668-ops-head>span>strong{font-size:14px;color:#18341f}.ww668-ops-head>span>em{font-size:8.5px;font-style:normal;color:#7b8478;margin-top:1px}.ww668-ops-head>button{border:0;border-radius:10px;padding:8px;background:#18341f;color:#fff;font-size:8.5px;font-weight:900;display:flex;align-items:center;gap:4px;white-space:nowrap}.ww668-ops-head>button svg{width:12px!important;height:12px!important}.ww668-stats{display:grid;grid-template-columns:repeat(4,1fr);background:rgba(24,52,31,.06);gap:1px}.ww668-stats span{background:#fbfaf6;text-align:center;padding:9px 3px}.ww668-stats b,.ww668-stats small{display:block}.ww668-stats b{font-size:14px;color:#18341f}.ww668-stats small{font-size:7.8px;color:#7d867a}.ww668-series,.ww668-history{padding:11px 12px;border-top:1px solid rgba(24,52,31,.07)}.ww668-mini{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.ww668-mini strong{font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:#536456}.ww668-mini span,.ww668-mini button{border:0;background:transparent;font-size:8px;font-weight:900;color:#778276}.ww668-series>button,.ww668-history>button{display:flex;width:100%;align-items:center;gap:8px;border:0;border-top:1px solid rgba(24,52,31,.06);background:transparent;padding:8px 0;text-align:left;color:#18341f}.ww668-series>button:first-of-type,.ww668-history>button:first-of-type{border-top:0}.ww668-series>button>svg{width:28px!important;height:28px!important;padding:7px;box-sizing:border-box;border-radius:9px;background:#edf3e8;color:#45664c}.ww668-series>button>span,.ww668-history>button>span{min-width:0;flex:1}.ww668-series strong,.ww668-series small,.ww668-history strong,.ww668-history small{display:block}.ww668-series strong,.ww668-history strong{font-size:10px}.ww668-series small,.ww668-history small{font-size:8.2px;color:#7a8477;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.ww668-series>button>b,.ww668-history>button>b{transform:rotate(180deg);opacity:.4}.ww668-series>button>b svg,.ww668-history>button>b svg{width:12px!important;height:12px!important}.ww668-history>button>i{width:7px;height:7px;border-radius:50%;background:#98a096}.ww668-history>button.good>i{background:#4f7d59}.ww668-history>button.bad>i{background:#a94f3d}.ww668-history>button.live>i{background:#a66d18}.ww668-history>button.upcoming>i{background:#527896}.ww668-no-series{display:flex;gap:8px;align-items:center;padding:10px 12px;border-top:1px solid rgba(24,52,31,.07)}.ww668-no-series>svg{width:28px!important;height:28px!important;padding:7px;box-sizing:border-box;border-radius:9px;background:#edf3e8}.ww668-no-series strong,.ww668-no-series small{display:block}.ww668-no-series strong{font-size:10px}.ww668-no-series small{font-size:8px;color:#7b8479}.ww668-next{display:flex;gap:8px;align-items:center;margin:0 12px 12px;padding:9px;border-radius:12px;background:#edf4e9}.ww668-next>svg{width:27px!important;height:27px!important;padding:7px;box-sizing:border-box;border-radius:9px;background:#18341f;color:#fff}.ww668-next strong,.ww668-next small{display:block}.ww668-next strong{font-size:10px}.ww668-next small{font-size:8px;color:#6f796d}
.ww668-overlay{position:fixed;inset:0;z-index:100200;background:rgba(13,28,18,.5);backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center}.ww668-sheet{width:min(720px,100%);height:min(92dvh,880px);display:flex;flex-direction:column;overflow:hidden;border-radius:27px 27px 0 0;background:#f7f3e9}.ww668-sheet>header{display:flex;align-items:center;justify-content:space-between;padding:calc(15px + env(safe-area-inset-top,0px)) 17px 12px;background:#17371f;color:#fff}.ww668-sheet>header small,.ww668-sheet>header strong{display:block}.ww668-sheet>header small{font-size:7.5px;letter-spacing:.13em;opacity:.7}.ww668-sheet>header strong{font-size:18px}.ww668-sheet>header button{border:0;border-radius:12px;background:rgba(255,255,255,.12);color:#fff;width:37px;height:37px;font-size:23px}.ww668-sheet>main{overflow:auto;padding:13px 13px calc(22px + env(safe-area-inset-bottom,0px))}.ww668-hstats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:9px}.ww668-hstats span{padding:8px 4px;border-radius:12px;background:#fff;text-align:center}.ww668-hstats b,.ww668-hstats small{display:block}.ww668-hstats b{font-size:14px}.ww668-hstats small{font-size:7.5px;color:#7c8579}.ww668-hlist{overflow:hidden;border:1px solid rgba(24,52,31,.09);border-radius:16px;background:#fff}.ww668-hlist>button{display:flex;width:100%;gap:8px;align-items:center;border:0;border-bottom:1px solid rgba(24,52,31,.07);background:#fff;padding:10px;text-align:left;color:#18341f}.ww668-hlist>button:last-child{border-bottom:0}.ww668-hlist>button>i{width:8px;height:8px;border-radius:50%;background:#98a096}.ww668-hlist>button.good>i{background:#4f7d59}.ww668-hlist>button.bad>i{background:#a94f3d}.ww668-hlist>button.live>i{background:#a66d18}.ww668-hlist>button.upcoming>i{background:#527896}.ww668-hlist>button>span{min-width:0;flex:1}.ww668-hlist strong,.ww668-hlist small,.ww668-hlist em{display:block}.ww668-hlist strong{font-size:10.5px}.ww668-hlist small{font-size:8.5px;color:#707b70}.ww668-hlist em{font-size:7.5px;font-style:normal;color:#999f96;margin-top:2px}.ww668-hlist>button>b{transform:rotate(180deg);opacity:.4}.ww668-hlist>button>b svg{width:12px!important;height:12px!important}body.ww668-open{overflow:hidden}
@media(max-width:520px){.ww668-repeat-grid{grid-template-columns:1fr 1fr}.ww668-custom{grid-column:1/-1}.ww668-sheet{height:94dvh}.ww668-hstats{grid-template-columns:1fr 1fr}.ww668-smart-list small{max-width:220px}.ww668-ops-head>button{padding:7px}}


/* ---- app-polish-v669.css ---- */
/* EarthRoster v669 */
.ww669-account-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}.ww669-account-grid>button{border:1px solid rgba(24,52,31,.1);border-radius:16px;background:#fff;padding:12px 10px;text-align:left;color:#18341f}.ww669-account-grid>button>span{display:grid;width:32px;height:32px;place-items:center;border-radius:10px;background:#eaf1e6;margin-bottom:8px}.ww669-account-grid svg{width:15px!important;height:15px!important}.ww669-account-grid strong,.ww669-account-grid small{display:block}.ww669-account-grid strong{font-size:10.5px}.ww669-account-grid small{font-size:8px;color:#7d867a;margin-top:2px;line-height:1.35}
.ww669-person-compliance,.ww669-person-access{margin:12px 0;padding:11px;border-radius:15px;border:1px solid rgba(24,52,31,.1);background:#f8f6ef}.ww669-pc-head,.ww669-pa-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ww669-pc-head strong,.ww669-pc-head small,.ww669-pa-head strong,.ww669-pa-head small{display:block}.ww669-pc-head strong,.ww669-pa-head strong{font-size:10.5px}.ww669-pc-head small,.ww669-pa-head small{font-size:8px;color:#798276}.ww669-pc-head button{border:0;border-radius:9px;background:#18341f;color:#fff;padding:7px 9px;font-size:8px;font-weight:900}.ww669-pc-docs{display:grid;gap:5px;margin-top:8px}.ww669-pc-docs>span{display:flex;justify-content:space-between;padding:7px 8px;border-radius:10px;background:#fff;font-size:8px}.ww669-pc-docs em{font-style:normal;font-weight:900}.ww669-pc-docs .is-bad em{color:#a34132}.ww669-pc-docs .is-warn em{color:#9b6c20}.ww669-pc-docs .is-good em{color:#3e714a}.ww669-empty-mini{font-size:8px;color:#879087;margin-top:7px}.ww669-pa-head>b{font-size:7.5px;background:#e6eee2;padding:5px 7px;border-radius:999px}.ww669-role-choice{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:8px}.ww669-role-choice button{border:1px solid rgba(24,52,31,.1);background:#fff;border-radius:9px;padding:7px 4px;font-size:7.5px;font-weight:850}.ww669-role-choice button.active{background:#18341f;color:#fff}.ww669-perm-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:8px}.ww669-perm-grid label{display:flex;align-items:center;gap:6px;background:#fff;border-radius:9px;padding:7px;font-size:7.7px;font-weight:750}.ww669-perm-grid input{accent-color:#315d3a}
.ww669-overlay{position:fixed;inset:0;z-index:100400;background:rgba(13,28,18,.52);backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center}.ww669-sheet{width:min(760px,100%);height:min(94dvh,900px);display:flex;flex-direction:column;background:#f7f3e9;border-radius:27px 27px 0 0;overflow:hidden}.ww669-sheet>header{display:flex;align-items:center;justify-content:space-between;padding:calc(15px + env(safe-area-inset-top,0px)) 17px 12px;background:#17371f;color:#fff}.ww669-sheet>header small,.ww669-sheet>header strong,.ww669-sheet>header em{display:block}.ww669-sheet>header small{font-size:7px;letter-spacing:.13em;opacity:.7}.ww669-sheet>header strong{font-size:18px}.ww669-sheet>header em{font-style:normal;font-size:8px;opacity:.72}.ww669-sheet>header button{border:0;border-radius:12px;background:rgba(255,255,255,.13);color:#fff;width:37px;height:37px;font-size:23px}.ww669-sheet>main{overflow:auto;padding:13px 13px calc(24px + env(safe-area-inset-bottom,0px))}.ww669-hero{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}.ww669-hero>div{background:#fff;border-radius:12px;padding:9px 4px;text-align:center}.ww669-hero b,.ww669-hero span{display:block}.ww669-hero b{font-size:15px;color:#18341f}.ww669-hero span{font-size:7.5px;color:#7b8478}.ww669-hero .warn b{color:#9a6b20}.ww669-hero .bad b{color:#a64635}.ww669-list{overflow:hidden;border:1px solid rgba(24,52,31,.09);border-radius:16px;background:#fff}.ww669-list>button{display:flex;width:100%;gap:8px;align-items:center;border:0;border-bottom:1px solid rgba(24,52,31,.07);background:#fff;padding:10px;text-align:left;color:#18341f}.ww669-list>button:last-child{border-bottom:0}.ww669-list>button>span:nth-child(2){min-width:0;flex:1}.ww669-list strong,.ww669-list small{display:block}.ww669-list strong{font-size:10.5px}.ww669-list small{font-size:8px;color:#747f74;margin-top:1px}.ww669-list>button>b{font-size:7.5px;padding:5px 6px;border-radius:8px;background:#eef2eb}.ww669-list>button>b.good{color:#3e714a}.ww669-list>button>b.warn{color:#956719;background:#fff4da}.ww669-list>button>b.bad{color:#a34635;background:#fdeae5}.ww669-empty{padding:18px;text-align:center;color:#7b8478;font-size:9px}.ww669-add-doc{padding:11px;border-radius:16px;background:#fff;border:1px solid rgba(24,52,31,.09);margin-bottom:10px}.ww669-grid2{display:grid;grid-template-columns:1fr 1fr;gap:7px}.ww669-grid2 label>span,.ww669-file>span{display:block;font-size:7.5px;font-weight:900;color:#657267;margin-bottom:3px}.ww669-grid2 input,.ww669-grid2 select,.ww669-file input{width:100%;border:1px solid #dde3d8;border-radius:10px;background:#fafbf8;padding:9px;font:inherit;font-size:9px}.ww669-file{display:block;margin-top:8px}.ww669-file em{display:block;font-style:normal;font-size:7.5px;color:#818b80;margin-top:3px}.ww669-primary{width:100%;margin-top:9px;border:0;border-radius:11px;background:#18341f;color:#fff;padding:10px;font-size:9px;font-weight:900}.ww669-primary svg{width:12px!important;height:12px!important}.ww669-doc-list{display:grid;gap:6px}.ww669-doc-list article{display:flex;align-items:center;gap:8px;padding:9px;border-radius:13px;background:#fff;border:1px solid rgba(24,52,31,.08)}.ww669-doc-icon{display:grid;width:29px;height:29px;place-items:center;border-radius:9px;background:#edf2e8}.ww669-doc-icon svg{width:13px!important;height:13px!important}.ww669-doc-list article>span:nth-child(2){min-width:0;flex:1}.ww669-doc-list strong,.ww669-doc-list small{display:block}.ww669-doc-list strong{font-size:9.5px}.ww669-doc-list small{font-size:7.7px;color:#7d867b}.ww669-doc-list article>b{font-size:7px;padding:5px 6px;border-radius:8px}.ww669-doc-list article>b.is-bad{background:#fdeae5;color:#a34635}.ww669-doc-list article>b.is-warn{background:#fff4da;color:#956719}.ww669-doc-list article>b.is-good{background:#e8f2e5;color:#3e714a}.ww669-doc-list article>b.is-muted{background:#eef0ed;color:#777}.ww669-doc-list article>button{border:0;background:transparent;font-size:18px;color:#9b6259}.ww669-role-note{padding:9px 10px;border-radius:12px;background:#edf3e9;color:#516354;font-size:8.5px;line-height:1.4;margin-bottom:9px}.ww669-pay-filter{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;padding:10px;background:#fff;border-radius:14px;margin-bottom:9px}.ww669-pay-filter label span{display:block;font-size:7px;font-weight:900;color:#6f796d}.ww669-pay-filter input{width:100%;margin-top:3px;padding:7px;border:1px solid #dde3d8;border-radius:9px;font-size:9px}.ww669-pay-filter button,.ww669-pay-actions button{border:0;border-radius:10px;background:#18341f;color:#fff;padding:8px 10px;font-size:8px;font-weight:900;align-self:end}.ww669-pay-actions{text-align:right;margin-bottom:8px}.ww669-pay-actions button svg{width:11px!important;height:11px!important}.ww669-pay-list{display:grid;gap:6px}.ww669-pay-list article{display:flex;justify-content:space-between;gap:10px;padding:10px;border-radius:13px;background:#fff;border:1px solid rgba(24,52,31,.08)}.ww669-pay-list article>span:last-child{text-align:right}.ww669-pay-list strong,.ww669-pay-list small,.ww669-pay-list b{display:block}.ww669-pay-list strong,.ww669-pay-list b{font-size:10px}.ww669-pay-list small{font-size:7.7px;color:#7c857a;margin-top:1px}body.ww669-open{overflow:hidden}
@media(max-width:520px){.ww669-account-grid{grid-template-columns:1fr}.ww669-hero{grid-template-columns:1fr 1fr}.ww669-grid2{grid-template-columns:1fr 1fr}.ww669-perm-grid{grid-template-columns:1fr}.ww669-role-choice{grid-template-columns:1fr}.ww669-pay-filter{grid-template-columns:1fr 1fr}.ww669-pay-filter button{grid-column:1/-1}.ww669-sheet{height:95dvh}}
.ww669-compliance-rule{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;margin-bottom:9px;border-radius:13px;background:#fff;border:1px solid rgba(24,52,31,.09)}.ww669-compliance-rule strong,.ww669-compliance-rule small{display:block}.ww669-compliance-rule strong{font-size:9px}.ww669-compliance-rule small{font-size:7.5px;color:#7d867b;margin-top:1px}.ww669-compliance-rule input{width:18px;height:18px;accent-color:#315d3a}


/* ---- app-polish-v670.css ---- */
/* EarthRoster v670 — Security, Sessions & Validated Recovery */
.ww670-inline-card{margin:10px 0 16px;padding:12px;border:1px solid rgba(101,126,104,.22);border-radius:16px;background:linear-gradient(145deg,rgba(28,56,38,.05),rgba(255,255,255,.75));display:flex;align-items:center;justify-content:space-between;gap:10px}.ww670-inline-card>div{display:flex;align-items:center;gap:10px;min-width:0}.ww670-inline-card strong{display:block;font-size:13px}.ww670-inline-card small{display:block;font-size:11px;line-height:1.35;color:var(--muted,#6c746d);margin-top:2px}.ww670-inline-card button{border:0;border-radius:12px;padding:8px 10px;background:#173d2a;color:#fff;min-width:92px}.ww670-inline-card button b,.ww670-inline-card button em{display:block;font-style:normal;font-size:10px}.ww670-inline-card button b{font-size:11px}.ww670-shield{width:34px;height:34px;border-radius:11px;background:#dce9df;display:grid;place-items:center;color:#173d2a;flex:none}.ww670-shield svg{width:17px!important;height:17px!important}
.ww670-open{overflow:hidden}.ww670-overlay{position:fixed;inset:0;z-index:100050;background:rgba(10,18,13,.58);backdrop-filter:blur(5px);display:flex;align-items:flex-end;justify-content:center}.ww670-sheet{width:min(720px,100%);max-height:min(88dvh,900px);background:#f8faf8;border-radius:24px 24px 0 0;box-shadow:0 -18px 50px rgba(0,0,0,.2);overflow:hidden;display:flex;flex-direction:column}.ww670-sheet.wide{width:min(780px,100%)}.ww670-sheet>header{padding:max(16px,env(safe-area-inset-top)) 18px 13px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dfe5df;background:#fff}.ww670-sheet>header span{min-width:0}.ww670-sheet>header small,.ww670-sheet>header strong,.ww670-sheet>header em{display:block}.ww670-sheet>header small{font-size:9px;letter-spacing:.13em;color:#6f7b72;font-weight:800}.ww670-sheet>header strong{font-size:17px;margin-top:2px}.ww670-sheet>header em{font-size:11px;color:#68736b;font-style:normal;margin-top:2px}.ww670-sheet>header button{width:34px;height:34px;border-radius:50%;border:1px solid #d9dfda;background:#f5f7f5;font-size:22px}.ww670-sheet>main{padding:14px 14px calc(20px + env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}.ww670-loading{min-height:190px;display:grid;place-items:center;align-content:center;gap:10px;color:#68736b}.ww670-loading i{width:30px;height:30px;border:3px solid #dce3dc;border-top-color:#315b42;border-radius:50%;animation:ww670spin .8s linear infinite}@keyframes ww670spin{to{transform:rotate(360deg)}}
.ww670-status,.ww670-backup-health{display:flex;gap:11px;align-items:flex-start;padding:13px;border-radius:15px;border:1px solid #dbe3dc;background:#fff;margin-bottom:12px}.ww670-status>span,.ww670-backup-health>span{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-weight:900;flex:none}.ww670-status.good>span,.ww670-backup-health.good>span{background:#dff0e4;color:#185d31}.ww670-status.warn>span{background:#fff0cb;color:#8a5b00}.ww670-status.bad>span,.ww670-backup-health.bad>span{background:#f9dede;color:#8a2323}.ww670-status strong,.ww670-backup-health strong{font-size:13px;display:block}.ww670-status p{font-size:11px;line-height:1.5;color:#68736b;margin:3px 0 0}.ww670-backup-health>div{min-width:0;flex:1}.ww670-backup-health small,.ww670-backup-health em{display:block;font-size:10px;color:#68736b;font-style:normal;margin-top:3px}.ww670-backup-health button,.ww670-section-head button{border:1px solid #bdd0c1;background:#edf5ef;color:#214d31;border-radius:10px;padding:8px 9px;font-size:10px;font-weight:800;white-space:nowrap}
.ww670-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:13px}.ww670-grid>div{padding:10px 7px;border:1px solid #e0e5e1;border-radius:12px;background:#fff;text-align:center}.ww670-grid b{display:block;font-size:12px;color:#173d2a}.ww670-grid span{font-size:9px;color:#768079;line-height:1.25}.ww670-section{border:1px solid #dfe5df;border-radius:16px;background:#fff;overflow:hidden;margin-bottom:12px}.ww670-section-head{padding:11px 12px;border-bottom:1px solid #e6ebe7;display:flex;align-items:center;justify-content:space-between;gap:10px}.ww670-section-head strong,.ww670-section-head small{display:block}.ww670-section-head strong{font-size:12px}.ww670-section-head small{font-size:10px;color:#758078;margin-top:2px}.ww670-session{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;padding:10px 12px;border-bottom:1px solid #edf0ed}.ww670-session:last-child{border-bottom:0}.ww670-session.revoked{opacity:.55}.ww670-device{width:31px;height:31px;border-radius:10px;background:#eff4f0;display:grid;place-items:center}.ww670-device svg{width:15px!important;height:15px!important}.ww670-session strong,.ww670-session small,.ww670-session em{display:block}.ww670-session strong{font-size:11px}.ww670-session small,.ww670-session em{font-size:9.5px;color:#78817b;font-style:normal;margin-top:2px}.ww670-session button{border:1px solid #e1c2c2;background:#fff1f1;color:#7d2525;border-radius:9px;padding:7px 8px;font-size:9.5px;font-weight:800}.ww670-current{font-size:7.5px;background:#dff0e4;color:#27633b;padding:2px 5px;border-radius:999px;margin-left:4px}.ww670-state{font-size:9px;color:#58705f}.ww670-empty{padding:18px;text-align:center;font-size:11px;color:#7a837c}.ww670-foot{font-size:9.5px;color:#7b847d;text-align:center;line-height:1.45;padding:2px 9px 6px}
.ww670-backup{padding:11px 12px;border-bottom:1px solid #edf0ed;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.ww670-backup:last-child{border-bottom:0}.ww670-backup>span:first-child strong,.ww670-backup>span:first-child small,.ww670-backup>span:first-child em{display:block}.ww670-backup>span:first-child strong{font-size:11px}.ww670-backup>span:first-child small,.ww670-backup>span:first-child em{font-size:9.5px;color:#77817a;font-style:normal;margin-top:2px}.ww670-backup-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.ww670-backup-actions button{border:1px solid #d4ded6;background:#f7faf7;border-radius:8px;padding:6px 7px;font-size:9px;font-weight:800}.ww670-backup-actions button.danger{border-color:#e4caca;color:#7b2828}.ww670-backup-actions button:disabled{opacity:.42}.ww670-validation{grid-column:1/-1;padding-top:5px;display:flex;gap:8px;align-items:center}.ww670-validation span{font-size:8px;font-weight:900;border-radius:999px;padding:3px 6px}.ww670-validation span.good{background:#dff0e4;color:#1e6438}.ww670-validation span.bad{background:#f8dddd;color:#8a2929}.ww670-validation small{font-size:9px;color:#77817a}
@media(max-width:540px){.ww670-grid{grid-template-columns:repeat(2,1fr)}.ww670-backup{grid-template-columns:1fr}.ww670-backup-actions{justify-content:flex-start}.ww670-inline-card{align-items:flex-start}.ww670-inline-card button{min-width:84px}.ww670-section-head{align-items:flex-start}.ww670-session{grid-template-columns:31px 1fr}.ww670-session>button,.ww670-session>.ww670-state{grid-column:2;justify-self:start}.ww670-backup-health{flex-wrap:wrap}.ww670-backup-health button{margin-left:41px}}


/* ---- app-polish-v671.css ---- */
/* EarthRoster v671 — operations control */
.ww671-brief{margin:10px 0 14px;border:1px solid rgba(55,91,65,.18);border-radius:17px;background:linear-gradient(145deg,#f7faf7,#eef5ef);padding:12px}.ww671-brief-head{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}.ww671-brief-head small,.ww671-brief-head strong,.ww671-brief-head span{display:block}.ww671-brief-head small{font-size:8.5px;letter-spacing:.12em;color:#6e786f;font-weight:900}.ww671-brief-head strong{font-size:15px;margin-top:2px;color:#173d2a}.ww671-brief-head span{font-size:10.5px;color:#67716a;margin-top:3px}.ww671-brief-head>button{border:1px solid #bfd0c2;background:#fff;border-radius:10px;padding:7px 10px;font-size:10px;font-weight:900;color:#285238}.ww671-brief-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.ww671-brief-grid span{background:#fff;border:1px solid #dde6df;border-radius:10px;padding:7px;text-align:center}.ww671-brief-grid b,.ww671-brief-grid em{display:block}.ww671-brief-grid b{font-size:12px;color:#173d2a}.ww671-brief-grid em{font-style:normal;font-size:8px;color:#788079}.ww671-closeout-btn{width:100%;border:0;border-top:1px solid #dce5dd;background:transparent;margin-top:9px;padding:9px 2px 1px;display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:900;color:#31543b}.ww671-closeout-btn svg{width:13px!important;height:13px!important;transform:rotate(180deg)}
.ww671-open{overflow:hidden}.ww671-overlay{position:fixed;inset:0;z-index:100150;background:rgba(10,18,13,.6);backdrop-filter:blur(5px);display:flex;align-items:flex-end;justify-content:center}.ww671-sheet{width:min(720px,100%);max-height:min(90dvh,900px);background:#f7f9f7;border-radius:24px 24px 0 0;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 -20px 55px rgba(0,0,0,.22)}.ww671-sheet>header{padding:max(15px,env(safe-area-inset-top)) 16px 12px;background:#fff;border-bottom:1px solid #dfe5df;display:flex;justify-content:space-between;align-items:center;gap:12px}.ww671-sheet>header small,.ww671-sheet>header strong,.ww671-sheet>header em{display:block}.ww671-sheet>header small{font-size:8px;letter-spacing:.13em;color:#788079;font-weight:900}.ww671-sheet>header strong{font-size:17px;margin-top:2px}.ww671-sheet>header em{font-size:10px;color:#737d75;font-style:normal;margin-top:2px}.ww671-sheet>header button{width:34px;height:34px;border-radius:50%;border:1px solid #dce2dd;background:#f4f6f4;font-size:22px}.ww671-sheet>main{padding:14px 14px calc(22px + env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}.ww671-hero,.ww671-closeout-hero{display:flex;gap:11px;align-items:center;border:1px solid #dce5dd;background:#fff;border-radius:15px;padding:13px;margin-bottom:11px}.ww671-hero>span,.ww671-closeout-hero>span{width:35px;height:35px;border-radius:11px;background:#e5f0e7;color:#245b34;display:grid;place-items:center;flex:none}.ww671-hero svg,.ww671-closeout-hero svg{width:17px!important;height:17px!important}.ww671-hero strong,.ww671-hero small,.ww671-closeout-hero strong,.ww671-closeout-hero small{display:block}.ww671-hero strong,.ww671-closeout-hero strong{font-size:13px}.ww671-hero small,.ww671-closeout-hero small{font-size:10px;color:#707a72;line-height:1.4;margin-top:2px}.ww671-closeout-hero.warn>span{background:#fff0ce;color:#8a5b00}.ww671-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:11px}.ww671-stat-grid span{padding:9px 6px;background:#fff;border:1px solid #e0e6e1;border-radius:11px;text-align:center}.ww671-stat-grid b,.ww671-stat-grid em{display:block}.ww671-stat-grid b{font-size:14px;color:#183f2b}.ww671-stat-grid em{font-size:8.5px;font-style:normal;color:#778079}.ww671-section{background:#fff;border:1px solid #dfe5df;border-radius:15px;overflow:hidden;margin-bottom:11px}.ww671-section h3{font-size:11px;margin:0;padding:10px 11px;border-bottom:1px solid #e8ece9}.ww671-row{width:100%;border:0;border-bottom:1px solid #edf0ed;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;padding:10px 11px}.ww671-row:last-child{border-bottom:0}.ww671-row strong,.ww671-row small{display:block}.ww671-row strong{font-size:11px}.ww671-row small{font-size:9.5px;color:#778079;margin-top:2px}.ww671-row>b{font-size:8px;border-radius:999px;padding:4px 6px;background:#edf4ef;color:#2d5c3d}.ww671-row.danger>b,.ww671-row.incident>b,.ww671-row.variation>b{background:#f8e0df;color:#7d2c2c}.ww671-row.warn>b,.ww671-row.clock>b{background:#fff0d1;color:#815600}.ww671-clear{padding:15px;text-align:center;font-size:10px;color:#6d786f}.ww671-clear.big{font-size:12px;padding:28px}.ww671-primary-wide{width:100%;border:0;border-radius:12px;padding:11px;background:#173d2a;color:#fff;font-weight:900;font-size:11px}
.ww671-variation-panel .ww666-panel-title>button{border:1px solid #bcd0c0;background:#edf6ef;color:#28583a;border-radius:10px;padding:7px 9px;font-size:9px;font-weight:900}.ww671-mini-list{display:grid;gap:6px}.ww671-mini-list>button{border:1px solid #e0e7e1;background:#fafcfb;border-radius:10px;padding:8px;display:flex;align-items:center;justify-content:space-between;text-align:left;gap:8px}.ww671-mini-list strong,.ww671-mini-list small{display:block}.ww671-mini-list strong{font-size:10px}.ww671-mini-list small{font-size:8.5px;color:#758078}.ww671-mini-list b{font-size:7.5px;color:#765500}.ww671-mini-list .is-approved b{color:#216139}.ww671-mini-list .is-declined b{color:#8a2f2f}
.ww671-form label>span,.ww671-admin-note>span{display:block;font-size:10px;font-weight:900;margin-bottom:5px}.ww671-form textarea,.ww671-form select,.ww671-admin-note textarea{width:100%;box-sizing:border-box;border:1px solid #d8dfd9;border-radius:11px;background:#fff;padding:10px;font:inherit;font-size:11px}.ww671-form textarea{min-height:84px;resize:vertical}.ww671-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:10px 0}.ww671-check{display:flex!important;align-items:center;gap:8px;border:1px solid #dce4dd;background:#fff;border-radius:11px;padding:9px}.ww671-check>span{margin:0!important;font-size:9px!important}.ww671-photo-pick{margin-top:10px}.ww671-photo-pick>button{border:1px dashed #b7c8ba;background:#f2f7f3;color:#2a5639;border-radius:11px;padding:9px;font-weight:900;font-size:10px}.ww671-photo-pick small{font-weight:500}.ww671-photo-pick img{width:80px;height:64px;object-fit:cover;border-radius:9px;margin-top:7px}.ww671-photo-pick span{font-size:9px;margin-left:7px;color:#68736b}.ww671-form-actions,.ww671-decision{display:flex;gap:8px;margin-top:14px}.ww671-form-actions button,.ww671-decision button{flex:1;border:1px solid #d6ddd7;background:#fff;border-radius:11px;padding:10px;font-weight:900;font-size:10px}.ww671-form-actions button.primary,.ww671-decision button.approve{background:#173d2a;border-color:#173d2a;color:#fff}.ww671-var-status{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #dfe5df;background:#fff;border-radius:14px;margin-bottom:11px}.ww671-var-status>span{width:32px;height:32px;border-radius:10px;background:#fff0ce;color:#805800;display:grid;place-items:center}.ww671-var-status.is-approved>span{background:#dff0e4;color:#1d6037}.ww671-var-status.is-declined>span{background:#f8dddd;color:#842b2b}.ww671-var-status strong,.ww671-var-status small{display:block}.ww671-var-status strong{font-size:12px}.ww671-var-status small{font-size:9px;color:#727c74}.ww671-var-detail dl{background:#fff;border:1px solid #e0e6e1;border-radius:14px;overflow:hidden;margin:0 0 10px}.ww671-var-detail dl>div{display:grid;grid-template-columns:110px 1fr;gap:8px;padding:9px 10px;border-bottom:1px solid #edf0ed}.ww671-var-detail dl>div:last-child{border-bottom:0}.ww671-var-detail dt{font-size:9px;color:#778079}.ww671-var-detail dd{margin:0;font-size:10px;font-weight:700}.ww671-var-detail section,.ww671-admin-result{background:#fff;border:1px solid #e0e6e1;border-radius:12px;padding:10px;margin-bottom:10px}.ww671-var-detail section strong,.ww671-admin-result strong{font-size:10px}.ww671-var-detail section p,.ww671-admin-result span{font-size:10px;line-height:1.45;color:#606b63;margin:4px 0 0;display:block}.ww671-var-photo img{width:100%;max-height:260px;object-fit:cover;border-radius:13px;margin-bottom:10px}.ww671-shift-vars{margin:10px 0;border:1px solid #dfe5df;border-radius:13px;background:#fff;padding:10px}.ww671-shift-vars>div strong,.ww671-shift-vars>div small{display:block}.ww671-shift-vars>div strong{font-size:11px}.ww671-shift-vars>div small{font-size:9px;color:#748078}.ww671-shift-vars>button{width:100%;margin-top:6px;border:1px solid #e5eae6;border-radius:9px;background:#fafbfa;padding:7px 8px;display:flex;justify-content:space-between;gap:8px;text-align:left;font-size:9px}.ww671-shift-vars b{text-transform:uppercase;font-size:7px}.ww671-shift-vars b.is-approved{color:#216139}.ww671-shift-vars b.is-declined{color:#892c2c}.ww671-shift-vars b.is-pending{color:#805800}
@media(max-width:520px){.ww671-brief-grid,.ww671-stat-grid{grid-template-columns:repeat(2,1fr)}.ww671-form-grid{grid-template-columns:1fr}.ww671-var-detail dl>div{grid-template-columns:90px 1fr}}

/* Keep field-work/action icons isolated from historical global SVG sizing. */
.ww671-variation-panel svg,.ww671-var-status svg,.ww671-shift-variations svg,.ww671-closeout-item svg{width:16px!important;height:16px!important;max-width:16px!important;max-height:16px!important;flex:0 0 16px!important;}


/* ---- app-polish-v672.css ---- */
/* EarthRoster v672 */
body.ww672-open{overflow:hidden!important}.ww672-overlay{position:fixed;inset:0;z-index:2147483300;background:rgba(5,17,10,.66);backdrop-filter:blur(9px);display:flex;align-items:flex-end;justify-content:center;padding:18px}.ww672-sheet{width:min(720px,100%);max-height:min(88dvh,860px);background:#f5f2e8;border-radius:24px 24px 18px 18px;overflow:hidden;box-shadow:0 28px 80px rgba(0,0,0,.38);display:flex;flex-direction:column}.ww672-sheet>header{padding:18px 18px 15px;background:linear-gradient(135deg,#173d27,#0d2d1b);color:#fff;display:flex;gap:14px;align-items:center}.ww672-sheet>header span{min-width:0;display:flex;flex-direction:column}.ww672-sheet>header small{font-size:9px;letter-spacing:.14em;opacity:.62}.ww672-sheet>header strong{font-size:19px;line-height:1.1}.ww672-sheet>header em{font-size:11px;opacity:.72;font-style:normal;margin-top:3px}.ww672-sheet>header button{margin-left:auto;border:0;background:rgba(255,255,255,.12);color:#fff;width:36px;height:36px;border-radius:12px;font-size:22px}.ww672-sheet>main{padding:16px;overflow:auto;-webkit-overflow-scrolling:touch}.ww672-searchbox{height:50px;border:1px solid #c9d2c7;background:#fff;border-radius:15px;display:flex;align-items:center;padding:0 13px;gap:9px}.ww672-searchbox svg{width:18px;height:18px}.ww672-searchbox input{border:0;outline:0;background:transparent;min-width:0;flex:1;font-size:15px}.ww672-search-meta{font-size:11px;color:#667267;margin:9px 4px 12px}.ww672-results{display:grid;gap:8px}.ww672-results>button,.ww672-duplist>button{border:1px solid #d9dfd6;background:#fff;border-radius:14px;padding:11px 12px;display:flex;align-items:center;text-align:left;gap:11px}.ww672-results>button i{font-size:9px;font-style:normal;font-weight:800;background:#e9efe7;color:#32533b;border-radius:999px;padding:5px 7px}.ww672-results>button span,.ww672-duplist>button span{min-width:0;flex:1;display:flex;flex-direction:column}.ww672-results strong,.ww672-duplist strong{font-size:13px;color:#183522}.ww672-results small,.ww672-duplist small{font-size:10.5px;color:#6c776d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ww672-results>button>b{font-size:20px;color:#64816a}.ww672-empty,.ww672-search-hint{padding:26px 18px;text-align:center;background:#ecefe8;border-radius:15px;color:#657065;font-size:12px}.ww672-search-hint{display:flex;flex-direction:column;gap:5px}.ww672-dupwarn{display:flex;gap:12px;padding:14px;border-radius:15px;background:#fff1dd;border:1px solid #eccb96;margin-bottom:12px}.ww672-dupwarn>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#9c651a;color:#fff;font-weight:900}.ww672-dupwarn div{display:flex;flex-direction:column;gap:3px}.ww672-dupwarn strong{font-size:12.5px}.ww672-dupwarn small{font-size:10.5px;color:#775d36}.ww672-duplist{display:grid;gap:8px}.ww672-duplist button b{font-size:10px;color:#335d3f}.ww672-dupa,.ww672-key-actions,.ww672-roll-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.ww672-dupa button,.ww672-key-actions button,.ww672-roll-actions button,.ww672-access-head button,.ww672-rolling button,.ww672-client-access button,.ww672-profile-card button{border:0;border-radius:11px;padding:10px 13px;font-weight:800;font-size:11px}.ww672-dupa .danger,.ww672-key-actions .danger{background:#fff0ec;color:#a24735}.ww672-dupa button:not(.danger),.ww672-key-actions button,.ww672-roll-actions button{background:#e6ebe4;color:#294732}.ww672-key-actions .primary,.ww672-roll-actions .primary,.ww672-access-head button{background:#28553a;color:#fff}.ww672-access-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.ww672-access-head>div{flex:1;display:flex;flex-direction:column}.ww672-access-head strong{font-size:14px}.ww672-access-head small{font-size:10.5px;color:#677268}.ww672-access-list{display:grid;gap:8px}.ww672-access-list article{background:#fff;border:1px solid #d9dfd6;border-radius:15px;padding:11px;display:flex;gap:10px;align-items:center}.ww672-keyicon{width:38px;height:38px;border-radius:12px;background:#edf1e9;display:grid;place-items:center;font-size:18px}.ww672-keyicon svg{width:18px;height:18px}.ww672-access-list article>span{min-width:0;flex:1;display:flex;flex-direction:column}.ww672-access-list strong{font-size:12.5px}.ww672-access-list small,.ww672-access-list em{font-size:10px;color:#6d776e;font-style:normal}.ww672-access-list article>div:last-child{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.ww672-access-list b{font-size:8px;border-radius:999px;padding:4px 7px}.ww672-access-list b.checked_out{background:#fff0dd;color:#985d13}.ww672-access-list b.available{background:#e4f3e8;color:#2f6b3b}.ww672-access-list article button{border:0;background:transparent;color:#345e40;font-size:10px;font-weight:800}.ww672-keyform,.ww672-rollform{display:grid;gap:12px}.ww672-keyform label,.ww672-rollform label{display:grid;gap:5px}.ww672-keyform label>span,.ww672-rollform label>span{font-size:10px;font-weight:800;color:#46604d}.ww672-keyform input,.ww672-keyform select,.ww672-keyform textarea,.ww672-rollform select{width:100%;border:1px solid #ccd5ca;background:#fff;border-radius:11px;padding:11px;font:inherit}.ww672-keyform textarea{min-height:80px}.ww672-keyform .grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ww672-rolling,.ww672-client-access,.ww672-profile-card{margin:12px 0;background:#edf3eb;border:1px solid #cfdacb;border-radius:16px;padding:13px;display:flex;align-items:center;gap:12px}.ww672-rolling>div,.ww672-client-access>span,.ww672-profile-card>span{min-width:0;flex:1;display:flex;flex-direction:column}.ww672-rolling small{font-size:8px;letter-spacing:.12em;color:#66806b}.ww672-rolling strong,.ww672-client-access strong,.ww672-profile-card strong{font-size:12.5px}.ww672-rolling em,.ww672-client-access small,.ww672-profile-card small{font-size:10px;color:#68756a;font-style:normal}.ww672-rolling>b{font-size:8px;background:#dff0e2;color:#2c6739;padding:5px 7px;border-radius:999px}.ww672-rolling button,.ww672-client-access button,.ww672-profile-card button{background:#2f5d40;color:#fff}.ww672-client-access>span,.ww672-profile-card>span{display:grid;grid-template-columns:28px 1fr;column-gap:8px}.ww672-client-access>span svg,.ww672-profile-card>span svg{grid-row:1/3;width:20px}.ww672-rollhero{display:flex;gap:12px;padding:13px;border-radius:14px;background:#eaf1e8}.ww672-rollhero>span{width:34px;height:34px;border-radius:10px;background:#fff;display:grid;place-items:center}.ww672-rollhero div{display:flex;flex-direction:column}.ww672-rollhero strong{font-size:12px}.ww672-rollhero small{font-size:10px;color:#69736a}.ww672-toggle{grid-template-columns:auto 1fr!important;align-items:center;background:#fff;border:1px solid #d8ded5;border-radius:13px;padding:11px}.ww672-toggle input{width:19px;height:19px}.ww672-toggle span{display:flex!important;flex-direction:column}.ww672-toggle small{font-weight:400!important;color:#6b756d!important}.ww672-search-btn svg{width:18px!important;height:18px!important}@media(min-width:760px){.ww672-overlay{align-items:center}.ww672-sheet{border-radius:22px}}@media(max-width:480px){.ww672-overlay{padding:0;align-items:flex-end}.ww672-sheet{max-height:92dvh;border-radius:22px 22px 0 0}.ww672-keyform .grid{grid-template-columns:1fr}.ww672-rolling{align-items:flex-start;flex-wrap:wrap}.ww672-rolling>div{flex-basis:65%}}


/* ---- app-polish-v675.css ---- */
/* EarthRoster v675 — consolidated v673/v674/v675 strengthening UI */
.ww675-overlay{position:fixed;inset:0;z-index:10080;background:rgba(10,22,14,.62);display:flex;align-items:flex-end;justify-content:center;padding:0;backdrop-filter:blur(7px)}
.ww675-sheet{width:min(720px,100%);max-height:92dvh;background:#f7faf7;border-radius:24px 24px 0 0;box-shadow:0 -18px 60px rgba(0,0,0,.25);display:flex;flex-direction:column;overflow:hidden;color:#1c2c21}.ww675-sheet>header{display:flex;gap:12px;align-items:center;padding:calc(15px + env(safe-area-inset-top)*.15) 18px 14px;background:#173522;color:#fff}.ww675-sheet>header span{flex:1;min-width:0;display:flex;flex-direction:column}.ww675-sheet>header small{font-size:9px;letter-spacing:.14em;opacity:.62}.ww675-sheet>header strong{font-size:18px;line-height:1.2}.ww675-sheet>header em{font-style:normal;font-size:11px;opacity:.72;margin-top:3px}.ww675-sheet>header button{width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:24px}.ww675-sheet>main{overflow:auto;padding:16px 16px calc(24px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}
body.ww675-open{overflow:hidden!important}.ww675-primary,.ww675-secondary,.ww675-danger{width:100%;min-height:46px;border-radius:13px;border:0;font-weight:800;padding:12px 14px}.ww675-primary{background:#1f5b36;color:#fff}.ww675-secondary{background:#e5eee7;color:#21412d}.ww675-danger{background:#9f2f2f;color:#fff}.ww675-inline-actions{display:flex;gap:8px;margin-top:12px}.ww675-inline-actions button{flex:1;min-height:42px;border-radius:12px;border:1px solid #ccd8cf;background:#fff;font-weight:800;color:#294334}.ww675-inline-actions .ww675-primary{background:#1f5b36;color:#fff;border-color:#1f5b36}.ww675-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:11px}.ww675-field{display:flex;flex-direction:column;gap:6px;margin-bottom:11px}.ww675-field>span,.ww675-form-grid label>span{font-size:11px;font-weight:800;color:#53645a}.ww675-field input,.ww675-field textarea,.ww675-field select,.ww675-form-grid input,.ww675-form-grid select{width:100%;box-sizing:border-box;border:1px solid #d2ddd5;background:#fff;border-radius:11px;padding:11px 12px;font:inherit;color:#1d2d22}.ww675-field textarea{min-height:92px;resize:vertical}
.ww675-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}.ww675-list article{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #dde6df;border-radius:13px;padding:11px 12px}.ww675-list article>span{flex:1;min-width:0;display:flex;flex-direction:column}.ww675-list article strong{font-size:13px}.ww675-list article small{font-size:10px;color:#718078;margin-top:2px}.ww675-list article button{border:0;background:#e7f0e9;color:#245036;border-radius:9px;padding:8px 10px;font-weight:800}.ww675-list article b{font-size:9px;border-radius:999px;padding:5px 8px;background:#eef2ef}.ww675-list article b.good{background:#e0f2e5;color:#246237}.ww675-list article b.warn{background:#fff1d9;color:#895e16}.ww675-empty{padding:22px;text-align:center;color:#76847b;background:#fff;border:1px dashed #d7e0d9;border-radius:13px;font-size:12px}
.ww675-lock-hero,.ww675-health-hero,.ww675-safety-active,.ww675-safety-warning,.ww675-backup-health{display:flex;gap:12px;align-items:center;border-radius:15px;padding:13px 14px;margin-bottom:13px;background:#e9f2eb}.ww675-lock-hero>span,.ww675-health-hero>span,.ww675-safety-active>span{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#275f3a;color:#fff;font-weight:900}.ww675-lock-hero div,.ww675-health-hero div{display:flex;flex-direction:column}.ww675-lock-hero small,.ww675-health-hero small{font-size:10px;color:#637268;margin-top:2px}.ww675-health-hero.warn{background:#fff4df}.ww675-health-hero.warn>span{background:#b17119}.ww675-health-hero.good>span{background:#2b713e}
.ww675-signoff-note{background:#eef5ef;border-radius:13px;padding:12px;margin-bottom:12px;display:flex;flex-direction:column}.ww675-signoff-note small{font-size:10px;color:#6c796f;margin-top:3px}#ww675Signature{width:100%;height:150px;background:#fff;border:1px dashed #aebdb2;border-radius:12px;touch-action:none}.ww675-signed{display:flex;flex-direction:column;align-items:center;text-align:center;padding:16px;background:#edf7ef;border-radius:16px}.ww675-signed>span{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:#2f7544;color:#fff;font-size:25px;font-weight:900}.ww675-signed small{font-size:10px;color:#68766d;margin-top:3px}.ww675-signed p{background:#fff;border-radius:10px;padding:10px;width:100%;box-sizing:border-box}.ww675-signed img{max-width:100%;max-height:150px;background:#fff;border-radius:10px;border:1px solid #d8e3da;margin-top:9px}
.ww675-field-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ww675-field-actions button{border:1px solid #dbe4dc;background:#fff;border-radius:13px;padding:10px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;min-height:78px}.ww675-field-actions button>span{font-size:18px;font-weight:900}.ww675-field-actions strong{font-size:12px;margin-top:3px}.ww675-field-actions small{font-size:9px;color:#758078;margin-top:2px}.ww675-field-actions button.done{background:#eaf6ec;border-color:#b8d8bf}.ww675-field-actions button.safety{background:#fff4f1;border-color:#efc8c1}.ww675-field-actions button.safety>span{color:#a43b30}.ww675-field-actions button.safety.active{background:#fae0dc;border-color:#d88f85}
.ww675-employee-ack{margin:0 0 14px;background:#fff7df;border:1px solid #ead398;border-radius:16px;padding:12px}.ww675-employee-ack>div{display:grid;grid-template-columns:32px 1fr;grid-template-rows:auto auto;column-gap:9px}.ww675-employee-ack>div>span{grid-row:1/3;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#a66c11;color:#fff;font-weight:900}.ww675-employee-ack>div strong{font-size:12px}.ww675-employee-ack>div small{font-size:9px;color:#776745}.ww675-employee-ack button{width:100%;margin-top:8px;border:0;border-radius:10px;background:#fff;padding:9px 10px;text-align:left;font-weight:750;color:#413a28}.ww675-employee-ack button b{float:right;color:#765013}.ww675-notice-copy{white-space:pre-wrap;background:#fff;border:1px solid #e0e7e2;border-radius:13px;padding:14px;font-size:13px;line-height:1.5;margin-bottom:12px}.ww675-ack-confirm small{display:block;color:#707b73;font-size:10px;margin-bottom:8px}
.ww675-safety-warning{display:block;background:#fff0ed;border:1px solid #f0c1b9;color:#692d26}.ww675-safety-warning strong,.ww675-safety-warning small{display:block}.ww675-safety-warning small{font-size:10px;margin-top:4px}.ww675-safety-active{background:#ffe9e5;border:1px solid #e7afa7}.ww675-safety-active>span{background:#a1352c}.ww675-safety-active p{margin:8px 0 0}.ww675-safety-review{display:flex;align-items:center;gap:10px;background:#ffe9e5;border-radius:14px;padding:12px;margin-bottom:10px}.ww675-safety-review>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#a2362d;color:#fff;font-weight:900}.ww675-safety-review div{display:flex;flex-direction:column}.ww675-safety-review small{font-size:10px;color:#765a56}.ww675-safety-review.is-resolved{background:#e8f4ea}.ww675-map{display:flex;align-items:center;gap:7px;background:#eef3ef;border-radius:10px;padding:10px;color:#2e5339;text-decoration:none;font-weight:800;font-size:12px}
.ww675-photo-stats,.ww675-cost-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:12px}.ww675-photo-stats span,.ww675-cost-grid span{background:#fff;border:1px solid #e0e8e2;border-radius:12px;padding:10px 7px;text-align:center;display:flex;flex-direction:column}.ww675-photo-stats b,.ww675-cost-grid b{font-size:15px}.ww675-photo-stats small,.ww675-cost-grid small{font-size:8px;color:#748077;margin-top:2px}.ww675-footnote{font-size:10px;color:#6c786f;line-height:1.45;background:#eef3ef;padding:10px;border-radius:10px}.ww675-maint-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ww675-maint-grid button{border:1px solid #dde6df;background:#fff;border-radius:13px;padding:12px;text-align:left;display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto}.ww675-maint-grid button>span{grid-row:1/3;font-size:18px;font-weight:900}.ww675-maint-grid strong{font-size:12px}.ww675-maint-grid small{font-size:9px;color:#718079;margin-top:2px}.ww675-backup-health{margin-top:12px;display:flex;flex-direction:column;align-items:flex-start}.ww675-backup-health.good{background:#e7f4ea}.ww675-backup-health.bad{background:#fff0ed}
.ww675-update-banner{position:fixed;z-index:12000;left:10px;right:10px;top:calc(8px + env(safe-area-inset-top));max-width:520px;margin:auto;background:#173522;color:#fff;border-radius:14px;padding:10px 11px;display:flex;gap:9px;align-items:center;box-shadow:0 10px 35px rgba(0,0,0,.28)}.ww675-update-banner>span{font-size:20px}.ww675-update-banner>div{flex:1;display:flex;flex-direction:column}.ww675-update-banner strong{font-size:12px}.ww675-update-banner small{font-size:9px;opacity:.72}.ww675-update-banner button{border:0;background:#fff;color:#23472e;border-radius:9px;padding:7px 10px;font-weight:800}
.ww675-smart .ww668-smart-head small{max-width:310px}.ww675-client-pref{margin:4px 0 10px}.ww675-client-ops{margin-top:12px}.ww675-client-head{display:flex;gap:10px;align-items:center;margin-bottom:11px}.ww675-client-head>span{flex:1;display:flex;flex-direction:column}.ww675-client-head small{font-size:9px;letter-spacing:.1em;color:#758177}.ww675-client-head strong{font-size:14px}.ww675-client-head button{border:0;background:#e6f0e8;color:#235034;border-radius:10px;padding:8px 10px;font-weight:800;font-size:10px}.ww675-pref-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}.ww675-pref-row span{background:#f1f5f2;border-radius:10px;padding:9px;display:flex;flex-direction:column}.ww675-pref-row small{font-size:8px;color:#758077}.ww675-pref-row strong{font-size:11px;margin-top:2px}.ww675-extra-cost{font-size:10px;background:#fff5df;color:#755213;border-radius:9px;padding:8px;margin-bottom:9px}.ww675-comms>div{display:flex;align-items:center;justify-content:space-between}.ww675-comms>div strong{font-size:11px}.ww675-comms>div button{border:0;background:none;color:#346143;font-weight:800;font-size:10px}.ww675-comms article{border-top:1px solid #e2e8e3;padding:8px 0}.ww675-comms article span{display:flex;justify-content:space-between}.ww675-comms article b{font-size:10px}.ww675-comms article small{font-size:8px;color:#7b857d}.ww675-comms article p,.ww675-comms>p{font-size:10px;color:#59675d;margin:4px 0 0}.ww675-comm-row{display:block!important}.ww675-comm-row p{margin:8px 0 0;font-size:11px;color:#4e5d53}.ww675-person-area{display:flex;align-items:center;gap:9px;background:#eff4f0;border-radius:12px;padding:10px;margin:10px 0}.ww675-person-area>span{flex:1;display:flex;flex-direction:column}.ww675-person-area strong{font-size:11px}.ww675-person-area small{font-size:9px;color:#6d7970;margin-top:2px}.ww675-person-area button{border:0;background:#fff;border-radius:8px;padding:7px 9px;font-weight:800;color:#31533b}.ww675-signoff-rule{display:flex;align-items:center;gap:10px;background:#f0f5f1;border-radius:12px;padding:10px;margin:9px 0}.ww675-signoff-rule input{width:18px;height:18px}.ww675-signoff-rule span{display:flex;flex-direction:column}.ww675-signoff-rule strong{font-size:11px}.ww675-signoff-rule small{font-size:9px;color:#6e7a71}.ww675-shift-proof{background:#f2f6f3;border-radius:13px;padding:10px;margin:10px 0}.ww675-shift-proof>div{display:flex;flex-direction:column;margin-bottom:7px}.ww675-shift-proof strong{font-size:11px}.ww675-shift-proof small{font-size:9px;color:#728078}.ww675-shift-proof button{width:100%;display:flex;justify-content:space-between;border:0;border-top:1px solid #dfe7e1;background:none;padding:8px 2px;font-weight:700;color:#2e4735}.ww675-shift-proof button.danger{color:#8c342d}
.ww675-account-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}.ww675-account-grid button{border:1px solid #dfe7e1;background:#fff;border-radius:14px;padding:11px 9px;min-height:92px;text-align:left;display:flex;flex-direction:column}.ww675-account-grid button>span{font-size:19px}.ww675-account-grid strong{font-size:11px;margin-top:6px}.ww675-account-grid small{font-size:8.5px;color:#748078;margin-top:3px;line-height:1.25}
@media(max-width:520px){.ww675-form-grid{grid-template-columns:1fr}.ww675-account-grid{grid-template-columns:1fr 1fr}.ww675-photo-stats,.ww675-cost-grid{grid-template-columns:1fr 1fr}.ww675-sheet{max-height:94dvh}.ww675-field-actions{grid-template-columns:1fr 1fr}.ww675-maint-grid{grid-template-columns:1fr 1fr}}
/* v675: guard new action icons from older global SVG sizing rules. */
.ww675-primary,.ww675-secondary,.ww675-danger,.ww675-inline-actions button{display:flex;align-items:center;justify-content:center;gap:8px}
.ww675-primary svg,.ww675-secondary svg,.ww675-danger svg,.ww675-inline-actions button svg,.ww675-lock-hero svg,.ww675-health-hero svg,.ww675-field-tools svg,.ww675-advanced-card svg{width:18px!important;height:18px!important;min-width:18px!important;max-width:18px!important;min-height:18px!important;max-height:18px!important;display:inline-block!important;flex:0 0 18px!important}


/* ---- app-polish-v678.css ---- */
/* EarthRoster v678 enterprise strengthening */
.ww678-overlay{position:fixed;inset:0;z-index:100020;background:rgba(11,22,16,.62);backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;padding:18px}.ww678-sheet{width:min(760px,100%);max-height:min(90vh,900px);background:#f4f2e9;color:#1c2f24;border-radius:26px;overflow:hidden;box-shadow:0 28px 80px rgba(0,0,0,.32);display:flex;flex-direction:column}.ww678-sheet>header{display:flex;justify-content:space-between;gap:16px;padding:18px 20px 14px;background:linear-gradient(135deg,#193424,#31553a);color:#fff}.ww678-sheet>header span{display:flex;flex-direction:column;min-width:0}.ww678-sheet>header small{font-size:10px;letter-spacing:.14em;opacity:.65}.ww678-sheet>header strong{font-size:22px;line-height:1.15}.ww678-sheet>header em{font-size:12px;font-style:normal;opacity:.76;margin-top:3px}.ww678-sheet>header button{width:34px;height:34px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:24px}.ww678-sheet>main{padding:16px;overflow:auto}.ww678-enterprise-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:8px 0 18px}.ww678-enterprise-grid button{min-height:86px;border:1px solid rgba(27,57,36,.11);border-radius:18px;background:rgba(255,255,255,.8);padding:12px;text-align:left;display:grid;grid-template-columns:28px 1fr;grid-template-rows:auto auto;gap:2px 8px;color:#20352a}.ww678-enterprise-grid button>span{grid-row:1/3;font-size:21px}.ww678-enterprise-grid strong{font-size:13px}.ww678-enterprise-grid small{font-size:10.5px;color:#6b756d;line-height:1.3}.ww678-pending-banner{margin:-8px 0 16px;padding:9px 12px;border-radius:12px;background:#fff1c7;color:#715215;font-size:12px;font-weight:800}.ww678-loading,.ww678-empty,.ww678-error{padding:24px;text-align:center;border-radius:16px;background:rgba(255,255,255,.65);color:#68736b}.ww678-error{background:#ffe9e7;color:#963c35}.ww678-security-hero,.ww678-governance-hero{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;padding:14px;border-radius:18px;background:#e7f0e7;margin-bottom:14px}.ww678-security-hero.warn{background:#fff0cf}.ww678-governance-hero.danger{background:#ffe3dd}.ww678-security-hero>span,.ww678-governance-hero>span{width:36px;height:36px;border-radius:12px;background:#274d34;color:#fff;display:grid;place-items:center;font-weight:900}.ww678-security-hero strong,.ww678-governance-hero strong{display:block;font-size:14px}.ww678-security-hero small,.ww678-governance-hero small{display:block;font-size:11px;color:#667268;margin-top:2px}.ww678-security-hero button,.ww678-governance-hero button,.ww678-head button,.ww678-list button,.ww678-tabs button,.ww678-template-panel button,.ww678-searchbar button,.ww678-route button{border:0;border-radius:10px;background:#294b35;color:#fff;padding:9px 11px;font-size:11px;font-weight:800}.ww678-section{margin:14px 0;padding:14px;border:1px solid rgba(28,57,37,.1);border-radius:18px;background:rgba(255,255,255,.64)}.ww678-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.ww678-head strong{font-size:13px}.ww678-head small{display:block;font-size:10px;color:#718078;margin-top:2px}.ww678-list{display:grid;gap:8px}.ww678-list article{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:13px;background:#fff;border:1px solid rgba(30,57,39,.08)}.ww678-list article>span{flex:1;min-width:0}.ww678-list strong{font-size:12px}.ww678-list small{display:block;font-size:10px;color:#768078;margin-top:2px}.ww678-list b{font-size:10px;text-transform:uppercase;color:#6a756e}.ww678-events{display:grid;gap:8px}.ww678-events article{display:grid;grid-template-columns:8px 1fr;gap:9px;padding:9px 0;border-bottom:1px solid rgba(30,57,39,.08)}.ww678-events i{width:8px;height:8px;border-radius:50%;background:#61846a;margin-top:4px}.ww678-events .sev-warning i{background:#c88727}.ww678-events .sev-critical i{background:#b44339}.ww678-events strong{font-size:11.5px;text-transform:capitalize}.ww678-events small,.ww678-events em{display:block;font-size:10px;color:#798179;font-style:normal}.ww678-mfa code{display:block;padding:14px;border-radius:12px;background:#1d2f25;color:#d8f6df;font-size:15px;letter-spacing:.08em;word-break:break-all;margin:10px 0}.ww678-mfa label,.ww678-field{display:flex;flex-direction:column;gap:5px;margin:12px 0}.ww678-mfa input,.ww678-field input,.ww678-field textarea,.ww678-field select,.ww678-form-grid input,.ww678-form-grid select,.ww678-searchbar input,.ww678-search-filters input,.ww678-search-filters select{width:100%;border:1px solid rgba(26,51,35,.14);border-radius:12px;background:#fff;padding:11px;font:inherit}.ww678-primary{width:100%;border:0;border-radius:13px;background:#284d34;color:#fff;padding:12px 14px;font-weight:900}.ww678-danger{width:100%;margin-top:8px;border:1px solid #d7a09b;border-radius:13px;background:#fff2f0;color:#8c3f39;padding:11px;font-weight:800}.ww678-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ww678-form-grid label{font-size:11px;color:#4f5f55}.ww678-form-grid small{font-size:9px}.ww678-toggle{display:flex;gap:10px;align-items:flex-start;padding:10px 0}.ww678-toggle input{margin-top:3px}.ww678-toggle strong{font-size:12px}.ww678-toggle small{display:block;font-size:10px;color:#778079;margin-top:2px}.ww678-flags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.ww678-flags label{background:#fff;padding:9px;border-radius:10px;font-size:10.5px}.ww678-maint-banner{position:fixed;z-index:100030;left:12px;right:12px;top:max(12px,env(safe-area-inset-top));display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;padding:9px 12px;background:#7b362f;color:#fff;border-radius:14px;box-shadow:0 8px 28px rgba(0,0,0,.28)}.ww678-maint-banner>span{font-size:18px;font-weight:900}.ww678-maint-banner strong{font-size:11px}.ww678-maint-banner small{display:block;font-size:9px;opacity:.8}.ww678-dr-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-bottom:12px}.ww678-dr-steps b{font-size:9px;padding:8px 5px;border-radius:9px;background:#e3eadf;text-align:center}.ww678-dr-note,.ww678-intel-warn,.ww678-travel-note{padding:11px;border-radius:12px;background:#fff2cf;color:#70551e;font-size:10.5px;margin-bottom:12px}.ww678-snap{flex-wrap:wrap}.ww678-snap>span:nth-child(2){display:flex;gap:5px}.ww678-snapshot-check{width:100%;font-size:10px}.ww678-snapshot-check .ok{color:#24663b;font-weight:900}.ww678-snapshot-check .bad{color:#a2473d;font-weight:900}.ww678-export-grid,.ww678-integration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ww678-export-grid button,.ww678-integration-grid article{border:1px solid rgba(25,54,36,.1);border-radius:15px;background:#fff;padding:12px;text-align:left}.ww678-export-grid button span{font-size:18px}.ww678-export-grid strong,.ww678-integration-grid span{display:block;font-size:12px}.ww678-export-grid small,.ww678-integration-grid small{display:block;font-size:10px;color:#737d75;margin-top:3px}.ww678-integration-grid b{display:inline-block;margin-top:7px;font-size:10px;color:#8b5f36}.ww678-integration-grid b.ok{color:#2d7043}.ww678-searchbar{display:grid;grid-template-columns:1fr auto;gap:7px}.ww678-search-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:8px 0}.ww678-recents{display:flex;gap:6px;overflow:auto;margin-bottom:9px}.ww678-recents button{white-space:nowrap;border:1px solid rgba(30,58,39,.12);border-radius:20px;background:#fff;padding:6px 9px;font-size:9.5px}.ww678-search-results{display:grid;gap:7px}.ww678-search-results>button{display:grid;grid-template-columns:66px 1fr 12px;gap:8px;align-items:center;border:1px solid rgba(28,54,37,.1);border-radius:13px;background:#fff;padding:10px;text-align:left}.ww678-search-results>button>b{font-size:9px;text-transform:uppercase;color:#55705d}.ww678-search-results strong{font-size:11.5px}.ww678-search-results small{display:block;font-size:10px;color:#747f77;margin-top:2px}.ww678-timeline{position:relative;padding-left:10px}.ww678-timeline article{display:grid;grid-template-columns:16px 1fr;gap:9px;padding:0 0 15px}.ww678-timeline i{width:10px;height:10px;border:2px solid #315c3e;background:#f4f2e9;border-radius:50%;margin-top:4px}.ww678-timeline strong{font-size:11.5px}.ww678-timeline small,.ww678-timeline em{display:block;font-size:10px;color:#78817a;font-style:normal}.ww678-template-panel{margin:0 0 12px;padding:11px;border-radius:15px;background:#eef2e9;border:1px solid rgba(31,59,38,.1);display:grid;grid-template-columns:1fr auto;gap:7px}.ww678-template-panel label>span{display:block;font-size:10px;font-weight:800;margin-bottom:4px}.ww678-template-panel select{width:100%;border:1px solid rgba(30,59,39,.14);border-radius:10px;background:#fff;padding:9px}.ww678-proof-inline{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;font-size:10px}.ww678-proof{display:grid;gap:8px;padding:10px;border-radius:12px;background:#fff;margin:12px 0}.ww678-intel-list{display:grid;gap:8px}.ww678-intel-list article{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;background:#fff;border-radius:13px;padding:10px}.ww678-intel-list strong{font-size:12px}.ww678-intel-list small{display:block;font-size:10px;color:#737e76}.ww678-intel-list b{font-size:9px;color:#2f7244}.ww678-intel-list b.warn{color:#a45a34}.ww678-intel-list button{border:0;border-radius:9px;background:#e9efe7;padding:7px;font-size:9px}.ww678-warning{padding:9px 10px;border-radius:11px;background:#fff3d8;margin:6px 0}.ww678-warning.high{background:#ffe3dd}.ww678-warning b,.ww678-warning span{display:block;font-size:10px}.ww678-route{display:grid;gap:8px}.ww678-route article{display:grid;grid-template-columns:30px 1fr auto;gap:9px;align-items:center;padding:10px;border-radius:13px;background:#fff}.ww678-route article>b{width:28px;height:28px;border-radius:50%;background:#294b35;color:#fff;display:grid;place-items:center}.ww678-route strong{font-size:11.5px}.ww678-route small{display:block;font-size:10px;color:#778078}.ww678-route em{font-size:9px;font-style:normal}.ww678-report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:12px}.ww678-report-grid span{background:#fff;border-radius:12px;padding:10px;text-align:center}.ww678-report-grid b{display:block;font-size:17px}.ww678-report-grid small{font-size:9px;color:#748078}.ww678-notify-list{display:grid;gap:2px}.ww678-client-metrics,.ww678-person-metrics,.ww678-shift-enterprise{margin:10px 0;padding:12px;border-radius:16px;background:#eef2e9;border:1px solid rgba(30,59,39,.09)}.ww678-client-metrics>div:first-child,.ww678-person-metrics,.ww678-shift-enterprise{display:flex;justify-content:space-between;gap:10px;align-items:center}.ww678-client-metrics small,.ww678-person-metrics small,.ww678-shift-enterprise small{display:block;font-size:10px;color:#6e7b71}.ww678-client-metrics button,.ww678-person-metrics button,.ww678-shift-enterprise button{border:0;border-radius:9px;background:#294b35;color:#fff;padding:7px 9px;font-size:9px}.ww678-client-metrics>div:last-child{display:grid;grid-template-columns:repeat(6,auto);gap:6px;margin-top:10px;align-items:center}.ww678-client-metrics b{font-size:14px}.ww678-client-metrics small{font-size:8.5px}.ww678-open svg,.ww678-sheet svg,.ww678-enterprise-grid svg{width:18px!important;height:18px!important;max-width:18px!important;max-height:18px!important}
@media(min-width:760px){.ww678-overlay{align-items:center}.ww678-sheet>main{padding:20px}.ww678-enterprise-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.ww678-overlay{padding:0;align-items:flex-end}.ww678-sheet{max-height:94vh;border-radius:24px 24px 0 0}.ww678-sheet>header{padding-top:max(18px,env(safe-area-inset-top))}.ww678-form-grid,.ww678-search-filters{grid-template-columns:1fr 1fr}.ww678-export-grid,.ww678-integration-grid{grid-template-columns:1fr}.ww678-dr-steps{grid-template-columns:repeat(5,1fr)}.ww678-dr-steps b{font-size:7.5px}.ww678-intel-list article{grid-template-columns:1fr auto}.ww678-intel-list article button{grid-column:1/-1}.ww678-client-metrics>div:last-child{grid-template-columns:repeat(3,auto)} }


/* ---- app-polish-v681.css ---- */
/* EarthRoster v681 — platform reliability, data architecture and integration security */
.ww681-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:10px 0 16px}.ww681-grid button{min-height:72px;border:1px solid rgba(31,58,39,.10);border-radius:15px;background:#f3f5ef;padding:11px;text-align:left;display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center}.ww681-grid button>span{width:28px;height:28px;border-radius:9px;background:#294b35;color:#fff;display:grid;place-items:center;font-size:14px}.ww681-grid strong{display:block;font-size:11.5px}.ww681-grid small{display:block;font-size:9.5px;color:#758078;margin-top:2px}.ww681-overlay{position:fixed;inset:0;z-index:999995;background:rgba(8,18,12,.58);backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;padding:14px}.ww681-sheet{width:min(760px,100%);max-height:92vh;background:#f4f2e9;border-radius:24px;box-shadow:0 24px 80px rgba(0,0,0,.32);display:flex;flex-direction:column;overflow:hidden}.ww681-sheet>header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px 17px 13px;background:#203d2b;color:#fff}.ww681-sheet>header small{display:block;font-size:8px;letter-spacing:.13em;opacity:.7}.ww681-sheet>header strong{display:block;font-size:17px;line-height:1.15}.ww681-sheet>header em{display:block;font-size:9px;font-style:normal;opacity:.78;margin-top:3px}.ww681-sheet>header button{width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:22px}.ww681-sheet>main{padding:15px;overflow:auto;-webkit-overflow-scrolling:touch}.ww681-hero{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:12px;border-radius:16px;background:#e8efe5;margin-bottom:10px}.ww681-hero.warn{background:#fff1d8}.ww681-hero.bad{background:#ffe4df}.ww681-hero>i{width:36px;height:36px;border-radius:11px;background:#2d5b3c;color:#fff;display:grid;place-items:center;font-style:normal;font-weight:900}.ww681-hero strong{display:block;font-size:12.5px}.ww681-hero small{display:block;font-size:9.5px;color:#69776d;margin-top:2px}.ww681-chip{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:5px 8px;background:#e9efe6;font-size:9px;font-weight:800}.ww681-chip.warn{background:#fff0ce;color:#7a591d}.ww681-chip.bad{background:#ffe1dc;color:#8f3e33}.ww681-section{margin:12px 0;padding:12px;border-radius:16px;background:#fff;border:1px solid rgba(31,58,39,.08)}.ww681-section>h3{font-size:12px;margin:0 0 3px}.ww681-section>p{font-size:9.5px;color:#718078;margin:0 0 10px}.ww681-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.ww681-kpis span{padding:9px 6px;background:#f2f5ef;border-radius:11px;text-align:center}.ww681-kpis b{display:block;font-size:15px}.ww681-kpis small{display:block;font-size:8px;color:#778078}.ww681-list{display:grid;gap:7px}.ww681-list article{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:9px 10px;border-radius:12px;background:#f4f6f1}.ww681-list strong{display:block;font-size:10.5px}.ww681-list small{display:block;font-size:9px;color:#758078}.ww681-list button,.ww681-btn{border:0;border-radius:9px;background:#294b35;color:#fff;padding:7px 9px;font-size:9px;font-weight:800}.ww681-btn.alt{background:#e7ede4;color:#294b35}.ww681-btn.danger{background:#9a4238}.ww681-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ww681-form label{font-size:9px;font-weight:800}.ww681-form label>span{display:block;margin-bottom:4px}.ww681-form input,.ww681-form select,.ww681-form textarea{width:100%;border:1px solid rgba(31,58,39,.14);border-radius:10px;background:#fff;padding:9px;font:inherit;font-size:10px}.ww681-form textarea{min-height:76px;resize:vertical}.ww681-wide{grid-column:1/-1}.ww681-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ww681-checks label{display:flex;gap:7px;align-items:center;padding:8px;border-radius:10px;background:#f2f5ef;font-size:9px}.ww681-event{border-left:3px solid #6a896e}.ww681-event.warning{border-left-color:#c88d3f}.ww681-event.error,.ww681-event.critical{border-left-color:#ae5547}.ww681-conflict{border:1px solid #ead3a3!important;background:#fff8e7!important}.ww681-conflict pre{white-space:pre-wrap;font-size:8.5px;max-height:120px;overflow:auto;background:#fff;padding:7px;border-radius:8px}.ww681-audit-hash{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;word-break:break-all}.ww681-privacy-table{display:grid;gap:6px}.ww681-privacy-table article{padding:9px;border-radius:11px;background:#f4f6f1}.ww681-privacy-table strong{font-size:10.5px}.ww681-privacy-table small{display:block;font-size:8.7px;color:#6e7b72}.ww681-network{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(72px + env(safe-area-inset-bottom,0px));z-index:999990;padding:7px 10px;border-radius:20px;background:#6f4c26;color:#fff;font-size:9px;box-shadow:0 8px 30px rgba(0,0,0,.2);display:none}.ww681-network.show{display:block}.ww681-emergency{position:sticky;top:0;z-index:9998;margin:0;padding:8px 12px;background:#8f443a;color:#fff;font-size:10px;text-align:center;font-weight:800}.ww681-release-row{display:flex;gap:7px;flex-wrap:wrap}.ww681-release-row button{flex:1 1 120px}.ww681-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#eff2ed;border-radius:9px;padding:8px;font-size:8.5px;word-break:break-all}.ww681-progress{height:7px;background:#e1e7df;border-radius:10px;overflow:hidden}.ww681-progress i{display:block;height:100%;background:#416b4d}.ww681-a11y li{font-size:9.5px;margin:4px 0}.ww681-open svg,.ww681-sheet svg{width:18px!important;height:18px!important;max-width:18px!important;max-height:18px!important}
@media(min-width:760px){.ww681-overlay{align-items:center}.ww681-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ww681-sheet>main{padding:19px}}
@media(max-width:520px){.ww681-overlay{padding:0}.ww681-sheet{max-height:95vh;border-radius:24px 24px 0 0}.ww681-sheet>header{padding-top:max(16px,env(safe-area-inset-top))}.ww681-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ww681-form{grid-template-columns:1fr}.ww681-wide{grid-column:auto}.ww681-checks{grid-template-columns:1fr}.ww681-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* ---- app-polish-v684.css ---- */
/* EarthRoster v684 — service delivery, workforce planning and governance. */
.ww684-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:10px 0 18px}.ww684-grid>button{display:flex;gap:11px;align-items:center;text-align:left;min-height:68px;padding:12px;border:1px solid rgba(71,95,78,.18);background:rgba(245,249,246,.86);border-radius:16px;color:#203326}.ww684-grid>button>span{width:36px;height:36px;border-radius:12px;background:#e6eee7;display:grid;place-items:center;font-size:18px;flex:0 0 36px}.ww684-grid strong,.ww684-grid small{display:block}.ww684-grid strong{font-size:13px}.ww684-grid small{font-size:11px;opacity:.66;margin-top:3px;line-height:1.25}.ww684-overlay{position:fixed;inset:0;z-index:10050;background:rgba(9,16,11,.58);display:flex;align-items:flex-end;justify-content:center}.ww684-sheet{width:min(760px,100%);max-height:94dvh;background:#f7faf7;border-radius:24px 24px 0 0;overflow:hidden;box-shadow:0 -20px 50px #0003;color:#203326}.ww684-sheet>header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px 18px 13px;border-bottom:1px solid #dce7df;background:#f1f6f2}.ww684-sheet>header span{min-width:0}.ww684-sheet>header small,.ww684-sheet>header strong,.ww684-sheet>header em{display:block}.ww684-sheet>header small{font-size:10px;letter-spacing:.12em;color:#708278}.ww684-sheet>header strong{font-size:19px;margin-top:2px}.ww684-sheet>header em{font-size:11px;color:#74847a;font-style:normal;margin-top:2px}.ww684-sheet>header button{border:0;width:38px;height:38px;border-radius:50%;background:#dfe8e1;font-size:23px;color:#31453a}.ww684-sheet>main{padding:14px 16px 50px;overflow:auto;max-height:calc(94dvh - 72px);overscroll-behavior:contain}.ww684-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.ww684-kpis span{background:#eaf1eb;border:1px solid #d8e4db;border-radius:14px;padding:10px;text-align:center}.ww684-kpis b{display:block;font-size:18px}.ww684-kpis small{font-size:10px;color:#68796e}.ww684-section{background:white;border:1px solid #dde7df;border-radius:17px;padding:13px;margin:10px 0}.ww684-section>header{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:9px}.ww684-section>header strong{font-size:13px}.ww684-list article,.ww684-list button.row{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:11px 0;border:0;border-top:1px solid #e6ede7;background:none;text-align:left;color:inherit}.ww684-list article:first-child,.ww684-list button.row:first-child{border-top:0}.ww684-list article>span,.ww684-list button.row>span{min-width:0;flex:1}.ww684-list strong,.ww684-list small{display:block}.ww684-list strong{font-size:12px}.ww684-list small{font-size:10.5px;color:#6e7d73;margin-top:3px;line-height:1.35}.ww684-tag{white-space:nowrap;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:800;background:#e6eee7;color:#385040}.ww684-tag.warn{background:#fff0cc;color:#7a5914}.ww684-tag.danger{background:#f7d9dc;color:#7a2830}.ww684-tag.good{background:#daf0de;color:#276035}.ww684-primary,.ww684-secondary,.ww684-danger{border:0;border-radius:12px;padding:10px 12px;font-weight:800;font-size:11px;cursor:pointer}.ww684-primary{background:#274332;color:white}.ww684-secondary{background:#e4ece6;color:#294235}.ww684-danger{background:#7a3037;color:white}.ww684-actions{display:flex;gap:7px;flex-wrap:wrap}.ww684-field{display:block;margin:9px 0}.ww684-field>span{display:block;font-size:10px;font-weight:800;color:#65766b;margin-bottom:5px}.ww684-field input,.ww684-field textarea,.ww684-field select{width:100%;border:1px solid #cfdcd2;border-radius:12px;background:#fbfdfb;padding:10px 11px;color:#1f3327;font:inherit;font-size:12px}.ww684-field textarea{min-height:82px;resize:vertical}.ww684-cols{display:grid;grid-template-columns:1fr 1fr;gap:9px}.ww684-note{padding:11px;border-radius:13px;background:#eef4ef;color:#53655a;font-size:10.5px;line-height:1.4}.ww684-warning{padding:11px;border-radius:13px;background:#fff3d6;color:#725615;font-size:10.5px;line-height:1.4}.ww684-dangerbox{padding:11px;border-radius:13px;background:#f9e1e3;color:#713039;font-size:10.5px;line-height:1.4}.ww684-meter{height:8px;background:#e5ece6;border-radius:999px;overflow:hidden;margin:6px 0}.ww684-meter i{display:block;height:100%;background:#345a42;border-radius:999px}.ww684-client-block{margin:10px 0;padding:12px;background:#f1f6f2;border:1px solid #dde7df;border-radius:16px}.ww684-client-block header{display:flex;justify-content:space-between;gap:8px}.ww684-client-block small{color:#718177}.ww684-route-step{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;padding:9px 0;border-top:1px solid #e5ede7}.ww684-route-step:first-child{border-top:0}.ww684-route-step i{width:26px;height:26px;background:#e4ede6;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:900;font-size:10px}.ww684-empty{padding:14px;text-align:center;color:#819086;font-size:11px}.ww684-client-portal{margin:10px 0;padding:12px;border-radius:16px;border:1px solid #dbe5dd;background:#f5f9f6}.ww684-client-portal>div:first-child{display:flex;justify-content:space-between;gap:8px;align-items:center}.ww684-client-portal strong,.ww684-client-portal small{display:block}.ww684-client-portal small{font-size:10px;color:#718177;margin-top:2px}.ww684-badge{display:inline-flex;padding:4px 7px;border-radius:999px;background:#e5eee7;font-size:9px;font-weight:800}.ww684-score{font-size:28px;font-weight:900}.ww684-score.good{color:#2e7040}.ww684-score.warn{color:#906c1c}.ww684-score.bad{color:#973840}.ww684-checklist{list-style:none;padding:0;margin:0}.ww684-checklist li{padding:8px 0;border-top:1px solid #e5ece6;font-size:11px}.ww684-checklist li:first-child{border-top:0}.ww684-checklist li:before{content:'✓';display:inline-grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#e3eee5;color:#376046;margin-right:8px;font-size:9px;font-weight:900}.ww684-portal-link{word-break:break-all;font-size:9.5px;color:#5d7064;background:#edf3ee;padding:9px;border-radius:10px;margin:8px 0}.ww684-training-progress{display:flex;align-items:center;gap:9px}.ww684-training-progress .ww684-meter{flex:1}.ww684-legal{border-left:4px solid #855038}.ww684-privacy{border-left:4px solid #446b86}@media(max-width:600px){.ww684-kpis{grid-template-columns:1fr 1fr}.ww684-cols{grid-template-columns:1fr}.ww684-grid{grid-template-columns:1fr 1fr}.ww684-sheet>main{padding-left:12px;padding-right:12px}}@media(max-width:390px){.ww684-grid{grid-template-columns:1fr}.ww684-kpis{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){.ww684-overlay,.ww684-sheet,*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}



/* ========================================================================== */
/* EarthRoster v693 — real-device visual-integrity fixes                      */
/* Fixes verified from iPhone screenshots/recordings supplied 28 Aug 2026.   */
/* ========================================================================== */

/* Client documents: keep agreement actions contained and legible on iPhone. */
.cd-agreement .cda-actions{
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important;
  gap:8px!important;
  width:100%!important;
  min-width:0!important;
}
.cd-agreement .cda-actions .btn{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:46px!important;
  height:auto!important;
  padding:10px 9px!important;
  font-size:12.5px!important;
  line-height:1.12!important;
  white-space:normal!important;
  text-align:center!important;
  justify-content:center!important;
  overflow-wrap:anywhere!important;
}
.cd-agreement .cda-actions .btn svg{width:17px!important;height:17px!important;flex:0 0 17px!important;}
@media(max-width:390px){
  .cd-agreement .cda-actions{grid-template-columns:1fr!important;}
}

/* Global search: prevent clipped placeholder/value text and stale module sizing. */
.ww672-searchbox{min-width:0!important;width:100%!important;overflow:hidden!important;}
.ww672-searchbox input,
#ww672SearchInput{
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  font-size:16px!important; /* prevents iOS focus zoom and improves fit */
  line-height:1.2!important;
  padding-right:12px!important;
  text-overflow:ellipsis!important;
}
.ww672-searchbox svg{flex:0 0 20px!important;width:20px!important;height:20px!important;}

/* Roster job editor: the completion checklist must be a sibling of Notes, not
   invalidly nested inside the Job notes <label>. Also bound every icon. */
body[data-modal-type="shift"] .ww666-checklist-builder{
  width:100%!important;
  min-width:0!important;
  margin:10px 0 0!important;
  padding:11px!important;
  border:1px solid rgba(56,86,61,.13)!important;
  border-radius:13px!important;
  background:#fbfcf9!important;
  box-sizing:border-box!important;
}
body[data-modal-type="shift"] .ww666-checklist-builder label{display:grid!important;gap:6px!important;min-width:0!important;}
body[data-modal-type="shift"] .ww666-checklist-builder label>span{min-height:20px!important;display:flex!important;align-items:center!important;gap:6px!important;}
body[data-modal-type="shift"] .ww666-checklist-builder label>span svg{
  width:15px!important;height:15px!important;min-width:15px!important;max-width:15px!important;max-height:15px!important;flex:0 0 15px!important;
}
body[data-modal-type="shift"] .ww666-checklist-builder textarea{
  width:100%!important;min-width:0!important;min-height:104px!important;max-height:180px!important;box-sizing:border-box!important;resize:vertical!important;
}
@media(max-width:720px){
  body[data-modal-type="shift"] .shift-modal{
    max-height:100dvh!important;
    height:100dvh!important;
    border-radius:0!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-head{
    min-height:74px!important;
    padding-top:max(calc(12px + env(safe-area-inset-top,0px)),54px)!important;
    padding-left:14px!important;
    padding-right:58px!important;
    padding-bottom:10px!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-x{
    top:max(calc(12px + env(safe-area-inset-top,0px)),48px)!important;
    right:12px!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-body{
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }
}

/* Timesheet editor: optional admin location/photo panels made the old fixed
   four-row grid collide. Use normal document flow and safe scrolling instead. */
@media(max-width:720px){
  body[data-modal-type="record"] .timesheet-modal .modal-body{
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    padding:9px!important;
  }
  body[data-modal-type="record"] .te-record-shell{
    height:auto!important;
    min-height:min-content!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:9px!important;
  }
  body[data-modal-type="record"] .te-record-shell>*{
    flex:0 0 auto!important;
    position:relative!important;
    inset:auto!important;
    transform:none!important;
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  body[data-modal-type="record"] .loc-panel,
  body[data-modal-type="record"] .proof-panel{
    margin:0!important;
    overflow:visible!important;
  }
  body[data-modal-type="record"] .geo-badge{
    position:relative!important;
    inset:auto!important;
    transform:none!important;
    max-width:100%!important;
    white-space:normal!important;
  }
  body[data-modal-type="record"] .te-form-grid{
    min-height:0!important;
    height:auto!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-auto-rows:auto!important;
    align-content:start!important;
    gap:9px!important;
    overflow:visible!important;
    padding:10px!important;
  }
  body[data-modal-type="record"] .te-form-grid>*{grid-column:1!important;grid-row:auto!important;min-width:0!important;}
  body[data-modal-type="record"] .ww-ts-travel-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
    width:100%!important;
  }
  body[data-modal-type="record"] .ww-ts-travel-row>.field:first-child,
  body[data-modal-type="record"] .ww-ts-travel-row>.field:last-child{grid-column:auto!important;grid-row:auto!important;}
  body[data-modal-type="record"] .te-time-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
  }
  body[data-modal-type="record"] .te-payroll-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(125px,.75fr)!important;
    gap:8px!important;
  }
  body[data-modal-type="record"] .te-save-hint{min-height:24px!important;padding:3px 2px 8px!important;}
}
@media(max-width:370px){
  body[data-modal-type="record"] .ww-ts-travel-row,
  body[data-modal-type="record"] .te-time-row,
  body[data-modal-type="record"] .te-payroll-row{grid-template-columns:1fr!important;}
}

/* ========================================================================== */
/* EarthRoster v693 — Home approvals/shift responses + compact admin tools   */
/* ========================================================================== */
.ww691-review-panel{
  margin:14px 0 16px!important;border:1px solid rgba(24,79,48,.13)!important;
  border-radius:22px!important;background:linear-gradient(180deg,#fff,#fbfdf9)!important;
  box-shadow:0 9px 24px rgba(24,57,36,.07)!important;overflow:hidden!important;
}
.ww691-review-panel.has-work{border-color:rgba(191,126,37,.2)!important}
.ww691-review-head{padding:16px 16px 13px;display:flex;flex-direction:column;gap:13px;background:linear-gradient(180deg,rgba(232,242,229,.78),rgba(249,252,247,.9));border-bottom:1px solid rgba(29,69,44,.08)}
.ww691-review-title{display:flex;align-items:center;gap:12px;min-width:0}.ww691-review-title>.appr-bell{width:40px;height:40px;flex:0 0 40px;border-radius:13px;display:grid;place-items:center;background:#194d31;color:#fff}.ww691-review-title>.appr-bell svg{width:20px;height:20px}.ww691-review-title>span:last-child{display:flex;flex-direction:column;min-width:0}.ww691-review-title small{font-size:9px;line-height:1.2;letter-spacing:.12em;font-weight:900;color:#75837a}.ww691-review-title strong{font-size:17px;line-height:1.15;color:#13251a}.ww691-review-title em{font-size:10.5px;line-height:1.25;font-style:normal;color:#6d786f;margin-top:3px}
.ww691-review-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.ww691-review-counts>span{min-width:0;padding:9px 8px;border:1px solid rgba(28,63,40,.08);border-radius:12px;background:#fff;display:flex;flex-direction:column}.ww691-review-counts b{font-size:17px;line-height:1;color:#173e27}.ww691-review-counts em{font-style:normal;font-size:8.5px;line-height:1.2;color:#707a72;margin-top:4px}.ww691-review-counts .warn{background:#fff8e8;border-color:#f0d79a}.ww691-review-counts .danger{background:#fff0ed;border-color:#ecc4bc}.ww691-review-counts .danger b{color:#9a3d33}
.ww691-review-body{padding:13px;display:flex;flex-direction:column;gap:14px}.ww691-review-section{display:flex;flex-direction:column;gap:8px}.ww691-review-section+.ww691-review-section{padding-top:12px;border-top:1px solid rgba(26,58,38,.08)}.ww691-review-section-head{display:flex;align-items:center;gap:8px;min-height:31px}.ww691-review-section-head>strong{font-size:12px;color:#213d2a}.ww691-review-section-head>*:last-child:not(:first-child){margin-left:auto}.ww691-link{border:0;background:transparent;color:#20583a;font-size:10px;font-weight:850;padding:7px 3px}.ww691-review-list{display:flex;flex-direction:column;gap:7px}.ww691-review-row{width:100%;border:1px solid rgba(24,61,38,.09);background:#fff;border-radius:14px;padding:10px 10px;display:grid;grid-template-columns:32px minmax(0,1fr) auto 18px;align-items:center;gap:9px;text-align:left;color:#17271c}.ww691-review-row.rejected{background:#fff6f3;border-color:#edc9c1}.ww691-review-row.waiting{background:#fffaf0;border-color:#eadbb1}.ww691-status-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#edf3eb;color:#245337}.ww691-review-row.rejected .ww691-status-icon{background:#f7ded8;color:#9a4035}.ww691-review-row.waiting .ww691-status-icon{background:#f8eac8;color:#88610f}.ww691-status-icon svg{width:17px;height:17px}.ww691-review-copy{display:flex;flex-direction:column;min-width:0}.ww691-review-copy strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ww691-review-copy small{font-size:9px;color:#6f786f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.ww691-review-row>b{font-size:9px;border-radius:999px;padding:5px 7px;background:#edf4eb;color:#245337}.ww691-review-row.rejected>b{background:#f4ddd8;color:#933d33}.ww691-go{display:grid;place-items:center;transform:rotate(180deg);color:#768178}.ww691-go svg{width:14px;height:14px}.ww691-more{font-size:9px;color:#748077;padding:3px 3px 0}.ww691-review-clear{margin:12px 13px 14px;padding:12px;border-radius:14px;background:#edf6eb;color:#2f613d;font-size:10.5px;font-weight:750;display:flex;align-items:center;gap:7px}.ww691-review-clear svg{width:17px;height:17px}.ww691-review-panel .approvals-list{gap:7px}.ww691-review-panel .appr-row{border-radius:14px!important;padding:10px!important}.ww691-review-panel .appr-row.is-flagged{background:#fff5f2;border-color:#ebc5bc}.ww691-review-panel .approvals-toolbar{padding:0!important;border:0!important}.ww691-review-panel .btn.btn-sm{white-space:nowrap}
.ww691-advanced-entry{width:100%;margin:0 0 18px;border:1px solid #dbe5dd;background:#fff;border-radius:16px;padding:12px 13px;display:grid;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:10px;text-align:left;color:#182b1e;box-shadow:0 3px 10px rgba(29,56,36,.035)}.ww691-advanced-entry.has-attention{border-color:#dfcca0;background:#fffdf7}.ww691-advanced-entry-ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#eaf2e8;color:#205237}.ww691-advanced-entry-ic svg{width:19px;height:19px}.ww691-advanced-entry>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.ww691-advanced-entry strong{font-size:11.5px}.ww691-advanced-entry small{font-size:9px;color:#737d75;margin-top:3px;line-height:1.3}.ww691-advanced-entry>b{display:grid;place-items:center;transform:rotate(180deg);color:#7a847c}.ww691-advanced-entry>b svg{width:15px;height:15px}
.ww691-admin-tools-list{display:flex;flex-direction:column;gap:9px}.ww691-admin-tools-list>button{width:100%;border:1px solid #dde5df;background:#fff;border-radius:15px;padding:12px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left}.ww691-admin-tools-list>button>span:first-child{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#eaf2e8;color:#214e33}.ww691-admin-tools-list>button>span:first-child svg{width:18px;height:18px}.ww691-admin-tools-list>button>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.ww691-admin-tools-list strong{font-size:11.5px}.ww691-admin-tools-list small{font-size:9px;color:#748078;margin-top:2px}.ww691-admin-tools-list b{font-size:9px;border-radius:999px;background:#edf4eb;color:#245337;padding:6px 8px}
@media(max-width:520px){.ww691-review-panel{margin:11px 0 14px!important;border-radius:18px!important}.ww691-review-head{padding:13px 12px 11px}.ww691-review-title>.appr-bell{width:36px;height:36px;flex-basis:36px}.ww691-review-title strong{font-size:15px}.ww691-review-counts{gap:5px}.ww691-review-counts>span{padding:8px 6px}.ww691-review-counts b{font-size:15px}.ww691-review-counts em{font-size:7.7px}.ww691-review-body{padding:10px}.ww691-review-row{grid-template-columns:29px minmax(0,1fr) auto 15px;padding:9px 8px;gap:7px}.ww691-status-icon{width:29px;height:29px}.ww691-review-copy strong{font-size:10.5px}.ww691-review-copy small{font-size:8.4px}.ww691-review-section-head{align-items:flex-start}.ww691-review-section-head .btn.btn-sm{font-size:8.5px;padding:8px 9px}.ww691-review-panel .appr-actions{gap:5px}.ww691-review-panel .appr-btn{width:34px;height:34px}.ww691-advanced-entry{margin-bottom:15px}}

/* ========================================================================== */
/* EarthRoster v693 — professional collapsible daily review centre            */
/* ========================================================================== */
.ww692-review-centre{margin:14px 0 16px;border:1px solid rgba(25,62,39,.10);border-radius:20px;background:#fff;box-shadow:0 5px 18px rgba(26,55,35,.055);overflow:hidden}
.ww692-review-centre.has-work{border-color:rgba(154,117,43,.18)}
.ww692-review-head{padding:14px;background:linear-gradient(180deg,#fcfdfb 0%,#f7faf5 100%)}
.ww692-review-heading{display:grid;grid-template-columns:38px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-width:0}
.ww692-review-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#173f28;color:#fff;box-shadow:0 5px 12px rgba(23,63,40,.14)}
.ww692-review-icon svg{width:18px;height:18px}
.ww692-review-heading-copy{min-width:0;display:flex;flex-direction:column}
.ww692-review-heading-copy small{font-size:8.5px;line-height:1.1;letter-spacing:.13em;font-weight:900;color:#7a857d}
.ww692-review-heading-copy strong{margin-top:2px;font-size:15px;line-height:1.18;color:#17291d;letter-spacing:-.018em}
.ww692-review-heading-copy em{margin-top:3px;font-size:9.2px;line-height:1.25;font-style:normal;color:#727c74;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ww692-total{display:inline-flex;align-items:center;justify-content:center;min-height:27px;padding:0 9px;border-radius:999px;background:#eef3ed;color:#496052;font-size:9px;font-weight:850;white-space:nowrap}
.ww692-total.has-items{background:#fff3d9;color:#7f5a14}
.ww692-toggle{height:34px;min-width:82px;padding:0 9px 0 11px;border:1px solid rgba(26,68,43,.12);border-radius:11px;background:#fff;color:#1e4d31;display:flex;align-items:center;justify-content:center;gap:6px;font-size:9.5px;font-weight:850;box-shadow:0 1px 3px rgba(25,55,35,.035)}
.ww692-toggle b{display:grid;place-items:center;transform:rotate(-90deg);transition:transform .16s ease}
.ww692-review-centre.is-open .ww692-toggle b{transform:rotate(90deg)}
.ww692-toggle svg{width:13px;height:13px}
.ww692-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:11px}
.ww692-summary-chip{min-width:0;min-height:46px;border:1px solid rgba(27,62,40,.08);border-radius:11px;background:#fff;padding:7px 8px;display:flex;flex-direction:column;justify-content:center}
.ww692-summary-chip b{font-size:15px;line-height:1;font-weight:850;color:#214631;font-variant-numeric:tabular-nums}
.ww692-summary-chip em{margin-top:4px;font-size:7.6px;line-height:1.16;font-style:normal;color:#727d75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ww692-summary-chip.attention{background:#fffbf2;border-color:#ead9aa}.ww692-summary-chip.attention b{color:#7a5a18}
.ww692-summary-chip.danger{background:#fff8f6;border-color:#ebd0c9}.ww692-summary-chip.danger b{color:#9a4036}
.ww692-review-body{border-top:1px solid rgba(26,61,39,.08);padding:12px 13px 13px;display:flex;flex-direction:column;gap:13px;background:#fff}
.ww692-review-group{display:flex;flex-direction:column;gap:8px;min-width:0}
.ww692-review-group+.ww692-review-group{padding-top:12px;border-top:1px solid rgba(27,62,40,.08)}
.ww692-group-head{min-height:31px;display:flex;align-items:center;gap:9px;justify-content:space-between}
.ww692-group-head>span{display:flex;flex-direction:column;min-width:0}.ww692-group-head>span strong{font-size:11.5px;line-height:1.2;color:#203629}.ww692-group-head>span em{margin-top:2px;font-size:8.3px;line-height:1.2;font-style:normal;color:#7a847c}
.ww692-text-link{display:flex;align-items:center;gap:4px;padding:6px 2px;color:#24563a;font-size:9px;font-weight:850;white-space:nowrap}.ww692-text-link svg{width:12px;height:12px;transform:rotate(180deg)}
.ww692-approve-all{height:32px;padding:0 10px;border-radius:10px;background:#194b2f;color:#fff;display:flex;align-items:center;gap:6px;font-size:9px;font-weight:850;white-space:nowrap;box-shadow:0 4px 10px rgba(25,75,47,.12)}.ww692-approve-all svg{width:13px;height:13px}
.ww692-shift-list,.ww692-timesheet-list{display:flex;flex-direction:column;gap:7px;min-width:0}
.ww692-shift-row{width:100%;min-width:0;border:1px solid rgba(29,64,42,.085);border-radius:13px;background:#fff;padding:9px;display:grid;grid-template-columns:30px minmax(0,1fr) auto 14px;align-items:center;gap:8px;text-align:left;color:#17281c}
.ww692-shift-row.is-waiting{border-left:3px solid #c69a3f}.ww692-shift-row.is-rejected{border-left:3px solid #b5574c;background:#fffafa}
.ww692-row-status{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#f2f5f1;color:#355b42}.ww692-shift-row.is-waiting .ww692-row-status{background:#fbf3df;color:#8a641e}.ww692-shift-row.is-rejected .ww692-row-status{background:#f9e8e4;color:#9a4036}.ww692-row-status svg{width:15px;height:15px}
.ww692-row-copy{min-width:0;display:flex;flex-direction:column}.ww692-row-copy strong{font-size:10.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ww692-row-copy small{margin-top:2px;font-size:8.3px;line-height:1.2;color:#727c74;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ww692-row-tag{height:23px;padding:0 7px;border-radius:999px;display:inline-flex;align-items:center;background:#f5f1e5;color:#795d22;font-size:7.8px;font-weight:850;white-space:nowrap}.ww692-shift-row.is-rejected .ww692-row-tag{background:#f8e8e4;color:#963f35}.ww692-row-go{display:grid;place-items:center;color:#849087;transform:rotate(180deg)}.ww692-row-go svg{width:12px;height:12px}
.ww692-timesheet-row{border:1px solid rgba(28,63,40,.09);border-radius:14px;background:#fff;overflow:hidden}.ww692-timesheet-row.is-flagged{border-color:#e6c6bf;background:#fffdfc}
.ww692-ts-info{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 14px;align-items:center;gap:9px;padding:10px;text-align:left}
.ww692-ts-avatar{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#e9f0e7;color:#214d33;font-size:9px;font-weight:900;letter-spacing:.04em}
.ww692-ts-copy{min-width:0;display:flex;flex-direction:column}.ww692-ts-top{display:flex;align-items:center;gap:8px;min-width:0}.ww692-ts-top strong{min-width:0;flex:1;font-size:10.8px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ww692-ts-top b{font-size:10px;line-height:1;color:#234d33;font-variant-numeric:tabular-nums}.ww692-ts-copy small{margin-top:3px;font-size:8.4px;line-height:1.18;color:#707b73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ww692-ts-copy em{margin-top:3px;font-size:7.8px;line-height:1.2;font-style:normal;color:#7e887f}.ww692-timesheet-row.is-flagged .ww692-ts-copy em{color:#9a493f;font-weight:800}.ww692-ts-go{display:grid;place-items:center;color:#879087;transform:rotate(180deg)}.ww692-ts-go svg{width:12px;height:12px}
.ww692-ts-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:0 9px 9px}.ww692-row-action,.ww692-flagged-label{height:29px;padding:0 9px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:5px;font-size:8.5px;font-weight:850}.ww692-row-action svg,.ww692-flagged-label svg{width:12px;height:12px}.ww692-row-action.flag{border:1px solid #ead2cc;background:#fff7f5;color:#9b4439}.ww692-row-action.approve{background:#1d5435;color:#fff;box-shadow:0 3px 8px rgba(29,84,53,.10)}.ww692-flagged-label{background:#f8e8e4;color:#98453a}
.ww692-more-button{width:100%;height:34px;border:1px dashed rgba(34,78,50,.16);border-radius:10px;background:#fafcf9;color:#315a3f;font-size:8.8px;font-weight:850}
.ww692-group-clear{min-height:42px;border-radius:11px;background:#f2f7f0;color:#356044;padding:10px;display:flex;align-items:center;gap:7px;font-size:9px;font-weight:750}.ww692-group-clear svg{width:14px;height:14px}
@media(max-width:520px){
  .ww692-review-centre{margin:11px 0 14px;border-radius:18px}.ww692-review-head{padding:12px}
  .ww692-review-heading{grid-template-columns:34px minmax(0,1fr) auto;gap:8px}.ww692-review-icon{width:34px;height:34px;border-radius:11px}.ww692-review-icon svg{width:16px;height:16px}
  .ww692-review-heading-copy strong{font-size:13.5px}.ww692-review-heading-copy em{font-size:8.4px}.ww692-total{grid-column:2;grid-row:2;justify-self:start;min-height:22px;font-size:7.8px;padding:0 7px;margin-top:-1px}
  .ww692-toggle{grid-column:3;grid-row:1 / span 2;min-width:66px;height:32px;font-size:8.5px}.ww692-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:9px}.ww692-summary-chip{min-height:39px;padding:6px 7px}.ww692-summary-chip b{font-size:13.5px}.ww692-summary-chip em{font-size:7.2px}
  .ww692-review-body{padding:10px;gap:11px}.ww692-group-head{align-items:center}.ww692-group-head>span strong{font-size:10.8px}.ww692-group-head>span em{font-size:7.8px}.ww692-approve-all{height:30px;padding:0 8px;font-size:8px}.ww692-shift-row{grid-template-columns:28px minmax(0,1fr) auto 12px;padding:8px;gap:7px}.ww692-row-status{width:28px;height:28px}.ww692-row-copy strong{font-size:9.8px}.ww692-row-copy small{font-size:7.8px}.ww692-row-tag{font-size:7.2px;padding:0 6px}.ww692-ts-info{grid-template-columns:31px minmax(0,1fr) 12px;padding:9px}.ww692-ts-avatar{width:31px;height:31px}.ww692-ts-top strong{font-size:10px}.ww692-ts-copy small{font-size:7.8px}.ww692-ts-copy em{font-size:7.3px}.ww692-ts-actions{padding:0 8px 8px}.ww692-row-action,.ww692-flagged-label{height:28px;font-size:8px}
}

/* ========================================================================== */
/* EarthRoster v693 — clean professional Home + high-volume review queue       */
/* ========================================================================== */
/* System health is an occasional diagnostic. It lives in Advanced Admin Tools,
   not as a permanent dashboard warning. Critical sync/data faults still enter
   the Admin Action Centre through the existing operational checks. */
.ww667-health-strip{display:none!important}

/* Home top bar: retain the EarthRoster character, but reduce its visual weight
   so operational content starts sooner on a phone. */
@media(max-width:720px){
  .topbar.topbar-home{padding:calc(10px + var(--safe-t)) 14px 11px!important;min-height:calc(84px + var(--safe-t))!important;border-radius:0 0 20px 20px!important}
  .topbar.topbar-home h1,#pageTitle{font-size:clamp(24px,7vw,30px)!important;line-height:1!important;letter-spacing:-.035em!important;max-width:calc(100vw - 142px)!important}
  .topbar.topbar-home .sub,#pageSub{margin-top:5px!important;font-size:11px!important;max-width:calc(100vw - 142px)!important}
  .topbar.topbar-home .topbar-actions{transform:scale(.92);transform-origin:right center}
}

/* Today's snapshot: four numbers remain immediately visible, but they read as
   one compact information strip rather than four large cards. */
.hm-hero.admin{padding:13px 14px 12px!important;border-radius:18px!important;box-shadow:0 10px 24px rgba(16,38,22,.16)!important}
.hm-hero.admin .hm-hero-row{align-items:center!important}
.hm-hero.admin .hm-hero-copy h1{font-size:21px!important;margin:1px 0 2px!important}
.hm-hero.admin .hm-hero-copy p{font-size:10.5px!important}
.hm-hero.admin .hm-eyebrow{font-size:8.5px!important;letter-spacing:.13em!important}
.hm-hero.admin .hm-hero-stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:0!important;margin-top:10px!important;border:1px solid rgba(255,255,255,.11)!important;border-radius:12px!important;background:rgba(255,255,255,.055)!important;overflow:hidden!important}
.hm-hero.admin .hm-hs{min-height:48px!important;padding:7px 4px 6px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;justify-content:center!important}
.hm-hero.admin .hm-hs+.hm-hs{border-left:1px solid rgba(255,255,255,.11)!important}
.hm-hero.admin .hm-hs strong{font-size:17px!important;line-height:1!important}
.hm-hero.admin .hm-hs em{font-size:7px!important;line-height:1.15!important;letter-spacing:.045em!important;margin-top:4px!important}
.hm-hero.admin .hm-hs.alert{background:rgba(217,161,65,.08)!important;border-color:transparent!important}
.hm-hero.admin .hm-hs.alert strong{color:#f3d595!important}
@media(max-width:390px){
  .hm-hero.admin{padding:11px 11px 10px!important}
  .hm-hero.admin .hm-hero-copy h1{font-size:19px!important}
  .hm-hero.admin .hm-hs{min-height:44px!important}
  .hm-hero.admin .hm-hs strong{font-size:15.5px!important}
  .hm-hero.admin .hm-hs em{font-size:6.4px!important}
}

/* Review centre — intentionally dense. The Home page never renders more than
   three shift rows and five timesheet rows, regardless of a 30/50/100 item
   queue. Full lists remain in Roster and Clock. */
.ww693-review{margin:11px 0 13px;border:1px solid rgba(31,67,43,.11);border-radius:16px;background:#fff;box-shadow:0 4px 14px rgba(25,55,35,.045);overflow:hidden}
.ww693-review.has-work{border-color:rgba(177,139,66,.20)}
.ww693-review-bar{display:grid;grid-template-columns:32px minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:11px 12px 9px}
.ww693-review-mark{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#edf3ec;color:#245337}
.ww693-review.has-work .ww693-review-mark{background:#f5eedc;color:#7b5d1d}
.ww693-review-mark svg{width:15px;height:15px}
.ww693-review-title{min-width:0;display:flex;flex-direction:column}
.ww693-review-title small{font-size:7.2px;line-height:1;letter-spacing:.13em;font-weight:900;color:#818a83}
.ww693-review-title strong{margin-top:2px;font-size:12.5px;line-height:1.18;color:#183022;letter-spacing:-.012em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ww693-review-title em{margin-top:2px;font-size:7.8px;line-height:1.2;font-style:normal;color:#7a837c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ww693-review-total{height:23px;padding:0 7px;border-radius:999px;display:inline-flex;align-items:center;background:#eff4ee;color:#4d6455;font-size:7.7px;font-weight:850;white-space:nowrap}
.ww693-review-total.attention{background:#fff3d9;color:#765414}
.ww693-review-toggle{height:30px;padding:0 8px 0 9px;border:1px solid #dce5dd;border-radius:9px;background:#fff;color:#245337;display:flex;align-items:center;gap:5px;font-size:8.2px;font-weight:850;white-space:nowrap}
.ww693-review-toggle b{display:grid;place-items:center;transform:rotate(-90deg)}
.ww693-review.is-open .ww693-review-toggle b{transform:rotate(90deg)}
.ww693-review-toggle svg{width:11px;height:11px}
.ww693-review-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 12px 10px;border:1px solid #e7ece7;border-radius:10px;background:#f8faf7;overflow:hidden}
.ww693-review-counts>span{min-width:0;min-height:34px;display:flex;align-items:center;justify-content:center;gap:5px;padding:5px 4px;color:#5d6b61}
.ww693-review-counts>span+span{border-left:1px solid #e5ebe5}
.ww693-review-counts b{font-size:10.5px;line-height:1;font-weight:900;color:#244b33;font-variant-numeric:tabular-nums}
.ww693-review-counts em{font-size:6.8px;line-height:1;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ww693-review-counts .attention b{color:#806019}.ww693-review-counts .danger b{color:#9c463b}
.ww693-review-body{border-top:1px solid #edf1ed;padding:9px 11px 10px;background:#fff;display:flex;flex-direction:column;gap:10px}
.ww693-queue-section{min-width:0}.ww693-queue-section+.ww693-queue-section{padding-top:9px;border-top:1px solid #edf1ed}
.ww693-queue-head{height:28px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:3px}
.ww693-queue-head>span{min-width:0;display:flex;align-items:baseline;gap:6px}.ww693-queue-head strong{font-size:10px;color:#1b3325}.ww693-queue-head em{font-size:7.3px;font-style:normal;color:#828b84;white-space:nowrap}
.ww693-link{display:flex;align-items:center;gap:3px;color:#2b5c3d;font-size:7.6px;font-weight:850;padding:4px 0}.ww693-link svg{width:10px;height:10px;transform:rotate(180deg)}
.ww693-approve-all{height:27px;padding:0 8px;border-radius:8px;background:#1e5536;color:#fff;display:inline-flex;align-items:center;gap:4px;font-size:7.4px;font-weight:850;white-space:nowrap}.ww693-approve-all svg{width:11px;height:11px}
.ww693-queue-list{display:flex;flex-direction:column}
.ww693-shift-line{width:100%;min-width:0;display:grid;grid-template-columns:25px minmax(0,1fr) auto 11px;align-items:center;gap:7px;min-height:43px;padding:5px 3px;border:0;border-bottom:1px solid #eef1ee;background:#fff;text-align:left;color:#17291d}
.ww693-shift-line:last-child{border-bottom:0}.ww693-shift-line.is-rejected{background:linear-gradient(90deg,#fff9f8 0%,#fff 46%)}
.ww693-line-state{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:#f6f1e3;color:#89651d}.ww693-shift-line.is-rejected .ww693-line-state{background:#f8e8e4;color:#99453b}.ww693-line-state svg{width:12px;height:12px}
.ww693-line-copy{min-width:0;display:flex;flex-direction:column}.ww693-line-copy strong{min-width:0;font-size:9.2px;line-height:1.15;color:#1b3022;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ww693-line-copy small{margin-top:2px;font-size:7.2px;line-height:1.15;color:#7c857e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ww693-line-tag{height:20px;padding:0 6px;border-radius:999px;display:flex;align-items:center;background:#f5f1e5;color:#7a5d22;font-size:6.7px;font-weight:850}.ww693-shift-line.is-rejected .ww693-line-tag{background:#f9e8e4;color:#934237}
.ww693-line-go{display:grid;place-items:center;transform:rotate(180deg);color:#8b958e}.ww693-line-go svg{width:10px;height:10px}
.ww693-ts-line{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;min-height:46px;padding:5px 3px;border-bottom:1px solid #eef1ee;background:#fff}.ww693-ts-line:last-child{border-bottom:0}.ww693-ts-line.is-flagged{background:linear-gradient(90deg,#fff9f8 0%,#fff 48%)}
.ww693-ts-open{min-width:0;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:7px;text-align:left}.ww693-ts-avatar{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#eaf1e8;color:#285038;font-size:7.4px;font-weight:900}.ww693-ts-open .ww693-line-copy strong{display:flex;align-items:center;gap:6px}.ww693-ts-open .ww693-line-copy strong>b{margin-left:auto;font-size:8px;color:#31583f;font-variant-numeric:tabular-nums}
.ww693-ts-actions{display:flex;align-items:center;gap:4px}.ww693-mini-action,.ww693-flag-label{height:25px;padding:0 6px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:3px;font-size:6.9px;font-weight:850;white-space:nowrap}.ww693-mini-action svg{width:10px;height:10px}.ww693-mini-action.flag{border:1px solid #ead6d0;background:#fff;color:#9b483e}.ww693-mini-action.approve{background:#1e5536;color:#fff}.ww693-flag-label{background:#f8e8e4;color:#99453b}
.ww693-queue-more{width:100%;height:28px;margin-top:4px;border:0;border-radius:8px;background:#f6f9f5;color:#315a40;font-size:7.5px;font-weight:850}.ww693-clear-line{height:36px;border-radius:9px;background:#f3f7f2;color:#3e664a;display:flex;align-items:center;gap:6px;padding:0 9px;font-size:8px;font-weight:750}.ww693-clear-line svg{width:12px;height:12px}
@media(max-width:390px){
  .ww693-review-bar{grid-template-columns:30px minmax(0,1fr) auto;padding:10px 10px 8px;gap:7px}.ww693-review-mark{width:30px;height:30px}.ww693-review-title strong{font-size:11.5px}.ww693-review-title em{display:none}.ww693-review-total{grid-column:2;grid-row:2;justify-self:start;margin-top:-1px}.ww693-review-toggle{grid-column:3;grid-row:1 / span 2}.ww693-review-counts{margin-left:10px;margin-right:10px}.ww693-review-counts em{font-size:6.2px}.ww693-mini-action span{display:none}.ww693-mini-action{width:26px;padding:0}.ww693-flag-label{font-size:6.4px;padding:0 5px}.ww693-queue-head em{display:none}
}

/* Daily Operations: one concise card instead of four KPI boxes. */
.ww693-ops-brief{margin:9px 0 12px;border:1px solid rgba(49,83,57,.13);border-radius:14px;background:#f8faf7;overflow:hidden;box-shadow:0 3px 10px rgba(31,55,37,.03)}
.ww693-ops-main{width:100%;display:grid;grid-template-columns:30px minmax(0,1fr) auto 12px;align-items:center;gap:8px;padding:10px 11px;text-align:left;color:#183423}
.ww693-ops-mark{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#e8f0e7;color:#315f40}.ww693-ops-mark svg{width:14px;height:14px}
.ww693-ops-copy{min-width:0;display:flex;flex-direction:column}.ww693-ops-copy small{font-size:6.8px;letter-spacing:.11em;font-weight:900;color:#7c867e}.ww693-ops-copy strong{margin-top:2px;font-size:11.5px;line-height:1.1}.ww693-ops-copy em{margin-top:3px;font-size:7.5px;line-height:1.2;font-style:normal;color:#748078;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ww693-ops-status{min-width:38px;text-align:center;display:flex;flex-direction:column}.ww693-ops-status b{font-size:11px}.ww693-ops-status em{font-size:6.4px;font-style:normal;color:#7b857d}.ww693-ops-status.attention b{color:#9b463a}.ww693-ops-go{display:grid;place-items:center;transform:rotate(180deg);color:#7c887f}.ww693-ops-go svg{width:11px;height:11px}
.ww693-closeout{width:100%;height:31px;padding:0 11px;border-top:1px solid #e4eae4;background:#fff;display:flex;align-items:center;justify-content:space-between;color:#335a40;font-size:7.8px;font-weight:850}.ww693-closeout b{display:grid;place-items:center;transform:rotate(180deg)}.ww693-closeout svg{width:10px;height:10px}


/* ========================================================================== */
/* EarthRoster v705 — SHIFT STATUS ONLY                                       */
/* Requested scope: change only Reassign/Awaiting presentation.               */
/* All timesheet Approve all / X / tick controls remain exactly v693.         */
/* ========================================================================== */
.ww695-shift-status{
  min-width:0;display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;
  padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;
  font-size:6.8px;line-height:1;font-weight:800;letter-spacing:.01em;white-space:nowrap;
  color:#7d765f
}
.ww695-shift-status i{width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:#c5a75d}
.ww695-shift-status.is-rejected{color:#9b5149}
.ww695-shift-status.is-rejected i{background:#c96e64}
@media(max-width:390px){.ww695-shift-status{font-size:6.25px;gap:4px}.ww695-shift-status i{width:4px;height:4px;flex-basis:4px}}

/* ========================================================================== */
/* EarthRoster v705 — scope-locked left shift icon restoration                 */
/* User-requested change only: restore the left rejected X / awaiting clock    */
/* tiles to the exact v693 visual treatment. Right Reassign/Awaiting status,   */
/* timesheet controls, layout, spacing and behavior are intentionally untouched.*/
/* ========================================================================== */
.ww693-shift-line .ww693-line-state{
  width:25px!important;height:25px!important;border-radius:8px!important;
  display:grid!important;place-items:center!important;
  background:#f6f1e3!important;color:#89651d!important;
  box-shadow:none!important;border:0!important;
}
.ww693-shift-line.is-rejected .ww693-line-state{
  background:#f8e8e4!important;color:#99453b!important;
}
.ww693-shift-line .ww693-line-state svg{
  width:12px!important;height:12px!important;
  stroke:currentColor!important;stroke-width:1.8!important;
}

/* ========================================================================== */
/* EarthRoster v705 — Premium Admin Home redesign                              */
/* Scope: Home/dashboard presentation only. v703 reliability/security remains. */
/* Reassign/Awaiting states and timesheet action controls stay functionally     */
/* unchanged.                                                                  */
/* ========================================================================== */

/* Give the admin home a calmer editorial rhythm instead of a stack of boxes. */
.hm{
  --hm-ink:#173425;
  --hm-muted:#708078;
  --hm-line:rgba(31,68,43,.10);
  --hm-paper:#fffdf9;
  --hm-sage:#edf4eb;
  --hm-forest:#123b26;
  --hm-gold:#c7a25b;
}
.hm > *{position:relative}

/* TODAY — premium command-card treatment. */
.hm-hero.admin{
  overflow:hidden!important;
  padding:17px 17px 15px!important;
  border-radius:24px!important;
  border:1px solid rgba(255,255,255,.10)!important;
  background:
    radial-gradient(90% 135% at 100% 0%,rgba(225,198,134,.19),transparent 48%),
    radial-gradient(80% 130% at 0% 110%,rgba(101,159,112,.18),transparent 52%),
    linear-gradient(142deg,#2f6945 0%,#1b4d31 48%,#102f20 100%)!important;
  box-shadow:0 18px 42px rgba(18,51,31,.20),0 2px 4px rgba(18,51,31,.10)!important;
}
.hm-hero.admin::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(115deg,rgba(255,255,255,.08),transparent 26%,transparent 76%,rgba(255,255,255,.035));
}
.hm-hero.admin .hm-hero-bg{opacity:.35!important}
.hm-hero.admin .hm-hero-row{position:relative;z-index:1;align-items:center!important;gap:16px!important}
.hm-hero.admin .hm-eyebrow{
  font-size:8px!important;letter-spacing:.18em!important;font-weight:850!important;
  color:rgba(255,255,255,.58)!important;
}
.hm-hero.admin .hm-hero-copy h1{
  margin:4px 0 3px!important;font-size:26px!important;line-height:1!important;
  letter-spacing:-.035em!important;color:#fff!important;
}
.hm-hero.admin .hm-hero-copy p{font-size:10.5px!important;color:rgba(255,255,255,.68)!important}
.hm-hero.admin .hm-hero-add{
  min-height:40px!important;padding:0 15px!important;border-radius:14px!important;
  background:linear-gradient(180deg,#fffdf8,#f4efe4)!important;color:#1d5434!important;
  border:1px solid rgba(255,255,255,.45)!important;
  box-shadow:0 8px 18px rgba(4,20,11,.20),inset 0 1px 0 #fff!important;
  font-size:11.5px!important;font-weight:850!important;letter-spacing:-.01em!important;
}
.hm-hero.admin .hm-hero-add svg{width:17px!important;height:17px!important;stroke-width:2.3!important}
.hm-hero.admin .hm-hero-stats{
  position:relative;z-index:1;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;
  margin-top:14px!important;gap:0!important;border:0!important;border-radius:15px!important;
  background:rgba(5,25,14,.16)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important;
  overflow:hidden!important;
}
.hm-hero.admin .hm-hs{
  min-height:54px!important;padding:9px 5px 8px!important;border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;
}
.hm-hero.admin .hm-hs+.hm-hs{border-left:1px solid rgba(255,255,255,.10)!important}
.hm-hero.admin .hm-hs strong{font-size:19px!important;letter-spacing:-.035em!important;color:#fff!important}
.hm-hero.admin .hm-hs em{margin-top:5px!important;font-size:6.6px!important;letter-spacing:.09em!important;color:rgba(255,255,255,.54)!important}
.hm-hero.admin .hm-hs.alert{background:linear-gradient(180deg,rgba(209,169,89,.10),rgba(209,169,89,.035))!important}
.hm-hero.admin .hm-hs.alert strong{color:#f0cf8c!important}

/* DAILY REVIEW — a refined review console, not another heavy card. */
.ww693-review{
  margin:16px 0 15px!important;border:1px solid rgba(37,75,49,.11)!important;border-radius:22px!important;
  background:var(--hm-paper)!important;
  box-shadow:0 12px 30px rgba(26,58,36,.075),0 1px 2px rgba(26,58,36,.05)!important;
  overflow:hidden!important;
}
.ww693-review.has-work{border-color:rgba(177,139,66,.24)!important}
.ww693-review-bar{
  min-height:70px!important;display:grid!important;grid-template-columns:40px minmax(0,1fr) auto auto!important;
  gap:10px!important;align-items:center!important;padding:13px 14px 10px!important;
  background:linear-gradient(180deg,#fffefb 0%,#fcfaf4 100%)!important;
}
.ww693-review-mark{
  width:40px!important;height:40px!important;border-radius:13px!important;
  background:linear-gradient(145deg,#eef4ec,#e2ebe0)!important;color:#2d6240!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75)!important;
}
.ww693-review.has-work .ww693-review-mark{background:linear-gradient(145deg,#fff6df,#f2e5bf)!important;color:#7f5e1e!important}
.ww693-review-mark svg{width:17px!important;height:17px!important}
.ww693-review-title small{font-size:7px!important;letter-spacing:.17em!important;color:#8c938e!important}
.ww693-review-title strong{margin-top:3px!important;font-size:14px!important;letter-spacing:-.02em!important;color:#193526!important}
.ww693-review-title em{margin-top:3px!important;font-size:7.6px!important;color:#899089!important}
.ww693-review-total{
  height:25px!important;padding:0 9px!important;border-radius:999px!important;
  background:#eef3ed!important;color:#45614f!important;font-size:7px!important;letter-spacing:.02em!important;
}
.ww693-review-total.attention{background:#fff1cf!important;color:#7d5c17!important;box-shadow:inset 0 0 0 1px rgba(190,148,61,.09)!important}
.ww693-review-toggle{
  height:34px!important;padding:0 10px 0 11px!important;border:1px solid rgba(32,77,49,.13)!important;
  border-radius:12px!important;background:#fff!important;color:#245a39!important;
  box-shadow:0 2px 8px rgba(32,64,42,.045)!important;font-size:7.8px!important;
}
.ww693-review-counts{
  display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;
  margin:0 14px 13px!important;border:0!important;border-radius:0!important;background:transparent!important;overflow:visible!important;
}
.ww693-review-counts>span{
  min-height:34px!important;padding:4px 6px!important;gap:5px!important;background:transparent!important;color:#6c786f!important;
}
.ww693-review-counts>span+span{border-left:1px solid rgba(40,77,51,.10)!important}
.ww693-review-counts b{font-size:12px!important;letter-spacing:-.02em!important;color:#234c33!important}
.ww693-review-counts em{font-size:6.5px!important;letter-spacing:.015em!important}
.ww693-review-counts .attention b{color:#88631b!important}.ww693-review-counts .danger b{color:#a04e43!important}
.ww693-review-body{border-top:1px solid rgba(35,72,47,.075)!important;padding:11px 14px 14px!important;background:#fff!important;gap:13px!important}
.ww693-queue-section+.ww693-queue-section{padding-top:12px!important;border-top:1px solid rgba(35,72,47,.08)!important}
.ww693-queue-head{height:30px!important;margin-bottom:3px!important}
.ww693-queue-head strong{font-size:10.5px!important;letter-spacing:-.01em!important;color:#1c3927!important}
.ww693-queue-head em{font-size:6.9px!important;color:#909791!important}
.ww693-queue-more{margin-top:6px!important;height:29px!important;border-radius:10px!important;background:#f2f6f0!important;color:#315c40!important}

/* ADMIN ACTION CENTRE — visually distinctive, but compact. */
.ww663-action-centre{
  margin:0 0 15px!important;border:1px solid rgba(86,66,35,.10)!important;border-radius:22px!important;
  background:linear-gradient(180deg,#fffdf9 0%,#fff 100%)!important;
  box-shadow:0 11px 28px rgba(39,48,31,.065),0 1px 2px rgba(39,48,31,.04)!important;
  overflow:hidden!important;
}
.ww663-action-centre::before{content:"";display:block;height:3px;background:linear-gradient(90deg,#c6a35f,#dfc488 46%,rgba(223,196,136,.15))}
.ww663-ac-head{padding:12px 14px 6px!important;align-items:center!important}
.ww663-ac-head span{font-size:7px!important;letter-spacing:.18em!important;color:#8a8d84!important}
.ww663-ac-head h2{margin-top:4px!important;font-size:14px!important;letter-spacing:-.02em!important;color:#203b2b!important}
.ww663-ac-count{
  padding:5px 8px!important;border-radius:999px!important;background:#f7ebe4!important;color:#984b3c!important;
  box-shadow:inset 0 0 0 1px rgba(154,78,61,.05)!important;
}
.ww663-ac-count strong{font-size:12px!important}.ww663-ac-count small{font-size:6.2px!important;letter-spacing:.08em!important}
.ww663-ac-summary{gap:5px!important;padding:0 14px 9px!important}
.ww663-ac-summary span{padding:3px 7px!important;border-radius:999px!important;background:#eef3ed!important;color:#5b6b60!important;font-size:7px!important}
.ww663-ac-summary .urgent{background:#faece7!important;color:#9d4d3f!important}
.ww663-ac-summary b{font-size:8px!important}
.ww663-ac-list{margin:0 10px 10px!important;border:1px solid rgba(39,73,49,.075)!important;border-radius:13px!important;overflow:hidden!important;background:#fff!important}
.ww663-ac-row{
  min-height:48px!important;grid-template-columns:32px minmax(0,1fr) auto 12px!important;gap:8px!important;
  padding:7px 9px!important;border-bottom:1px solid rgba(37,72,47,.065)!important;background:#fff!important;
}
.ww663-ac-row:hover{background:#fbfcfa!important}
.ww663-ac-icon{width:32px!important;height:32px!important;border-radius:10px!important;background:#edf3ec!important;color:#3a6648!important}
.ww663-ac-copy strong{font-size:10.3px!important;letter-spacing:-.01em!important;color:#1f3929!important}
.ww663-ac-copy small{font-size:7.6px!important;color:#838c85!important}
.ww663-ac-tag{padding:4px 6px!important;border-radius:7px!important;background:#eef3ed!important;color:#496351!important;font-size:6.4px!important;letter-spacing:.045em!important}
.ww663-ac-go{color:#9ba29d!important}.ww663-ac-more{padding:8px 12px!important;background:#f6f8f4!important;font-size:7.5px!important}

/* DAILY OPERATIONS — compact executive strip. */
.ww693-ops-brief{
  margin:0 0 16px!important;border:1px solid rgba(39,75,49,.11)!important;border-radius:20px!important;
  background:linear-gradient(145deg,#f7faf6,#eef5ec)!important;
  box-shadow:0 10px 25px rgba(33,61,40,.055)!important;overflow:hidden!important;
}
.ww693-ops-main{
  min-height:58px!important;grid-template-columns:36px minmax(0,1fr) auto 12px!important;gap:10px!important;
  padding:10px 13px!important;color:#173625!important;
}
.ww693-ops-mark{
  width:36px!important;height:36px!important;border-radius:12px!important;
  background:linear-gradient(145deg,#e3efe1,#d9e9d8)!important;color:#2e6841!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7)!important;
}
.ww693-ops-mark svg{width:15px!important;height:15px!important}
.ww693-ops-copy small{font-size:6.6px!important;letter-spacing:.16em!important;color:#838d85!important}
.ww693-ops-copy strong{font-size:12.5px!important;letter-spacing:-.02em!important;color:#1a3a28!important}
.ww693-ops-copy em{font-size:7.3px!important;color:#79857c!important}
.ww693-ops-status{min-width:38px!important;padding:4px 5px!important;border-radius:10px!important;background:rgba(255,255,255,.68)!important}
.ww693-ops-status b{font-size:12px!important;color:#315b3e!important}.ww693-ops-status em{font-size:5.9px!important;letter-spacing:.05em!important;text-transform:uppercase!important}
.ww693-ops-status.attention{background:#fff3ee!important}.ww693-ops-status.attention b{color:#9f4c3e!important}
.ww693-closeout{
  height:34px!important;padding:0 13px!important;border-top:1px solid rgba(38,74,48,.08)!important;
  background:rgba(255,255,255,.82)!important;color:#315c40!important;font-size:7.5px!important;letter-spacing:.015em!important;
}

/* The operational shortcuts read as elegant rows rather than additional cards. */
.hm-admin-shortcuts{gap:9px!important;margin:0 0 17px!important}
.hm-admin-shortcuts .hm-avail{
  min-height:54px!important;border:1px solid rgba(38,74,48,.10)!important;border-radius:17px!important;
  background:#fffdf9!important;box-shadow:0 7px 20px rgba(30,57,37,.045)!important;
}

/* Roster section heading gets a little breathing room after the dashboard deck. */
.hm > .hm-sec-head{margin-top:4px!important;margin-bottom:9px!important}
.hm > .hm-sec-head h2{font-size:15px!important;letter-spacing:-.025em!important;color:#183625!important}
.hm > .hm-sec-head .hm-pill{background:#eef3ed!important;color:#4e6657!important;border-radius:999px!important}

@media(max-width:430px){
  .hm-hero.admin{padding:15px 14px 13px!important;border-radius:22px!important}
  .hm-hero.admin .hm-hero-copy h1{font-size:23px!important}
  .hm-hero.admin .hm-hero-add{min-height:38px!important;padding:0 13px!important;font-size:10.5px!important}
  .hm-hero.admin .hm-hs{min-height:50px!important}.hm-hero.admin .hm-hs strong{font-size:17px!important}.hm-hero.admin .hm-hs em{font-size:6px!important}
  .ww693-review-bar{grid-template-columns:38px minmax(0,1fr) auto!important;padding:12px 12px 9px!important;gap:9px!important}
  .ww693-review-mark{width:38px!important;height:38px!important}
  .ww693-review-title strong{font-size:13px!important}.ww693-review-title em{display:none!important}
  .ww693-review-total{grid-column:2!important;grid-row:2!important;justify-self:start!important;margin-top:-2px!important}
  .ww693-review-toggle{grid-column:3!important;grid-row:1 / span 2!important}
  .ww693-review-counts{margin:0 12px 12px!important}.ww693-review-counts b{font-size:11px!important}.ww693-review-counts em{font-size:6px!important}
  .ww663-ac-head{padding:11px 12px 6px!important}.ww663-ac-summary{padding:0 12px 8px!important}.ww663-ac-list{margin:0 9px 9px!important}
  .ww663-ac-row{grid-template-columns:30px minmax(0,1fr) auto 11px!important;padding:7px 8px!important}.ww663-ac-icon{width:30px!important;height:30px!important}
  .ww693-ops-main{grid-template-columns:34px minmax(0,1fr) auto 11px!important;padding:9px 11px!important}.ww693-ops-mark{width:34px!important;height:34px!important}
}

/* ========================================================================== */
/* EarthRoster v705 — Admin Home simplification                              */
/* Scope: admin Home presentation only. All v698/v703 security and workflows */
/* remain intact. Prioritise Today's roster above secondary admin tooling.    */
/* ========================================================================== */

/* Compact Today: date, shift/staff summary and Add shift only. */
.hm-hero.admin{
  padding:13px 14px!important;
  border-radius:20px!important;
  margin-bottom:10px!important;
  box-shadow:0 12px 28px rgba(18,51,31,.16),0 1px 2px rgba(18,51,31,.08)!important;
}
.hm-hero.admin .hm-hero-row{gap:12px!important;min-height:52px!important}
.hm-hero.admin .hm-eyebrow{font-size:6.8px!important;letter-spacing:.16em!important}
.hm-hero.admin .hm-hero-copy h1{margin:3px 0 3px!important;font-size:22px!important}
.hm-hero.admin .hm-hero-copy p{font-size:9px!important;color:rgba(255,255,255,.68)!important}
.hm-hero.admin .hm-hero-add{
  min-height:36px!important;padding:0 12px!important;border-radius:12px!important;
  font-size:9.8px!important;box-shadow:0 6px 14px rgba(4,20,11,.17)!important;
}
.hm-hero.admin .hm-hero-add svg{width:15px!important;height:15px!important}
.hm-hero.admin .hm-hero-stats{display:none!important}

/* Daily Review becomes a single compact control until deliberately opened. */
.ww693-review{
  margin:0 0 11px!important;border-radius:17px!important;
  box-shadow:0 7px 18px rgba(26,58,36,.055),0 1px 2px rgba(26,58,36,.04)!important;
}
.ww693-review-bar{
  min-height:54px!important;
  grid-template-columns:32px minmax(0,1fr) auto auto!important;
  gap:8px!important;padding:8px 10px!important;
}
.ww693-review-mark{width:32px!important;height:32px!important;border-radius:10px!important}
.ww693-review-mark svg{width:14px!important;height:14px!important}
.ww693-review-title small{font-size:5.8px!important;letter-spacing:.15em!important}
.ww693-review-title strong{margin-top:2px!important;font-size:11.6px!important;line-height:1.1!important}
.ww693-review-title em{
  margin-top:2px!important;font-size:6.4px!important;line-height:1.1!important;
  color:#899089!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
.ww693-review-total{
  min-width:24px!important;height:24px!important;padding:0 7px!important;
  font-size:6.8px!important;border-radius:8px!important;
}
.ww693-review-toggle{
  height:30px!important;padding:0 8px!important;border-radius:10px!important;font-size:7px!important;
}
.ww693-review-toggle b svg{width:11px!important;height:11px!important}
.ww693-review-counts{display:none!important}
.ww693-review-body{padding:8px 10px 10px!important;gap:10px!important}
.ww693-queue-section+.ww693-queue-section{padding-top:9px!important}
.ww693-queue-head{height:26px!important;margin-bottom:2px!important}
.ww693-queue-head strong{font-size:9.8px!important}.ww693-queue-head em{font-size:6.3px!important}
.ww693-queue-more{height:27px!important;margin-top:4px!important;font-size:6.7px!important}

/* Today's roster is the main Home content and should appear immediately. */
.hm-roster-head{margin:2px 2px 7px!important}
.hm-roster-head h2{font-size:15px!important}
.hm-roster-head .hm-pill{font-size:6.7px!important;padding:4px 8px!important}
.home-roster-list{margin-bottom:11px!important}

/* Secondary admin alerts: show only when real action exists, and keep it slim. */
.ww700-action-strip{
  margin:11px 0 8px!important;border-radius:16px!important;
  box-shadow:0 6px 16px rgba(39,48,31,.045)!important;
}
.ww700-action-strip::before{height:2px!important}
.ww700-action-strip .ww663-ac-head{padding:8px 10px 4px!important}
.ww700-action-strip .ww663-ac-head span{font-size:5.8px!important;letter-spacing:.14em!important}
.ww700-action-strip .ww663-ac-head h2{margin-top:2px!important;font-size:10.8px!important}
.ww700-action-strip .ww663-ac-count{padding:3px 6px!important}
.ww700-action-strip .ww663-ac-count strong{font-size:9px!important}.ww700-action-strip .ww663-ac-count small{font-size:5px!important}
.ww700-action-strip .ww663-ac-summary{display:none!important}
.ww700-action-strip .ww663-ac-list{margin:0 7px 7px!important;border-radius:10px!important}
.ww700-action-strip .ww663-ac-row{min-height:42px!important;grid-template-columns:28px minmax(0,1fr) auto 10px!important;padding:6px 7px!important}
.ww700-action-strip .ww663-ac-icon{width:28px!important;height:28px!important;border-radius:8px!important}
.ww700-action-strip .ww663-ac-copy strong{font-size:9px!important}.ww700-action-strip .ww663-ac-copy small{font-size:6.5px!important}
.ww700-action-strip .ww663-ac-tag{font-size:5.6px!important;padding:3px 5px!important}
.ww700-action-strip .ww663-ac-more{padding:6px 9px!important;font-size:6.4px!important}

/* Daily Operations becomes one quiet secondary row; Closeout remains inside it. */
.ww700-ops-strip{
  margin:0 0 8px!important;border-radius:15px!important;box-shadow:0 5px 14px rgba(33,61,40,.04)!important;
}
.ww700-ops-strip .ww693-ops-main{
  min-height:47px!important;grid-template-columns:29px minmax(0,1fr) auto 10px!important;
  gap:8px!important;padding:7px 9px!important;
}
.ww700-ops-strip .ww693-ops-mark{width:29px!important;height:29px!important;border-radius:9px!important}
.ww700-ops-strip .ww693-ops-mark svg{width:13px!important;height:13px!important}
.ww700-ops-strip .ww693-ops-copy small{font-size:5.5px!important;letter-spacing:.13em!important}
.ww700-ops-strip .ww693-ops-copy strong{font-size:9.8px!important}.ww700-ops-strip .ww693-ops-copy em{font-size:6.2px!important}
.ww700-ops-strip .ww693-ops-status{min-width:31px!important;padding:3px 4px!important;border-radius:8px!important}
.ww700-ops-strip .ww693-ops-status b{font-size:9px!important}.ww700-ops-strip .ww693-ops-status em{font-size:4.9px!important}
.ww700-ops-strip .ww693-closeout{display:none!important}

/* Low-priority shortcuts stay accessible but do not dominate Home. */
.hm-admin-shortcuts{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:7px!important;margin:0 0 12px!important;
}
.hm-admin-shortcuts .hm-avail{
  min-height:44px!important;padding:7px 8px!important;border-radius:14px!important;gap:7px!important;
  box-shadow:0 4px 12px rgba(30,57,37,.035)!important;
}
.hm-admin-shortcuts .hm-avail-ic{width:28px!important;height:28px!important;border-radius:9px!important}
.hm-admin-shortcuts .hm-avail-ic svg{width:13px!important;height:13px!important}
.hm-admin-shortcuts .hm-avail-txt strong{font-size:8.3px!important}.hm-admin-shortcuts .hm-avail-txt span{font-size:5.8px!important}
.hm-admin-shortcuts .hm-live-pill{font-size:5px!important;padding:3px 5px!important}
.hm-admin-shortcuts .hm-avail-go{display:none!important}

@media(max-width:430px){
  .hm-hero.admin{padding:11px 12px!important;border-radius:18px!important}
  .hm-hero.admin .hm-hero-copy h1{font-size:20px!important}
  .hm-hero.admin .hm-hero-copy p{font-size:8.3px!important}
  .hm-hero.admin .hm-hero-add{min-height:34px!important;padding:0 10px!important;font-size:9px!important}
  .ww693-review-bar{grid-template-columns:30px minmax(0,1fr) auto auto!important;padding:7px 9px!important;gap:7px!important}
  .ww693-review-mark{width:30px!important;height:30px!important}
  .ww693-review-title strong{font-size:10.8px!important}
  .ww693-review-title em{display:block!important;font-size:5.9px!important;max-width:205px!important}
  .ww693-review-total{grid-column:auto!important;grid-row:auto!important;margin:0!important}
  .ww693-review-toggle{grid-column:auto!important;grid-row:auto!important}
  .hm-admin-shortcuts .hm-avail-txt span{display:none!important}
}

@media(max-width:370px){
  .ww693-review-title em{display:none!important}
  .ww693-review-total{display:none!important}
  .hm-admin-shortcuts{grid-template-columns:1fr 1fr!important}
}


/* ========================================================================== */
/* EarthRoster v705 — requested Home detail polish only                       */
/* Scope lock: separate Live locations/Availability rows, lower roster section */
/* slightly, and refine the Daily Review count/open control.                  */
/* ========================================================================== */

/* Replace the separate count chip + plain Open button with one refined action. */
.ww693-review-bar{
  grid-template-columns:32px minmax(0,1fr) auto!important;
}
.ww693-review-total{display:none!important}
.ww701-review-toggle{
  min-width:118px!important;height:40px!important;padding:4px 7px 4px 5px!important;
  display:grid!important;grid-template-columns:auto auto 14px!important;align-items:center!important;gap:7px!important;
  border:1px solid rgba(52,91,61,.14)!important;border-radius:14px!important;
  background:linear-gradient(180deg,#f8fbf6 0%,#eef5eb 100%)!important;color:#234f33!important;
  box-shadow:0 4px 12px rgba(28,62,38,.06),inset 0 1px 0 rgba(255,255,255,.8)!important;
}
.ww701-review-toggle:hover{background:linear-gradient(180deg,#fbfdf9 0%,#edf5ea 100%)!important}
.ww701-review-count{
  min-width:47px!important;height:30px!important;padding:0 8px!important;border-radius:10px!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:0!important;
  background:#fff6df!important;color:#765718!important;box-shadow:inset 0 0 0 1px rgba(183,140,54,.10)!important;
}
.ww701-review-toggle.is-clear .ww701-review-count{background:#edf5eb!important;color:#2f6842!important}
.ww701-review-count strong{font-size:10px!important;line-height:1!important;font-weight:900!important;letter-spacing:-.02em!important}
.ww701-review-count small{margin-top:2px!important;font-size:4.8px!important;line-height:1!important;letter-spacing:.055em!important;text-transform:uppercase!important;font-weight:800!important;opacity:.78!important}
.ww701-review-action{font-size:7.4px!important;font-weight:850!important;letter-spacing:.01em!important;white-space:nowrap!important}
.ww701-review-toggle b{display:grid!important;place-items:center!important;transform:rotate(-90deg)!important;transition:transform .18s ease!important}
.ww693-review.is-open .ww701-review-toggle b{transform:rotate(90deg)!important}
.ww701-review-toggle b svg{width:11px!important;height:11px!important;stroke-width:2!important}

/* Give the roster section a deliberate visual pause below Daily Review. */
.hm-roster-head{margin:15px 2px 8px!important}

/* Live locations and Availability each get their own full-width line. */
.hm-admin-shortcuts{
  grid-template-columns:1fr!important;
  gap:7px!important;
}
.hm-admin-shortcuts .hm-avail{width:100%!important}

@media(max-width:430px){
  .ww693-review-bar{grid-template-columns:30px minmax(0,1fr) auto!important}
  .ww701-review-toggle{min-width:108px!important;height:38px!important;padding:4px 6px 4px 5px!important;gap:6px!important}
  .ww701-review-count{min-width:43px!important;height:28px!important;padding:0 7px!important}
  .ww701-review-count strong{font-size:9.4px!important}
  .ww701-review-action{font-size:6.9px!important}
  .hm-roster-head{margin-top:14px!important}
}
@media(max-width:370px){
  .ww701-review-toggle{min-width:91px!important;grid-template-columns:auto 12px!important}
  .ww701-review-action{display:none!important}
  .ww701-review-count{min-width:58px!important;flex-direction:row!important;gap:4px!important}
  .ww701-review-count small{margin-top:0!important;font-size:4.5px!important}
  .hm-admin-shortcuts{grid-template-columns:1fr!important}
}

/* ========================================================================== */
/* EarthRoster v705 — requested Home correction only                         */
/* Scope: professional Daily Review action + roster below Availability.       */
/* Live locations / Availability remain separate. Everything else untouched. */
/* ========================================================================== */

/* Professional inbox-style review action: one clean line, one compact count. */
.ww693-review-bar{
  grid-template-columns:32px minmax(0,1fr) auto!important;
}
.ww702-review-toggle{
  min-width:126px!important;
  height:36px!important;
  padding:0 9px 0 12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  border:1px solid rgba(45,83,55,.14)!important;
  border-radius:12px!important;
  background:#f7faf5!important;
  color:#214c31!important;
  box-shadow:0 2px 8px rgba(25,61,36,.045),inset 0 1px 0 rgba(255,255,255,.92)!important;
}
.ww702-review-toggle:hover{background:#f3f8f1!important}
.ww702-review-action{
  font-size:7.5px!important;
  line-height:1!important;
  font-weight:850!important;
  letter-spacing:.005em!important;
  white-space:nowrap!important;
}
.ww702-review-count{
  min-width:25px!important;
  height:22px!important;
  padding:0 6px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:7px!important;
  background:#e7b85f!important;
  color:#3f3216!important;
  font-size:7.2px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:-.01em!important;
  box-shadow:inset 0 0 0 1px rgba(120,86,24,.08)!important;
}
.ww702-review-toggle.is-clear .ww702-review-count{
  background:#dcebdd!important;
  color:#245a35!important;
}
.ww702-review-toggle b{
  width:12px!important;
  height:12px!important;
  display:grid!important;
  place-items:center!important;
  transform:rotate(-90deg)!important;
  transition:transform .18s ease!important;
}
.ww693-review.is-open .ww702-review-toggle b{transform:rotate(90deg)!important}
.ww702-review-toggle b svg{width:10px!important;height:10px!important;stroke-width:2!important}

/* Roster now deliberately lives after the two admin shortcut rows. */
.hm-admin-shortcuts{margin-bottom:0!important}
.hm-roster-head{margin:17px 2px 8px!important}

@media(max-width:430px){
  .ww693-review-bar{grid-template-columns:30px minmax(0,1fr) auto!important}
  .ww702-review-toggle{min-width:116px!important;height:34px!important;padding:0 8px 0 10px!important;gap:7px!important}
  .ww702-review-action{font-size:7px!important}
  .ww702-review-count{min-width:23px!important;height:21px!important;font-size:6.9px!important}
}
@media(max-width:370px){
  .ww702-review-toggle{min-width:82px!important;padding:0 7px!important;gap:6px!important}
  .ww702-review-action{font-size:6.6px!important}
  .ww702-review-count{min-width:22px!important;height:20px!important;font-size:6.5px!important}
}

/* v703 focused admin Profile: legacy update banner is never a current UI. */
#ww675UpdateBanner,.ww675-update-banner,[data-legacy-update-banner]{display:none!important;visibility:hidden!important;pointer-events:none!important}

/* Keep the practical Business controls compact on phones instead of giant cards. */
@media (max-width: 760px){
  .pf2 .ww669-account-grid{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  .pf2 .ww669-account-grid>button{min-height:72px!important;height:auto!important;padding:12px 14px!important;border-radius:18px!important;display:grid!important;grid-template-columns:48px 1fr!important;grid-template-rows:auto auto!important;column-gap:12px!important;align-items:center!important;text-align:left!important}
  .pf2 .ww669-account-grid>button>span{grid-row:1/3!important;width:48px!important;height:48px!important;display:grid!important;place-items:center!important;margin:0!important}
  .pf2 .ww669-account-grid>button>strong{grid-column:2!important;font-size:16px!important;line-height:1.15!important;margin:0!important}
  .pf2 .ww669-account-grid>button>small{grid-column:2!important;font-size:12px!important;line-height:1.25!important;margin:2px 0 0!important}
}

/* ===== v705 focused Profile simplification ===== */
.v705-payroll-tools{padding:14px 15px;margin-top:14px;display:flex;align-items:center;gap:12px;justify-content:space-between}
.v705-payroll-tools-head{display:flex;align-items:center;gap:10px;min-width:0}
.v705-payroll-tools-ic{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--forest-100,#e7efe5);color:var(--forest-700,#244b31);flex:none}
.v705-payroll-tools-ic svg{width:18px;height:18px}
.v705-payroll-tools-head>span:last-child{min-width:0}
.v705-payroll-tools-head strong,.v705-payroll-tools-head small{display:block}
.v705-payroll-tools-head strong{font-size:13px;color:var(--forest-800,#1c3d28)}
.v705-payroll-tools-head small{font-size:10.5px;color:#758078;margin-top:2px}
.v705-payroll-tools-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:640px){.v705-payroll-tools{align-items:stretch;flex-direction:column}.v705-payroll-tools-actions{display:grid;grid-template-columns:1fr 1fr}.v705-payroll-tools-actions .btn{justify-content:center;white-space:normal;min-height:42px}}
@media(min-width:641px){.pf2 .ww669-account-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* EarthRoster v706 — Service Notes */
.ww706-service-notes .ww666-panel-title>b{font-size:8px;letter-spacing:.08em;color:#355b40;background:#e8f2e7;border:1px solid #d4e3d2;border-radius:999px;padding:5px 7px}.ww706-service-notes{display:grid;gap:12px}.ww706-service-notes>.ww666-panel-title{margin-bottom:0}.ww706-service-notes>label{display:grid;gap:6px}.ww706-service-notes>label>span{font-size:10px;font-weight:850;color:#415749}.ww706-service-notes>label>span em{font-style:normal;color:#a14c35}.ww706-service-notes>label>span small{font-weight:600;color:#8a938c}.ww706-service-notes textarea{width:100%;min-height:76px;border:1px solid #dce4dc;border-radius:12px;background:#fbfcf9;padding:11px;font:12px/1.45 inherit;color:#2b4032;resize:vertical;box-sizing:border-box}.ww706-service-notes #ww706_work_completed{min-height:94px;border-color:#c9d9ca;background:#fcfdf9}.ww706-service-notes label>button{justify-self:start;border:1px solid #d4e1d4;background:#f2f7f0;color:#31553a;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:800}.ww706-service-meta{display:flex;gap:7px;align-items:center;border-top:1px solid #e4e9e2;padding-top:10px;font-size:9px;color:#7a857d}.ww706-service-meta svg{width:14px;height:14px;color:#43684c}.ww706-handover-card{display:grid;grid-template-columns:34px 1fr;gap:10px;background:#fff9ed;border:1px solid #eadbb6;border-radius:16px;padding:12px}.ww706-handover-card>span{width:34px;height:34px;border-radius:10px;background:#f5e9c9;color:#765e2f;display:grid;place-items:center}.ww706-handover-card>div{min-width:0}.ww706-handover-card strong,.ww706-handover-card small{display:block}.ww706-handover-card strong{font-size:11px;color:#57472e}.ww706-handover-card small{font-size:8.5px;color:#8c7e61;margin:1px 0 6px}.ww706-handover-card p{margin:0;font-size:10px;line-height:1.45;color:#695a3f;white-space:pre-wrap}.ww706-admin-service>div{padding:9px 0;border-top:1px solid #edf0eb}.ww706-admin-service>div:first-of-type{border-top:0;padding-top:0}.ww706-admin-service>div strong{display:block;font-size:9px;color:#42564a;margin-bottom:4px}.ww706-admin-service>small{display:block;border-top:1px solid #edf0eb;padding-top:8px;margin-top:4px;font-size:8.5px;color:#879087}.ww706-clockout-note{display:flex;gap:9px;align-items:flex-start;border:1px solid #dbe5da;background:#f6f9f4;border-radius:13px;padding:11px}.ww706-clockout-note svg{width:16px;height:16px;flex:0 0 auto;color:#41614a;margin-top:1px}.ww706-clockout-note p{margin:0;font-size:11px;line-height:1.45;color:#4c5f51;white-space:pre-wrap}.ww706-clockout-service>span{display:block;margin-bottom:7px}

/* ==========================================================
   EarthRoster v707 — Active Shift Card polish only
   Fixes timer/progress overlap and strengthens the live Clock page
   hierarchy without changing workflow or unrelated screens.
   ========================================================== */
.v499-active-card{
  isolation:isolate!important;overflow:hidden!important;
  border:1px solid rgba(226,196,118,.24)!important;
  background:radial-gradient(circle at 50% 21%,rgba(111,222,142,.18),transparent 28%),radial-gradient(circle at 108% 92%,rgba(228,190,95,.16),transparent 34%),linear-gradient(155deg,#0b2b1a 0%,#15502e 54%,#0d3520 100%)!important;
  box-shadow:0 24px 54px rgba(8,37,20,.34),inset 0 1px 0 rgba(255,255,255,.10)!important;
}
.v499-active-glow{opacity:.9!important;background:radial-gradient(circle at 50% 14%,rgba(121,221,147,.19),transparent 34%),linear-gradient(115deg,transparent 28%,rgba(255,255,255,.025) 50%,transparent 72%)!important;}
.v499-active-top{min-height:40px!important;margin-bottom:22px!important;}
.v499-live-pill{padding:8px 12px!important;border:1px solid rgba(144,225,161,.18)!important;background:rgba(255,255,255,.085)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important;}
.v499-live-pill i{background:#70df87!important;box-shadow:0 0 0 5px rgba(112,223,135,.13),0 0 16px rgba(112,223,135,.34)!important;}
.v499-active-date{color:rgba(255,255,255,.72)!important;font-weight:800!important;}
.v499-timer-orbit{width:184px!important;height:184px!important;margin:2px auto 0!important;padding:8px!important;background:conic-gradient(from 16deg,#e7c46c 0deg,#d7b45c 68deg,#78d18d 171deg,#64b97b 238deg,rgba(255,255,255,.18) 303deg,#e7c46c 360deg)!important;box-shadow:0 20px 42px rgba(0,0,0,.30),0 0 0 1px rgba(231,196,108,.10)!important;}
.v499-timer-orbit::before{inset:-9px!important;border-color:rgba(133,219,151,.16)!important;}
.v499-timer-orbit::after{inset:-17px!important;border-color:rgba(231,196,108,.15)!important;}
.v499-timer-ring{background:radial-gradient(circle at 46% 33%,#22583a 0%,#103622 56%,#092719 100%)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.10),inset 0 0 34px rgba(0,0,0,.20)!important;gap:11px!important;}
.v499-timer-ring span{font-size:34px!important;letter-spacing:-.045em!important;text-shadow:0 2px 12px rgba(0,0,0,.28)!important;}
.v499-timer-ring em{font-size:8.5px!important;letter-spacing:.18em!important;color:rgba(239,247,235,.57)!important;}
.v502-progress-block{position:relative!important;z-index:3!important;margin-top:34px!important;padding:13px 14px 12px!important;border-radius:17px!important;border:1px solid rgba(255,255,255,.10)!important;background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.045))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 10px 26px rgba(0,0,0,.10)!important;}
.v502-progress-block .v499-progress{height:8px!important;background:rgba(222,239,224,.16)!important;box-shadow:inset 0 1px 2px rgba(0,0,0,.14)!important;}
.v502-progress-block .v499-progress i{background:linear-gradient(90deg,#e8c56d 0%,#b8d77d 48%,#77d28d 100%)!important;box-shadow:0 0 12px rgba(119,210,141,.20)!important;}
.v502-progress-block .v499-progress-labels{display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;align-items:center!important;gap:10px!important;margin-top:10px!important;min-height:24px!important;font-size:10px!important;color:rgba(255,255,255,.66)!important;}
.v502-progress-block .v499-progress-labels span:first-child{text-align:left!important;}.v502-progress-block .v499-progress-labels span:last-child{text-align:right!important;}
.v502-progress-block .v499-progress-labels span:nth-child(2){position:static!important;transform:none!important;margin:0!important;padding:5px 10px!important;border:1px solid rgba(232,197,109,.22)!important;border-radius:999px!important;background:linear-gradient(135deg,rgba(232,197,109,.17),rgba(255,255,255,.08))!important;color:#f4e3b1!important;font-weight:900!important;letter-spacing:.01em!important;white-space:nowrap!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important;}
.v499-active-job{margin-top:14px!important;padding:14px!important;border-radius:18px!important;border:1px solid rgba(255,255,255,.11)!important;background:linear-gradient(145deg,rgba(255,255,255,.095),rgba(255,255,255,.055))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.045)!important;}
.v499-active-job-icon{width:46px!important;height:46px!important;min-width:46px!important;border-radius:14px!important;background:linear-gradient(145deg,rgba(226,192,105,.25),rgba(226,192,105,.12))!important;color:#f0cb70!important;border:1px solid rgba(226,192,105,.14)!important;}
.v499-active-job>div:last-child>span{color:rgba(255,255,255,.55)!important;letter-spacing:.14em!important;}.v499-active-job h2{font-size:21px!important;line-height:1.08!important;margin:3px 0 6px!important;}.v499-active-job button{color:rgba(244,249,241,.72)!important;}
.v566-onsite-clock-note{margin-top:10px!important;padding:10px 12px!important;border-radius:14px!important;background:rgba(130,210,145,.085)!important;border:1px solid rgba(137,218,153,.12)!important;}.v566-onsite-clock-note>svg{color:#a9e4b3!important;}
.v499-active-card .ww666-open-job{min-height:70px!important;margin:12px 0 10px!important;padding:12px 14px!important;border-radius:18px!important;border:1px solid rgba(225,195,116,.34)!important;background:linear-gradient(135deg,#fffdf6 0%,#eef4e8 100%)!important;box-shadow:0 13px 28px rgba(0,0,0,.23),inset 0 1px 0 rgba(255,255,255,.95)!important;}
.v499-active-card .ww666-open-job .ww666-job-btn-icon{width:46px!important;height:46px!important;border-radius:14px!important;background:linear-gradient(145deg,#295f3d,#17492c)!important;box-shadow:0 7px 15px rgba(25,74,43,.20)!important;}.v499-active-card .ww666-open-job strong{font-size:15.5px!important;line-height:1.1!important;}.v499-active-card .ww666-open-job em{font-size:10.5px!important;margin-top:2px!important;}.v499-active-card .ww666-open-job>b{color:#526d59!important;}
.v499-clockout.v566-clockout{min-height:66px!important;border-radius:18px!important;border:1px solid rgba(255,255,255,.45)!important;background:linear-gradient(135deg,#ffffff 0%,#f3f5ec 100%)!important;box-shadow:0 14px 30px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.96)!important;}.v499-clockout.v566-clockout>svg{width:23px!important;height:23px!important;}.v499-clockout.v566-clockout strong{font-size:15.5px!important;}.v499-clockout.v566-clockout em{font-size:10px!important;color:#6d786e!important;}
.v499-active-stats>div{border:1px solid rgba(255,255,255,.055)!important;background:rgba(255,255,255,.06)!important;}
@media(max-width:430px){
  .v499-active-card{padding:16px!important;border-radius:24px!important;overflow:hidden!important;}
  .v499-active-top{margin-bottom:20px!important;}
  .v499-timer-orbit{width:166px!important;height:166px!important;margin:4px auto 0!important;padding:7px!important;}
  .v499-timer-ring span{font-size:30px!important;}.v499-timer-ring em{font-size:8px!important;}
  .v502-progress-block{margin-top:32px!important;padding:11px 11px 10px!important;border-radius:15px!important;}
  .v502-progress-block .v499-progress-labels{font-size:9.5px!important;gap:7px!important;margin-top:9px!important;}.v502-progress-block .v499-progress-labels span:nth-child(2){padding:5px 8px!important;}
  .v499-active-job{margin-top:12px!important;padding:12px!important;border-radius:17px!important;}.v499-active-job-icon{width:44px!important;height:44px!important;min-width:44px!important;}.v499-active-job h2{font-size:20px!important;}
  .v566-onsite-clock-note{margin-top:9px!important;padding:9px 11px!important;}
  .v499-active-card .ww666-open-job{min-height:68px!important;margin:11px 0 9px!important;padding:11px 13px!important;border-radius:17px!important;}
  .v499-clockout.v566-clockout{min-height:64px!important;margin:9px 0 9px!important;padding:10px 14px!important;border-radius:17px!important;}
  .v499-active-stats{gap:7px!important;margin-top:1px!important;}.v499-active-stats>div{padding:9px 6px!important;border-radius:12px!important;}.v499-active-stats strong{font-size:14px!important;}
}
@media(max-width:380px){.v499-timer-orbit{width:154px!important;height:154px!important;}.v499-timer-ring span{font-size:28px!important;}.v502-progress-block{margin-top:29px!important;}.v502-progress-block .v499-progress-labels{font-size:8.8px!important;gap:5px!important;}.v502-progress-block .v499-progress-labels span:nth-child(2){padding:4px 7px!important;}}

/* ==========================================================
   EarthRoster v709 — Compact one-screen active Time Clock
   Keeps the v707 premium treatment but reduces vertical scale so the
   live shift card, stats and mobile dock fit together on one phone view.
   ========================================================== */
@media(max-width:430px){
  .v499-clock-tabs{
    margin-bottom:6px!important;
    padding:4px!important;
    border-radius:18px!important;
  }
  .v499-clock-tabs button{
    height:36px!important;
    border-radius:13px!important;
    font-size:11px!important;
    gap:6px!important;
  }
  .v499-clock-tabs button svg{width:15px!important;height:15px!important;}
  .v499-clock-page{gap:7px!important;padding-bottom:8px!important;}

  .v499-active-card{
    padding:11px 12px 10px!important;
    border-radius:20px!important;
    box-shadow:0 14px 32px rgba(8,37,20,.27),inset 0 1px 0 rgba(255,255,255,.08)!important;
  }
  .v499-active-top{
    min-height:28px!important;
    margin-bottom:7px!important;
    gap:8px!important;
  }
  .v499-live-pill{
    padding:5px 8px!important;
    gap:6px!important;
    font-size:8.5px!important;
    letter-spacing:.075em!important;
  }
  .v499-live-pill i{
    width:6px!important;height:6px!important;
    box-shadow:0 0 0 3px rgba(112,223,135,.12),0 0 10px rgba(112,223,135,.28)!important;
  }
  .v499-active-date{font-size:9.5px!important;}

  .v499-timer-orbit{
    width:118px!important;
    height:118px!important;
    margin:0 auto!important;
    padding:5px!important;
    box-shadow:0 10px 24px rgba(0,0,0,.25),0 0 0 1px rgba(231,196,108,.08)!important;
  }
  .v499-timer-orbit::before{inset:-5px!important;}
  .v499-timer-orbit::after{inset:-10px!important;}
  .v499-timer-ring{gap:4px!important;}
  .v499-timer-ring span{font-size:23px!important;letter-spacing:-.035em!important;}
  .v499-timer-ring em{
    margin-top:34px!important;
    font-size:6.8px!important;
    letter-spacing:.15em!important;
  }

  .v502-progress-block{
    margin-top:16px!important;
    padding:7px 9px 6px!important;
    border-radius:12px!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.04)!important;
  }
  .v502-progress-block .v499-progress{height:5px!important;}
  .v502-progress-block .v499-progress-labels{
    min-height:17px!important;
    margin-top:5px!important;
    gap:5px!important;
    font-size:8px!important;
  }
  .v502-progress-block .v499-progress-labels span:nth-child(2){
    padding:3px 6px!important;
    font-size:8px!important;
  }

  .v499-active-job{
    grid-template-columns:34px minmax(0,1fr)!important;
    gap:8px!important;
    margin-top:7px!important;
    padding:8px 9px!important;
    border-radius:13px!important;
  }
  .v499-active-job-icon{
    width:34px!important;height:34px!important;min-width:34px!important;
    border-radius:10px!important;
  }
  .v499-active-job-icon svg{width:17px!important;height:17px!important;}
  .v499-active-job>div:last-child>span{font-size:7px!important;letter-spacing:.11em!important;}
  .v499-active-job h2{
    font-size:16px!important;
    line-height:1!important;
    margin:2px 0 3px!important;
  }
  .v499-active-job button{
    font-size:8.6px!important;
    line-height:1.15!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    max-width:100%!important;
  }
  .v499-active-job button svg{width:10px!important;height:10px!important;flex-basis:10px!important;}

  .v566-onsite-clock-note{
    min-height:38px!important;
    margin-top:6px!important;
    padding:6px 8px!important;
    gap:7px!important;
    border-radius:11px!important;
  }
  .v566-onsite-clock-note>svg{width:14px!important;height:14px!important;flex-basis:14px!important;}
  .v566-onsite-clock-note span{gap:0!important;}
  .v566-onsite-clock-note strong{font-size:8.9px!important;line-height:1.1!important;}
  .v566-onsite-clock-note em{font-size:7.6px!important;line-height:1.15!important;}

  .v499-active-card .ww666-open-job{
    min-height:48px!important;
    margin:6px 0!important;
    padding:6px 9px!important;
    gap:8px!important;
    border-radius:13px!important;
    box-shadow:0 8px 18px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.92)!important;
  }
  .v499-active-card .ww666-open-job .ww666-job-btn-icon{
    width:34px!important;height:34px!important;
    border-radius:10px!important;
  }
  .v499-active-card .ww666-open-job .ww666-job-btn-icon svg{width:15px!important;height:15px!important;}
  .v499-active-card .ww666-open-job strong{font-size:12.5px!important;line-height:1.05!important;}
  .v499-active-card .ww666-open-job em{font-size:8.5px!important;margin-top:1px!important;}
  .v499-active-card .ww666-open-job>b svg{width:14px!important;height:14px!important;}

  .v499-clockout.v566-clockout{
    min-height:48px!important;
    margin:6px 0!important;
    padding:6px 10px!important;
    grid-template-columns:18px 1fr!important;
    gap:8px!important;
    border-radius:13px!important;
    box-shadow:0 8px 18px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.94)!important;
  }
  .v499-clockout.v566-clockout>svg{width:18px!important;height:18px!important;}
  .v499-clockout.v566-clockout strong{font-size:12.5px!important;line-height:1.05!important;}
  .v499-clockout.v566-clockout em{font-size:8.2px!important;line-height:1.1!important;margin-top:1px!important;}

  .v499-active-stats{
    gap:5px!important;
    margin-top:4px!important;
  }
  .v499-active-stats>div{
    min-height:38px!important;
    padding:5px 4px!important;
    border-radius:10px!important;
  }
  .v499-active-stats span{font-size:6.5px!important;letter-spacing:.055em!important;}
  .v499-active-stats strong{font-size:11.5px!important;margin-top:1px!important;line-height:1.05!important;}
}

@media(max-width:380px){
  .v499-timer-orbit{width:108px!important;height:108px!important;}
  .v499-timer-ring span{font-size:21px!important;}
  .v499-timer-ring em{margin-top:31px!important;font-size:6.3px!important;}
  .v502-progress-block{margin-top:14px!important;}
}


/* ==========================================================
   EarthRoster v709 — Professional active Time Clock refresh
   Actual app edit: readable timer, clean schedule strip, distinct
   Clock out CTA above Service Notes, one-screen mobile hierarchy.
   ========================================================== */
@media(max-width:430px){
  .v499-clock-page{gap:8px!important;padding-bottom:8px!important;}
  .v499-active-card{
    padding:12px!important;
    border-radius:21px!important;
    border:1px solid rgba(218,232,218,.12)!important;
    background:
      radial-gradient(circle at 50% 16%,rgba(105,213,134,.13),transparent 31%),
      linear-gradient(160deg,#0c321f 0%,#10462a 52%,#0b3520 100%)!important;
    box-shadow:0 16px 34px rgba(7,31,17,.28),inset 0 1px 0 rgba(255,255,255,.055)!important;
  }
  .v499-active-glow{opacity:.58!important;}
  .v499-active-top{min-height:27px!important;margin:0 0 9px!important;align-items:center!important;}
  .v499-live-pill{padding:5px 9px!important;font-size:8.6px!important;letter-spacing:.09em!important;background:rgba(255,255,255,.07)!important;}
  .v499-active-date{font-size:9.5px!important;font-weight:750!important;color:rgba(245,250,244,.66)!important;}

  /* Clean, legible timer. No absolute text inside the circle. */
  .v499-timer-orbit{
    width:132px!important;height:132px!important;
    margin:1px auto 0!important;padding:5px!important;
    background:conic-gradient(from -18deg,#9ae68d 0 42%,#72c985 42% 74%,rgba(205,232,207,.17) 74% 100%)!important;
    box-shadow:0 12px 25px rgba(0,0,0,.23),0 0 0 1px rgba(172,225,175,.08)!important;
  }
  .v499-timer-orbit::before{inset:-5px!important;border-color:rgba(151,222,160,.12)!important;}
  .v499-timer-orbit::after{display:none!important;}
  .v499-timer-ring{
    display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
    gap:6px!important;
    background:radial-gradient(circle at 45% 31%,#174e30 0%,#0c311e 67%,#082719 100%)!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.075),inset 0 0 24px rgba(0,0,0,.17)!important;
  }
  .v499-timer-ring span{
    position:static!important;margin:0!important;
    font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;
    font-size:25px!important;line-height:1!important;
    font-weight:800!important;letter-spacing:-.025em!important;
    font-variant-numeric:tabular-nums!important;
    color:#fff!important;text-shadow:0 2px 8px rgba(0,0,0,.22)!important;
  }
  .v499-timer-ring em{
    position:static!important;margin:0!important;
    font-size:7px!important;line-height:1!important;
    font-style:normal!important;font-weight:800!important;
    letter-spacing:.16em!important;text-transform:uppercase!important;
    color:rgba(233,242,232,.58)!important;
  }

  /* Schedule is a separate, calm strip below timer. */
  .v502-progress-block{
    margin-top:10px!important;padding:8px 10px 9px!important;
    border-radius:13px!important;
    border:1px solid rgba(255,255,255,.08)!important;
    background:rgba(255,255,255,.05)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important;
  }
  .v709-schedule-row{
    display:grid!important;grid-template-columns:1fr auto 1fr!important;align-items:center!important;
    gap:7px!important;margin:0 0 6px!important;
    color:rgba(244,249,242,.74)!important;font-size:8.8px!important;font-weight:750!important;
  }
  .v709-schedule-row>span:first-child{text-align:left!important;}
  .v709-schedule-row>span:last-child{text-align:right!important;}
  .v709-schedule-row strong{
    padding:3px 7px!important;border-radius:999px!important;
    border:1px solid rgba(167,220,171,.14)!important;
    background:rgba(157,214,163,.08)!important;
    color:#d7ead8!important;font-size:8px!important;font-weight:800!important;white-space:nowrap!important;
  }
  .v502-progress-block .v499-progress{height:5px!important;border-radius:999px!important;background:rgba(225,240,226,.13)!important;overflow:hidden!important;}
  .v502-progress-block .v499-progress i{background:linear-gradient(90deg,#82dc8d,#b5df88)!important;box-shadow:none!important;}
  .v502-progress-block .v499-progress-labels{display:none!important;}

  /* Compact work information, but never micro-sized. */
  .v499-active-job{
    grid-template-columns:36px minmax(0,1fr)!important;gap:9px!important;
    margin-top:8px!important;padding:8px 10px!important;border-radius:13px!important;
    background:rgba(255,255,255,.055)!important;border:1px solid rgba(255,255,255,.08)!important;
  }
  .v499-active-job-icon{width:36px!important;height:36px!important;min-width:36px!important;border-radius:10px!important;background:rgba(160,216,166,.10)!important;color:#a6e5a2!important;border-color:rgba(160,216,166,.12)!important;}
  .v499-active-job>div:last-child>span{font-size:7.4px!important;letter-spacing:.12em!important;color:rgba(232,243,230,.55)!important;}
  .v499-active-job h2{font-size:16px!important;line-height:1.05!important;margin:2px 0 3px!important;}
  .v499-active-job button{font-size:8.7px!important;line-height:1.15!important;color:rgba(239,247,238,.70)!important;}

  .v566-onsite-clock-note{
    min-height:38px!important;margin-top:7px!important;padding:7px 9px!important;gap:8px!important;border-radius:12px!important;
    background:rgba(122,198,137,.065)!important;border:1px solid rgba(143,214,155,.10)!important;
  }
  .v566-onsite-clock-note>svg{width:15px!important;height:15px!important;flex-basis:15px!important;color:#8fdb98!important;}
  .v566-onsite-clock-note strong{font-size:9.3px!important;line-height:1.1!important;}
  .v566-onsite-clock-note em{font-size:8px!important;line-height:1.22!important;color:rgba(239,246,237,.61)!important;}

  /* Clock out is the unmistakable primary end-of-shift action. */
  .v499-clockout.v566-clockout{
    order:0!important;
    min-height:54px!important;margin:8px 0 6px!important;padding:8px 11px!important;
    display:grid!important;grid-template-columns:34px minmax(0,1fr) 18px!important;align-items:center!important;gap:9px!important;
    border-radius:14px!important;
    border:1px solid rgba(255,174,144,.45)!important;
    background:linear-gradient(135deg,#bf3e27 0%,#df4c2d 56%,#c23f27 100%)!important;
    color:#fff!important;
    box-shadow:0 10px 22px rgba(102,26,14,.27),inset 0 1px 0 rgba(255,255,255,.20)!important;
    text-align:left!important;
  }
  .v499-clockout.v566-clockout>svg{
    width:34px!important;height:34px!important;padding:8px!important;box-sizing:border-box!important;
    border-radius:10px!important;background:rgba(90,18,10,.30)!important;color:#fff!important;
  }
  .v499-clockout.v566-clockout strong{display:block!important;font-size:13.5px!important;line-height:1.05!important;color:#fff!important;font-weight:900!important;}
  .v499-clockout.v566-clockout em{display:block!important;margin-top:2px!important;font-size:8.7px!important;line-height:1.15!important;color:rgba(255,255,255,.78)!important;font-style:normal!important;}
  .v709-clockout-arrow{display:block!important;font-style:normal!important;font-size:24px!important;line-height:1!important;color:#fff!important;text-align:right!important;font-weight:400!important;}

  /* Service Notes deliberately secondary and placed below Clock out. */
  .v499-active-card .ww666-open-job{
    order:1!important;
    min-height:48px!important;margin:0 0 6px!important;padding:6px 9px!important;gap:8px!important;
    border-radius:13px!important;border:1px solid rgba(225,231,219,.78)!important;
    background:linear-gradient(135deg,#fffef9 0%,#eff4ea 100%)!important;
    box-shadow:0 7px 15px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.94)!important;
  }
  .v499-active-card .ww666-open-job .ww666-job-btn-icon{width:34px!important;height:34px!important;border-radius:10px!important;background:#174a2c!important;}
  .v499-active-card .ww666-open-job strong{font-size:12.3px!important;line-height:1.05!important;color:#173a24!important;}
  .v499-active-card .ww666-open-job em{font-size:8.4px!important;line-height:1.1!important;color:#738077!important;}

  .v499-active-stats{gap:5px!important;margin-top:1px!important;}
  .v499-active-stats>div{min-height:38px!important;padding:5px 4px!important;border-radius:10px!important;background:rgba(255,255,255,.045)!important;border-color:rgba(255,255,255,.045)!important;}
  .v499-active-stats span{font-size:6.7px!important;letter-spacing:.07em!important;color:rgba(235,244,233,.49)!important;}
  .v499-active-stats strong{font-size:11.8px!important;margin-top:1px!important;color:#fff!important;}
}
@media(max-width:380px){
  .v499-timer-orbit{width:124px!important;height:124px!important;}
  .v499-timer-ring span{font-size:23px!important;}
  .v709-schedule-row{font-size:8.2px!important;gap:5px!important;}
  .v709-schedule-row strong{font-size:7.5px!important;padding:3px 6px!important;}
}

/* ==========================================================
   EarthRoster v711 — Restore original circular clock design
   Preserve the established gold/green timer identity while retaining
   v709's clean schedule separation and primary Clock out action.
   ========================================================== */
@media(max-width:430px){
  /* Restore the established EarthRoster circular timer treatment. */
  .v499-timer-orbit{
    width:156px!important;
    height:156px!important;
    margin:3px auto 0!important;
    padding:7px!important;
    border-radius:50%!important;
    background:conic-gradient(from 16deg,#e7c46c 0deg,#d7b45c 68deg,#78d18d 171deg,#64b97b 238deg,rgba(255,255,255,.18) 303deg,#e7c46c 360deg)!important;
    box-shadow:0 16px 34px rgba(0,0,0,.28),0 0 0 1px rgba(231,196,108,.10)!important;
  }
  .v499-timer-orbit::before{
    display:block!important;
    inset:-7px!important;
    border:1px solid rgba(133,219,151,.16)!important;
  }
  .v499-timer-orbit::after{
    display:block!important;
    inset:-14px!important;
    border:1px solid rgba(231,196,108,.14)!important;
  }
  .v499-timer-ring{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    padding:17px 8px!important;
    background:radial-gradient(circle at 46% 33%,#22583a 0%,#103622 56%,#092719 100%)!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.10),inset 0 0 30px rgba(0,0,0,.20)!important;
  }
  .v499-timer-ring span{
    position:static!important;
    margin:0!important;
    font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;
    font-size:29px!important;
    line-height:.94!important;
    font-weight:900!important;
    letter-spacing:-.04em!important;
    font-variant-numeric:tabular-nums!important;
    white-space:nowrap!important;
    color:#fff!important;
    text-shadow:0 2px 10px rgba(0,0,0,.28)!important;
  }
  .v499-timer-ring em{
    position:static!important;
    margin:0!important;
    font-size:8px!important;
    line-height:1!important;
    font-style:normal!important;
    font-weight:800!important;
    letter-spacing:.16em!important;
    text-transform:uppercase!important;
    color:rgba(239,247,235,.58)!important;
  }

  /* Keep the schedule clear of the timer's outer decorative ring. */
  .v502-progress-block{
    margin-top:20px!important;
  }
}
@media(max-width:380px){
  .v499-timer-orbit{width:148px!important;height:148px!important;}
  .v499-timer-ring span{font-size:27px!important;}
  .v499-timer-ring em{font-size:7.6px!important;}
  .v502-progress-block{margin-top:19px!important;}
}

/* ==========================================================
   EarthRoster v711 — Refined Clock out emphasis
   Keep Clock out clearly distinct without an overpowering bright red.
   ========================================================== */
@media(max-width:430px){
  .v499-clockout.v566-clockout{
    border:1px solid rgba(224,190,180,.22)!important;
    background:linear-gradient(135deg,#6e4a46 0%,#62413f 56%,#563938 100%)!important;
    color:#fffaf3!important;
    box-shadow:0 6px 14px rgba(38,25,24,.20),inset 0 1px 0 rgba(255,255,255,.08)!important;
  }
  .v499-clockout.v566-clockout>svg{
    background:rgba(44,27,27,.22)!important;
    color:#fffaf3!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)!important;
  }
  .v499-clockout.v566-clockout strong{color:#fffaf3!important;}
  .v499-clockout.v566-clockout em{color:rgba(255,248,238,.70)!important;}
  .v709-clockout-arrow{color:rgba(255,250,242,.88)!important;}
}

/* ==========================================================
   EarthRoster v712 — Complete employee Time Clock redesign
   New mobile-first structure. Functional clock/service-note logic retained.
   ========================================================== */

/* Clock page header: quieter, cleaner, more app-like on this page only. */
@media(max-width:760px){
  .topbar.topbar-clock{
    min-height:calc(72px + var(--safe-t))!important;
    padding:calc(11px + var(--safe-t)) 14px 11px!important;
    border-radius:0 0 22px 22px!important;
    background:linear-gradient(125deg,#153d27 0%,#0c2c1b 68%,#0a2417 100%)!important;
    box-shadow:0 10px 24px -16px rgba(8,28,16,.72)!important;
  }
  .topbar.topbar-clock h1{font-size:clamp(25px,7.4vw,31px)!important;line-height:1!important;letter-spacing:-.035em!important;}
  .topbar.topbar-clock .sub{margin-top:5px!important;font-size:11.5px!important;color:rgba(235,241,228,.68)!important;}
  .topbar.topbar-clock .topbar-actions{padding:3px!important;gap:4px!important;background:rgba(255,255,255,.065)!important;border-color:rgba(255,255,255,.11)!important;box-shadow:none!important;}
  .topbar.topbar-clock .top-profile,.topbar.topbar-clock .icon-btn{width:38px!important;min-width:38px!important;height:38px!important;box-shadow:none!important;border-color:rgba(255,255,255,.12)!important;background:rgba(255,255,255,.055)!important;}
  .topbar.topbar-clock .top-profile .avatar.sm{width:31px!important;height:31px!important;box-shadow:none!important;}
}

/* New segmented navigation. */
.v499-clock-tabs{
  padding:4px!important;
  gap:4px!important;
  margin:0 0 10px!important;
  border-radius:16px!important;
  border:1px solid #d7dece!important;
  background:#eef1e8!important;
  box-shadow:0 5px 14px rgba(30,55,34,.06)!important;
}
.v499-clock-tabs button{
  height:40px!important;
  border-radius:12px!important;
  font-size:11.5px!important;
  font-weight:850!important;
  color:#536356!important;
  background:transparent!important;
  box-shadow:none!important;
}
.v499-clock-tabs button.active{
  color:#fff!important;
  background:linear-gradient(135deg,#2f6940,#1d4d2d)!important;
  box-shadow:0 5px 12px rgba(28,73,42,.18),inset 0 1px 0 rgba(255,255,255,.13)!important;
}
.v499-clock-tabs button svg{width:15px!important;height:15px!important;}

.v712-shift-card{
  position:relative;
  display:block;
  padding:10px;
  border:1px solid #d8dfd1;
  border-radius:22px;
  background:linear-gradient(180deg,#f8f6ee 0%,#f1f3ea 100%);
  box-shadow:0 14px 34px rgba(27,57,34,.12),inset 0 1px 0 rgba(255,255,255,.92);
  color:#173a25;
  overflow:hidden;
}

.v712-time-zone{
  position:relative;
  overflow:hidden;
  padding:11px 12px 12px;
  border-radius:18px;
  color:#fff;
  background:
    radial-gradient(circle at 50% 20%,rgba(104,194,126,.16),transparent 34%),
    linear-gradient(145deg,#163f28 0%,#0c2f1d 58%,#0a2819 100%);
  border:1px solid rgba(225,196,119,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 8px 18px rgba(16,48,27,.14);
}
.v712-time-zone::after{
  content:"";position:absolute;inset:auto -30px -58px auto;width:145px;height:145px;border-radius:50%;
  border:1px solid rgba(229,195,112,.075);pointer-events:none;
}
.v712-status-row{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:24px;}
.v712-live{display:inline-flex;align-items:center;gap:7px;min-width:0;font-size:9px;letter-spacing:.10em;text-transform:uppercase;color:#dcecdf;white-space:nowrap;}
.v712-live i{width:7px;height:7px;border-radius:50%;background:#78d88a;box-shadow:0 0 0 4px rgba(120,216,138,.11);flex:none;}
.v712-live strong{font-size:inherit;font-weight:900;}
.v712-date{font-size:9.2px;font-weight:750;color:rgba(239,245,237,.58);white-space:nowrap;}

.v712-timer{
  width:136px;height:136px;margin:6px auto 8px;padding:6px;border-radius:50%;display:grid;place-items:center;
  background:conic-gradient(from 25deg,#e1bc61 0 64deg,#a9cf78 64deg 152deg,#6fc488 152deg 264deg,rgba(255,255,255,.12) 264deg 318deg,#e1bc61 318deg 360deg);
  box-shadow:0 12px 24px rgba(0,0,0,.22),0 0 0 1px rgba(226,192,105,.08);
  position:relative;z-index:2;
}
.v712-timer::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(134,211,149,.12);}
.v712-timer-face{
  width:100%;height:100%;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  background:radial-gradient(circle at 46% 30%,#22543a 0%,#113925 54%,#0a2a1b 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.095),inset 0 -18px 28px rgba(0,0,0,.13);
}
.v712-timer-face span{
  display:block;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:25px;line-height:1;font-weight:900;letter-spacing:-.045em;font-variant-numeric:tabular-nums;color:#fff;white-space:nowrap;
  text-shadow:0 2px 8px rgba(0,0,0,.24);
}
.v712-timer-face em{font-style:normal;font-size:7px;line-height:1;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:rgba(238,245,235,.57);}

.v712-schedule{position:relative;z-index:2;padding:8px 9px 7px;border-radius:13px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.075);}
.v712-schedule-times{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:8px;margin-bottom:7px;}
.v712-schedule-times>span{display:grid;gap:1px;min-width:0;}
.v712-schedule-times>span:first-child{text-align:left;}.v712-schedule-times>span:last-child{text-align:right;}
.v712-schedule-times small{font-size:6.3px;text-transform:uppercase;letter-spacing:.10em;color:rgba(237,245,235,.42);font-weight:850;}
.v712-schedule-times strong{font-size:9.8px;line-height:1.1;color:#fff;font-weight:850;white-space:nowrap;}
.v712-schedule-times .v712-duration{text-align:center;padding:3px 10px;border-left:1px solid rgba(255,255,255,.08);border-right:1px solid rgba(255,255,255,.08);}
.v712-schedule-times .v712-duration strong{color:#e6d59f;}
.v712-progress{height:5px;border-radius:999px;background:rgba(229,240,228,.13);overflow:hidden;}
.v712-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#dfbd67,#9bd27e 54%,#70cb88);transition:width .8s ease;box-shadow:0 0 10px rgba(135,207,134,.18);}

.v712-job-card{
  display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;
  margin-top:8px;padding:9px 10px;border-radius:15px;background:#fffdf8;border:1px solid #dfe3d7;box-shadow:0 5px 13px rgba(31,57,36,.055);
}
.v712-job-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:#c59e49;background:#eff4e8;border:1px solid #d8e3d1;}
.v712-job-icon svg{width:19px;height:19px;}
.v712-job-copy{min-width:0;}
.v712-job-copy>span{display:block;font-size:6.8px;line-height:1;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:#75907b;}
.v712-job-copy h2{margin:3px 0 3px!important;font-family:var(--font-display,Georgia,serif);font-size:16.5px!important;line-height:1.05!important;font-weight:650!important;color:#183a25!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.v712-job-copy button{max-width:100%;padding:0;border:0;background:transparent;color:#788179;display:flex;align-items:center;gap:4px;font-size:8.8px;line-height:1.15;text-align:left;}
.v712-job-copy button svg{width:11px;height:11px;flex:none;color:#508760;}.v712-job-copy button b{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.v712-onsite{
  display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:8px;margin-top:6px;padding:7px 9px;border-radius:12px;
  border:1px solid #dce5d8;background:#edf4eb;color:#35543e;
}
.v712-onsite>svg{width:16px;height:16px;justify-self:center;color:#4f8a5d;}
.v712-onsite span{display:grid;gap:1px;min-width:0;}.v712-onsite strong{font-size:9.2px;line-height:1.05;font-weight:850;}.v712-onsite em{font-size:7.7px;line-height:1.2;font-style:normal;font-weight:650;color:#718076;}

.v712-actions{display:grid;gap:6px;margin-top:8px;}
.v712-clockout{
  position:relative;width:100%;min-height:49px;padding:6px 10px 6px 8px;border-radius:14px;border:1px solid #294d37;
  display:grid;grid-template-columns:36px minmax(0,1fr) 16px;align-items:center;gap:9px;text-align:left;
  background:linear-gradient(135deg,#214a32 0%,#173c28 62%,#133322 100%);color:#fff;
  box-shadow:0 7px 16px rgba(23,59,39,.16),inset 0 1px 0 rgba(255,255,255,.07);overflow:hidden;
}
.v712-clockout::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:#a95a4e;}
.v712-clockout-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#75453f;color:#fff4ef;border:1px solid rgba(255,255,255,.08);}
.v712-clockout-icon svg{width:17px;height:17px;}
.v712-clockout-copy{display:grid;gap:1px;min-width:0;}.v712-clockout-copy strong{font-size:12.8px;line-height:1.08;font-weight:900;color:#fff;}.v712-clockout-copy em{font-style:normal;font-size:8.2px;line-height:1.1;color:rgba(239,246,239,.64);font-weight:650;}
.v712-clockout>i{font-style:normal;font-size:22px;line-height:1;color:rgba(255,255,255,.70);text-align:right;}

/* The Service Notes module is injected directly after Clock out. */
.v712-actions .ww666-open-job{
  width:100%!important;min-height:45px!important;margin:0!important;padding:5px 9px!important;gap:8px!important;
  border-radius:13px!important;border:1px solid #d9dfd3!important;background:#fffdf9!important;color:#1d432b!important;
  box-shadow:0 4px 11px rgba(30,55,34,.055)!important;text-align:left!important;
}
.v712-actions .ww666-open-job .ww666-job-btn-icon{width:33px!important;height:33px!important;border-radius:10px!important;background:#e8efe5!important;color:#315e3e!important;box-shadow:none!important;}
.v712-actions .ww666-open-job .ww666-job-btn-icon svg{width:16px!important;height:16px!important;}
.v712-actions .ww666-open-job strong{font-size:11.8px!important;line-height:1.05!important;color:#1d432b!important;font-weight:850!important;}
.v712-actions .ww666-open-job em{font-size:7.9px!important;line-height:1.1!important;color:#7b857d!important;font-weight:650!important;}
.v712-actions .ww666-open-job>b{color:#7d897f!important;}

.v712-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:7px;border-radius:12px;border:1px solid #dfe4d8;background:#eaeee5;overflow:hidden;}
.v712-stats>div{min-width:0;padding:6px 5px;text-align:center;border-left:1px solid #d9dfd3;}.v712-stats>div:first-child{border-left:0;}
.v712-stats span{display:block;font-size:6px;line-height:1.05;letter-spacing:.075em;text-transform:uppercase;color:#7c897e;font-weight:850;white-space:nowrap;}
.v712-stats strong{display:block;margin-top:2px;font-size:11.5px;line-height:1.05;color:#274831;font-weight:900;white-space:nowrap;}

@media(max-width:430px){
  .clock-subnav.v499-clock-tabs{margin-bottom:8px!important;}
  .v499-clock-page{gap:9px!important;}
  .v712-shift-card{padding:9px;border-radius:20px;}
  .v712-time-zone{padding:10px 11px 11px;border-radius:17px;}
  .v712-timer{width:132px;height:132px;margin:5px auto 7px;}
  .v712-timer-face span{font-size:24px;}
}
@media(max-width:370px){
  .v499-clock-tabs button{height:38px!important;font-size:10.7px!important;}
  .v712-shift-card{padding:8px;}
  .v712-time-zone{padding:9px 10px 10px;}
  .v712-timer{width:124px;height:124px;}
  .v712-timer-face span{font-size:22.5px;}
  .v712-schedule-times{gap:5px;}.v712-schedule-times .v712-duration{padding-left:7px;padding-right:7px;}
  .v712-job-copy h2{font-size:15.5px!important;}
  .v712-onsite em{font-size:7.2px;}
  .v712-clockout{min-height:47px;}
}

/* ==========================================================
   EarthRoster v713 — Restore original header action cluster
   Scope: Time Clock top-right S / Search / Bell controls only.
   The v712 Time Clock redesign below the header is unchanged.
   ========================================================== */
@media(max-width:760px){
  .topbar.topbar-clock .topbar-actions{
    padding:5px!important;
    gap:9px!important;
    border:1px solid rgba(231,213,164,.42)!important;
    border-radius:999px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02))!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 12px 26px rgba(5,18,9,.18)!important;
    backdrop-filter:blur(10px)!important;
    -webkit-backdrop-filter:blur(10px)!important;
  }
  .topbar.topbar-clock .icon-btn,
  .topbar.topbar-clock .top-profile{
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    border-radius:50%!important;
    padding:0!important;
    display:grid!important;
    place-items:center!important;
    overflow:visible!important;
    border:1.4px solid rgba(231,213,164,.72)!important;
    color:#f7f0dc!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 18px rgba(0,0,0,.16)!important;
  }
  .topbar.topbar-clock .top-profile{
    background:radial-gradient(circle at 35% 25%,rgba(221,211,176,.30),rgba(88,123,83,.18) 52%,rgba(32,57,38,.24))!important;
  }
  .topbar.topbar-clock .icon-btn{
    background:radial-gradient(circle at 35% 25%,rgba(244,238,218,.20),rgba(81,108,73,.15) 55%,rgba(20,38,24,.20))!important;
  }
  .topbar.topbar-clock .top-profile .avatar.sm{
    width:100%!important;
    height:100%!important;
    border-radius:50%!important;
    background:transparent!important;
    color:#fff7e8!important;
    font-size:12px!important;
    font-weight:950!important;
    box-shadow:none!important;
    letter-spacing:.02em!important;
  }
  .topbar.topbar-clock .icon-btn svg{
    width:20px!important;
    height:20px!important;
    stroke-width:2.25!important;
  }
}
@media(max-width:640px){
  .topbar.topbar-clock .topbar-actions{gap:6px!important;}
  .topbar.topbar-clock .icon-btn,
  .topbar.topbar-clock .top-profile{
    width:38px!important;
    min-width:38px!important;
    height:38px!important;
  }
  .topbar.topbar-clock .icon-btn svg{width:19px!important;height:19px!important;}
  .topbar.topbar-clock .top-profile .avatar.sm{font-size:11px!important;}
}
@media(max-width:380px){
  .topbar.topbar-clock .topbar-actions{gap:5px!important;}
  .topbar.topbar-clock .icon-btn,
  .topbar.topbar-clock .top-profile{
    width:34px!important;
    min-width:34px!important;
    height:34px!important;
  }
  .topbar.topbar-clock .top-profile .avatar.sm{font-size:10px!important;}
}

/* ============================================================
   EarthRoster v714 — Roster cards: clean assignment hierarchy
   Mobile day cards + Admin desktop week cards only.
   ============================================================ */
@media(max-width:1023px){
  .roster-mobile .rcard.rc-v714{
    position:relative!important;
    display:grid!important;
    grid-template-columns:68px minmax(0,1fr)!important;
    gap:11px!important;
    min-height:86px!important;
    padding:9px 11px 9px 12px!important;
    margin:0 0 7px!important;
    border-radius:16px!important;
    overflow:hidden!important;
    background:linear-gradient(135deg,color-mix(in srgb,var(--solid) 8%,#fffdf9),#fffdf9 72%)!important;
    border:1px solid color-mix(in srgb,var(--solid) 23%,#dedfd6)!important;
    box-shadow:0 5px 14px rgba(24,43,27,.075)!important;
    color:#1a241c!important;
    transform:none!important;
    filter:none!important;
  }
  .roster-mobile .rcard.rc-v714::before{
    content:""!important;position:absolute!important;left:0!important;top:10px!important;bottom:10px!important;width:4px!important;inset:auto!important;
    border:0!important;border-radius:0 5px 5px 0!important;background:var(--solid)!important;box-shadow:none!important;z-index:2!important;
  }
  .roster-mobile .rcard.rc-v714::after{display:none!important}
  .roster-mobile .rc-v714 .rc-main,.roster-mobile .rc-v714 .rc-badge,.roster-mobile .rc-v714 .rc-info{display:none!important}
  .rc-v714-time{
    align-self:stretch;display:grid!important;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;align-content:center;align-items:end;
    min-width:0;padding:8px 8px 7px;border-radius:13px;
    background:linear-gradient(155deg,var(--solid),var(--deep));color:#fff;
    box-shadow:0 4px 10px color-mix(in srgb,var(--deep) 22%,transparent);
  }
  .rc-v714-start{font-size:18px;font-weight:950;line-height:1;letter-spacing:-.045em}
  .rc-v714-ap{font-size:7.5px;font-weight:900;letter-spacing:.08em;margin:0 0 2px 3px;opacity:.8}
  .rc-v714-dur{grid-column:1/-1;justify-self:start;margin-top:5px;padding:2px 7px;border-radius:999px;background:rgba(255,255,255,.18);font-size:8.5px;font-weight:900;line-height:1.2}
  .rc-v714-body{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:3px}
  .rc-v714-title-row{display:flex;align-items:center;gap:7px;min-width:0}
  .rc-v714-title-row h3{flex:1;min-width:0;margin:0!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;text-shadow:none!important;
    color:#18251b!important;font-family:var(--font-display,Georgia,serif)!important;font-size:15.5px!important;font-weight:800!important;line-height:1.08!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .rc-v714-status{flex-shrink:0;display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:999px;font-size:7.8px;font-weight:900;letter-spacing:.045em;text-transform:uppercase;white-space:nowrap}
  .rc-v714-status.accepted,.rc-v714-status.completed{background:#e5f2e6;color:#2d703c}
  .rc-v714-status.progress{background:#dff1e3;color:#226638}
  .rc-v714-status.awaiting,.rc-v714-status.mixed-response,.rc-v714-status.mixed-work{background:#fff2d8;color:#8a5b0d}
  .rc-v714-status.declined{background:#f6e4e1;color:#a44539}
  .rc-v714-status.unassigned,.rc-v714-status.draft{background:#ecefe9;color:#5e6a60}
  .rc-v714-range{display:flex;align-items:center;gap:5px;color:#33463a;font-size:11px;line-height:1.15}
  .rc-v714-range svg,.rc-v714-line svg{width:11px;height:11px;flex-shrink:0;fill:none;stroke:var(--solid);stroke-width:2.25}
  .rc-v714-range strong{font-weight:850}
  .rc-v714-line{display:flex;align-items:center;gap:5px;min-width:0;color:#6a756c;font-size:10.2px;font-weight:650;line-height:1.1}
  .rc-v714-line>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .rc-v714-staff{margin-top:1px}
  .rc-v714-avatars{display:flex!important;flex-shrink:0;margin-right:1px}
  .rc-v714-av{width:18px;height:18px;margin-left:-4px;border-radius:50%;display:grid;place-items:center;background:var(--deep);border:1.5px solid #fff;color:#fff;font-size:6.7px;font-weight:900}
  .rc-v714-av:first-child{margin-left:0}.rc-v714-av.more{background:#68766a}
  .rc-v714-actions{display:flex!important;margin-top:3px!important;gap:5px!important;align-items:center!important}
  .rc-v714-actions .rc-act{height:27px!important;min-width:0!important;border-radius:9px!important;font-size:9.5px!important;padding:0 9px!important;box-shadow:none!important}
  .rc-v714-actions .rc-reject{background:#fff!important;border:1px solid #e5c7c3!important;color:#a9463b!important}
  .rc-v714-actions .rc-accept,.rc-v714-actions .rc-start{background:var(--deep)!important;color:#fff!important}
  .rc-v714-actions .rc-accept svg,.rc-v714-actions .rc-start svg{stroke:#fff!important}
  .rc-v714-actions .rc-emp-state{height:25px!important;padding:0 8px!important;border-radius:8px!important;font-size:9px!important}
  .roster-mobile .rcard.rc-v714.is-draft{background:#fffdf9!important;border:1px dashed color-mix(in srgb,var(--solid) 50%,#ddd)!important;opacity:1!important}
  .roster-mobile .rcard.rc-v714.is-rejected{background:#f4f1ef!important;border-color:#ddd5d1!important;filter:none!important;opacity:1!important}
  .roster-mobile .rcard.rc-v714.is-rejected .rc-v714-time{background:linear-gradient(155deg,#8a807c,#6f635f)!important}
  .roster-mobile .rcard.rc-v714.is-rejected::before{background:#796d68!important}
  .roster-mobile .rcard.rc-v714.is-rejected .rc-v714-title-row h3{text-decoration:line-through;color:#655b57!important}
  .roster-mobile .rc-reject-stamp{display:none!important}
}
@media(max-width:390px){
  .roster-mobile .rcard.rc-v714{grid-template-columns:62px minmax(0,1fr)!important;gap:9px!important;min-height:80px!important;padding:8px 9px 8px 11px!important}
  .rc-v714-time{padding:7px 7px 6px}.rc-v714-start{font-size:16px}.rc-v714-title-row h3{font-size:14.5px!important}.rc-v714-line{font-size:9.7px}
}

@media(min-width:1024px){
  .rgc.rgc-v714{
    overflow:visible;border-radius:12px;background:#fff!important;border:1px solid color-mix(in srgb,var(--accent) 22%,#dfe5de)!important;border-left:4px solid var(--accent)!important;
    box-shadow:0 2px 7px rgba(25,45,28,.07)!important;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease!important;
  }
  .rgc.rgc-v714.draft{border:1px dashed color-mix(in srgb,var(--accent) 50%,#ddd)!important;border-left:4px solid var(--accent)!important;background:#fffdf9!important}
  .rgc.rgc-v714 .rgc-main{padding:8px 9px 7px!important}
  .rgc-v714-top{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0}
  .rgc.rgc-v714 .rgc-time{font-size:11.2px!important;font-weight:900!important;color:#1f3526!important;letter-spacing:-.015em!important}
  .rgc.rgc-v714 .rgc-dur{font-size:8.5px!important;font-weight:900!important;padding:2px 6px!important;background:color-mix(in srgb,var(--accent) 10%,#f7f7f2)!important;color:var(--accent-deep)!important}
  .rgc-v714-client{margin-top:4px;font-family:var(--font-display,Georgia,serif);font-size:12.6px;font-weight:800;line-height:1.05;color:#17231a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rgc-v714-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:5px}
  .rgc-v714-state{display:inline-flex;align-items:center;gap:5px;font-size:8px;font-weight:850;letter-spacing:.035em;text-transform:uppercase;color:#687269}
  .rgc-v714-state i{width:6px;height:6px;border-radius:50%;background:#9aa49b}.rgc-v714-state.pub{color:#397345}.rgc-v714-state.pub i{background:#4b9b5c}.rgc-v714-state.draft{color:#96691d}.rgc-v714-state.draft i{background:#c98a25}
  .rgc-v714-open{font-size:8.5px;font-weight:850;color:var(--accent-deep);opacity:.7}
  .rgc.rgc-v714 .rgc-tools{position:absolute!important;right:5px!important;bottom:5px!important;z-index:5!important;display:flex!important;gap:4px!important;padding:0!important;max-height:none!important;opacity:0!important;overflow:visible!important;pointer-events:none!important;transform:translateY(2px);transition:opacity .12s ease,transform .12s ease!important}
  .rgc.rgc-v714:hover{transform:translateY(-1px)!important;box-shadow:0 8px 18px rgba(24,50,29,.14)!important;border-color:color-mix(in srgb,var(--accent) 38%,#dfe5de)!important;z-index:8!important}
  .rgc.rgc-v714:hover .rgc-tools{opacity:1!important;pointer-events:auto!important;transform:none!important}
  .rgc.rgc-v714:hover .rgc-v714-foot{padding-right:95px}
  .rgc.rgc-v714 .rgc-tool{width:22px!important;height:22px!important;flex:0 0 22px!important;border-radius:7px!important;box-shadow:0 2px 5px rgba(20,40,22,.11)!important}
  .rgc.rgc-v714 .rgc-tool svg{width:11px!important;height:11px!important}
}


/* ============================================================
   EarthRoster v715 — Roster card visual separation
   SCOPE LOCK: v714 roster-card geometry/hierarchy is unchanged.
   Adds only restrained client/status surface tinting so busy rosters
   are easier to scan without returning to heavy coloured cards.
   ============================================================ */
@media(max-width:1023px){
  .roster-mobile .rcard.rc-v714{
    background:linear-gradient(135deg,var(--surface,#f4f8f2),#fff 82%)!important;
    background:
      radial-gradient(circle at 96% 12%,color-mix(in srgb,var(--solid) 14%,transparent) 0 18%,transparent 44%),
      linear-gradient(135deg,color-mix(in srgb,var(--solid) 16%,#fffdf8),color-mix(in srgb,var(--solid) 6%,#fff) 74%)!important;
    border-color:color-mix(in srgb,var(--solid) 32%,#d9ddd5)!important;
    box-shadow:0 5px 14px color-mix(in srgb,var(--deep) 8%,rgba(24,43,27,.055))!important;
  }
  .roster-mobile .rcard.rc-v714.status-accepted{
    background:linear-gradient(135deg,#eef8ee,#fbfdf9 80%)!important;
    background:
      radial-gradient(circle at 96% 12%,color-mix(in srgb,var(--solid) 13%,transparent) 0 18%,transparent 44%),
      linear-gradient(135deg,color-mix(in srgb,var(--solid) 12%,#edf7ee),#f8fbf7 76%)!important;
  }
  .roster-mobile .rcard.rc-v714.status-progress{
    background:linear-gradient(135deg,#e7f6e9,#f7fbf7 80%)!important;
    background:
      radial-gradient(circle at 96% 12%,rgba(75,155,92,.12) 0 18%,transparent 45%),
      linear-gradient(135deg,color-mix(in srgb,var(--solid) 12%,#e5f5e7),#f4faf4 76%)!important;
    border-color:color-mix(in srgb,#4b9b5c 34%,var(--solid))!important;
  }
  .roster-mobile .rcard.rc-v714.status-awaiting,
  .roster-mobile .rcard.rc-v714.status-mixed-response,
  .roster-mobile .rcard.rc-v714.status-mixed-work{
    background:linear-gradient(135deg,#fff2d8,#fffaf0 82%)!important;
    background:
      radial-gradient(circle at 96% 12%,rgba(205,157,65,.13) 0 18%,transparent 45%),
      linear-gradient(135deg,color-mix(in srgb,var(--solid) 9%,#fff1d8),#fffbf2 78%)!important;
    border-color:color-mix(in srgb,#c99434 27%,var(--solid))!important;
  }
  .roster-mobile .rcard.rc-v714.status-completed{
    background:linear-gradient(135deg,#e9eee9,#f7f8f6 82%)!important;
    background:
      linear-gradient(135deg,color-mix(in srgb,var(--solid) 8%,#e9eee9),#f5f7f4 80%)!important;
    border-color:#d5ddd4!important;
    box-shadow:0 3px 10px rgba(24,43,27,.045)!important;
  }
  .roster-mobile .rcard.rc-v714.status-declined,
  .roster-mobile .rcard.rc-v714.is-rejected{
    background:linear-gradient(135deg,#f8ece9,#fbf6f4 78%)!important;
    border-color:#e7cfc9!important;
  }
  .roster-mobile .rcard.rc-v714.status-draft,
  .roster-mobile .rcard.rc-v714.is-draft{
    background:linear-gradient(135deg,#f9efdd,#fffaf1 82%)!important;
    background:
      radial-gradient(circle at 96% 12%,rgba(190,146,78,.10) 0 18%,transparent 45%),
      linear-gradient(135deg,color-mix(in srgb,var(--solid) 7%,#f9efdd),#fffaf1 78%)!important;
    border-color:color-mix(in srgb,var(--solid) 42%,#ddd6c7)!important;
  }
  .roster-mobile .rcard.rc-v714.status-unassigned{
    background:linear-gradient(135deg,#eef1ec,#f8f9f6 78%)!important;
    border-color:#d8ddd6!important;
  }
  .roster-mobile .rcard.rc-v714.status-completed .rc-v714-time{
    filter:saturate(.72) brightness(.98);
  }
}

@media(min-width:1024px){
  .rgc.rgc-v714{
    background:linear-gradient(135deg,var(--surface,#f5f8f3),#fff 84%)!important;
    background:
      radial-gradient(circle at 100% 0,color-mix(in srgb,var(--accent) 12%,transparent) 0 24%,transparent 54%),
      linear-gradient(135deg,color-mix(in srgb,var(--accent) 13%,#fffdf8),#fff 82%)!important;
    border-color:color-mix(in srgb,var(--accent) 31%,#dfe5de)!important;
    box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 7%,rgba(25,45,28,.055))!important;
  }
  .rgc.rgc-v714.draft{
    background:linear-gradient(135deg,#f8efdf,var(--surface,#fff9ee) 55%,#fffaf1)!important;
    background:
      radial-gradient(circle at 100% 0,color-mix(in srgb,var(--accent) 11%,transparent) 0 24%,transparent 54%),
      linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,#f7ecd8),#fff9ee 82%)!important;
    border-color:color-mix(in srgb,var(--accent) 44%,#ddd5c5)!important;
  }
  .rgc.rgc-v714:hover{
    background:
      radial-gradient(circle at 100% 0,color-mix(in srgb,var(--accent) 16%,transparent) 0 25%,transparent 56%),
      linear-gradient(135deg,color-mix(in srgb,var(--accent) 17%,#fffdf8),#fff 82%)!important;
  }
}


/* ============================================================
   EarthRoster v716 — Smart roster-card visual priority
   SCOPE LOCK: v714 geometry + v715 tinting remain intact.
   Adds attention hierarchy only: next, live, awaiting, updated,
   completed and issue/declined states for faster roster scanning.
   ============================================================ */
@media(max-width:1023px){
  .roster-mobile .rcard.rc-v716{
    transition:border-color .14s ease,box-shadow .14s ease,filter .14s ease,opacity .14s ease!important;
  }
  .rc-v716-signal{
    flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;height:18px;padding:0 6px;border-radius:999px;
    font-size:6.9px;font-weight:950;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;border:1px solid transparent;
  }
  .rc-v716-signal.next{background:#173f29;color:#fff9e8;border-color:#315d3e;box-shadow:0 2px 6px rgba(24,63,41,.13)}
  .rc-v716-signal.updated{background:#e7edf1;color:#405763;border-color:#ced9df}
  .rc-v716-signal.issue{background:#f7e5e1;color:#9d4137;border-color:#e6c7c0}
  .rc-v716-live-dot{display:inline-block;width:5px;height:5px;margin-right:4px;border-radius:50%;background:#42a35a;box-shadow:0 0 0 3px rgba(66,163,90,.12);animation:ww716Pulse 1.8s ease-in-out infinite}

  /* NEXT: clean strongest highlight without changing card size. */
  .roster-mobile .rcard.rc-v716.priority-next{
    border-color:color-mix(in srgb,var(--deep) 52%,#cfd8ce)!important;
    box-shadow:0 7px 18px rgba(29,76,44,.13),0 0 0 1px color-mix(in srgb,var(--solid) 22%,transparent)!important;
  }
  .roster-mobile .rcard.rc-v716.priority-next::before{width:5px!important;background:linear-gradient(180deg,#163e28,var(--solid))!important}
  .roster-mobile .rcard.rc-v716.priority-next .rc-v714-time{box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 4px 10px color-mix(in srgb,var(--deep) 16%,transparent)}

  /* LIVE: status itself carries the motion; card gets a fresh green edge. */
  .roster-mobile .rcard.rc-v716.priority-progress{
    border-color:rgba(63,145,79,.42)!important;
    box-shadow:0 6px 17px rgba(50,129,67,.11)!important;
  }
  .roster-mobile .rcard.rc-v716.priority-progress::before{background:#3f9954!important}

  /* AWAITING: warm attention, deliberately calmer than an error. */
  .roster-mobile .rcard.rc-v716.priority-awaiting{
    border-color:#dfc58f!important;
    box-shadow:0 5px 14px rgba(151,108,31,.075)!important;
  }
  .roster-mobile .rcard.rc-v716.priority-awaiting::before{background:#c89535!important}

  /* UPDATED: neutral/cool cue that disappears automatically after 72h. */
  .roster-mobile .rcard.rc-v716.priority-updated{
    border-color:#cbd8dc!important;
    box-shadow:0 5px 14px rgba(66,91,101,.07)!important;
  }

  /* COMPLETED: recede so future work wins the visual hierarchy. */
  .roster-mobile .rcard.rc-v716.priority-completed{
    opacity:.78!important;filter:saturate(.70) contrast(.98)!important;
    box-shadow:0 2px 7px rgba(24,43,27,.035)!important;
  }
  .roster-mobile .rcard.rc-v716.priority-completed .rc-v714-title-row h3{color:#536057!important}
  .roster-mobile .rcard.rc-v716.priority-completed .rc-v714-range,
  .roster-mobile .rcard.rc-v716.priority-completed .rc-v714-line{color:#7b847d!important}

  /* ISSUE / DECLINED: restrained warning, not a full red card. */
  .roster-mobile .rcard.rc-v716.priority-issue,
  .roster-mobile .rcard.rc-v716.priority-declined{
    border-color:#dfbbb4!important;
    box-shadow:0 5px 14px rgba(142,62,52,.075)!important;
  }
  .roster-mobile .rcard.rc-v716.priority-issue::before,
  .roster-mobile .rcard.rc-v716.priority-declined::before{background:#a9564c!important}
}

@media(max-width:390px){
  .rc-v716-signal{height:17px;padding:0 5px;font-size:6.4px}
  .rc-v714-title-row{gap:5px!important}
}

@media(min-width:1024px){
  .rgc.rgc-v716{transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,opacity .12s ease,filter .12s ease!important}
  .rgc.rgc-v716 .rgc-v716-signal{
    flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 6px;border-radius:999px;
    font-size:7px;font-weight:950;letter-spacing:.055em;text-transform:uppercase;white-space:nowrap;
    color:#607066;background:rgba(255,255,255,.58);border:1px solid rgba(51,75,58,.08);
  }
  .rgc.rgc-v716 .rgc-v716-signal.next{background:#173f29;color:#fff8e7;border-color:#315d3e}
  .rgc.rgc-v716 .rgc-v716-signal.progress{background:#ddf1e1;color:#296b39;border-color:#c2e2c8}
  .rgc.rgc-v716 .rgc-v716-signal.progress i{width:5px;height:5px;border-radius:50%;background:#43a35a;box-shadow:0 0 0 3px rgba(67,163,90,.12);animation:ww716Pulse 1.8s ease-in-out infinite}
  .rgc.rgc-v716 .rgc-v716-signal.awaiting{background:#fff0cf;color:#84560c;border-color:#edd7a8}
  .rgc.rgc-v716 .rgc-v716-signal.updated{background:#e7edf1;color:#405763;border-color:#ced9df}
  .rgc.rgc-v716 .rgc-v716-signal.issue,.rgc.rgc-v716 .rgc-v716-signal.declined{background:#f5e2de;color:#964137;border-color:#e2c1ba}
  .rgc.rgc-v716 .rgc-v716-signal.completed{background:#e7ece7;color:#667168;border-color:#d9dfda}

  .rgc.rgc-v716.priority-next{
    border-left-width:5px!important;border-color:color-mix(in srgb,var(--accent) 42%,#cfd8ce)!important;
    box-shadow:0 6px 15px rgba(29,76,44,.115),0 0 0 1px color-mix(in srgb,var(--accent) 13%,transparent)!important;
  }
  .rgc.rgc-v716.priority-progress{border-color:rgba(64,145,79,.36)!important;box-shadow:0 4px 13px rgba(50,129,67,.09)!important}
  .rgc.rgc-v716.priority-awaiting{border-color:#dfc58f!important}
  .rgc.rgc-v716.priority-updated{border-color:#cbd8dc!important}
  .rgc.rgc-v716.priority-completed{opacity:.72!important;filter:saturate(.68)!important;box-shadow:0 1px 4px rgba(25,45,28,.03)!important}
  .rgc.rgc-v716.priority-issue,.rgc.rgc-v716.priority-declined{border-color:#dfbbb4!important}

  /* Preserve hover tools while keeping priority badge visible. */
  .rgc.rgc-v716:hover .rgc-v714-foot{padding-right:95px}
}

@keyframes ww716Pulse{
  0%,100%{opacity:1;transform:scale(1)}50%{opacity:.62;transform:scale(.88)}
}
@media(prefers-reduced-motion:reduce){.rc-v716-live-dot,.rgc-v716-signal.progress i{animation:none!important}}


/* ============================================================
   EarthRoster v717 — Employee roster cards: compact action design
   SCOPE LOCK: employee mobile roster cards only. Admin mobile/desktop
   cards and v716 smart-priority logic remain unchanged.
   ============================================================ */
@media(max-width:1023px){
  .roster-mobile .rcard.rc-v716.is-emp{
    grid-template-columns:50px minmax(0,1fr)!important;
    gap:8px!important;
    min-height:68px!important;
    padding:7px 9px 7px 10px!important;
    margin-bottom:6px!important;
    border-radius:14px!important;
    align-items:center!important;
  }
  .roster-mobile .rcard.rc-v716.is-emp::before{top:8px!important;bottom:8px!important;width:3px!important}
  .roster-mobile .rcard.rc-v716.is-emp.priority-next::before{width:4px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-time{
    align-self:center!important;width:50px!important;height:48px!important;min-height:48px!important;box-sizing:border-box!important;
    padding:6px 5px 5px!important;border-radius:11px!important;display:grid!important;grid-template-columns:auto 1fr!important;
    grid-template-rows:1fr auto!important;align-content:center!important;align-items:end!important;
    box-shadow:0 3px 8px color-mix(in srgb,var(--deep) 14%,transparent)!important;
  }
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-start{font-size:13.5px!important;line-height:1!important;letter-spacing:-.035em!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-ap{font-size:6px!important;margin:0 0 1px 2px!important;letter-spacing:.06em!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-dur{margin-top:4px!important;padding:1px 5px!important;font-size:7px!important;border-radius:999px!important;line-height:1.15!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-body{gap:2px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-title-row{gap:4px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-title-row h3{font-size:13.2px!important;line-height:1.02!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-status{height:17px!important;padding:0 5px!important;font-size:6.5px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v716-signal{height:16px!important;padding:0 5px!important;font-size:6.1px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-range{font-size:9.8px!important;gap:4px!important;line-height:1.08!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-range svg,.roster-mobile .rcard.rc-v716.is-emp .rc-v714-line svg{width:9.5px!important;height:9.5px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-line{font-size:8.9px!important;gap:4px!important;line-height:1.05!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions{margin-top:2px!important;gap:4px!important;min-height:0!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-act{height:23px!important;border-radius:7px!important;font-size:8.2px!important;padding:0 8px!important;gap:4px!important;line-height:1!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-act svg{width:10px!important;height:10px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-reject{min-width:54px!important;background:rgba(255,255,255,.72)!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-accept{min-width:62px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-start{min-width:88px!important;padding:0 10px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-emp-state{height:22px!important;padding:0 7px!important;border-radius:7px!important;font-size:8px!important}
  .roster-mobile .rcard.rc-v716.is-emp.priority-completed{min-height:61px!important}
}
@media(max-width:390px){
  .roster-mobile .rcard.rc-v716.is-emp{grid-template-columns:46px minmax(0,1fr)!important;gap:7px!important;min-height:64px!important;padding:6px 8px 6px 9px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-time{width:46px!important;height:44px!important;min-height:44px!important;padding:5px 4px 4px!important;border-radius:10px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-start{font-size:12.5px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-title-row h3{font-size:12.6px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-range{font-size:9.3px!important}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-line{font-size:8.5px!important}
}

/* ============================================================
   EarthRoster v718 — Employee roster action-button refinement
   SCOPE LOCK: employee mobile roster action buttons only.
   Keeps v717 compact card geometry/time badge and v716 priority states.
   Restores the clearer v716-style visual actions requested by user:
   outlined Decline, solid green Accept, client-colour Start shift.
   ============================================================ */
@media(max-width:1023px){
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions{
    margin-top:4px!important;
    gap:7px!important;
  }
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-act{
    height:31px!important;
    min-height:31px!important;
    border-radius:9px!important;
    padding:0 12px!important;
    font-size:10.2px!important;
    font-weight:850!important;
    line-height:1!important;
    gap:6px!important;
    box-shadow:0 2px 6px rgba(25,50,31,.08)!important;
  }
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-act svg{
    width:12px!important;
    height:12px!important;
  }
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-reject{
    min-width:66px!important;
    background:rgba(255,255,255,.88)!important;
    color:#a6473d!important;
    border:1.4px solid #e2bbb5!important;
    box-shadow:0 2px 6px rgba(130,63,54,.05)!important;
  }
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-reject svg{display:none!important;}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-accept{
    min-width:76px!important;
    background:linear-gradient(180deg,#2f8250 0%,#226a40 100%)!important;
    color:#fff!important;
    border:1px solid #2d7d4c!important;
    box-shadow:0 3px 7px rgba(26,99,57,.16)!important;
  }
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-accept svg{
    stroke:#fff!important;
    stroke-width:2.6!important;
  }
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-start{
    min-width:102px!important;
    padding:0 13px!important;
    background:linear-gradient(180deg,var(--solid) 0%,var(--deep) 100%)!important;
    color:#fff!important;
    border:1px solid color-mix(in srgb,var(--deep) 78%,#fff)!important;
    box-shadow:0 3px 7px color-mix(in srgb,var(--deep) 20%,transparent)!important;
  }
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-start svg{
    fill:#fff!important;
    stroke:#fff!important;
  }
}
@media(max-width:390px){
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions{gap:6px!important;margin-top:3px!important;}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-act{
    height:29px!important;min-height:29px!important;padding:0 10px!important;font-size:9.6px!important;
  }
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-reject{min-width:62px!important;}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-accept{min-width:72px!important;}
  .roster-mobile .rcard.rc-v716.is-emp .rc-v714-actions .rc-start{min-width:98px!important;padding:0 12px!important;}
}

/* ============================================================
   EarthRoster v721 — Unified roster-card edge system
   SCOPE LOCK: outer card shells only. Keeps v714 hierarchy,
   v715 tinting, v716 smart priority, v717 compact employee layout,
   v718 employee buttons and v720 runtime renderer fixes intact.
   ============================================================ */
:root{
  --ww-roster-shell-radius:15px;
  --ww-roster-shell-shadow:0 4px 12px rgba(24,43,27,.075);
  --ww-roster-shell-hover-shadow:0 8px 18px rgba(24,50,29,.13);
}

@media(max-width:1023px){
  /* Admin + Employee mobile share the exact same outer edge geometry. */
  .roster-mobile .rcard.rc-v716,
  .roster-mobile .rcard.rc-v716.is-admin,
  .roster-mobile .rcard.rc-v716.is-emp{
    border-radius:var(--ww-roster-shell-radius)!important;
    border-width:1px!important;
    border-style:solid!important;
    box-shadow:var(--ww-roster-shell-shadow)!important;
    overflow:hidden!important;
  }
  /* Preserve status/draft edge colour while keeping identical geometry. */
  .roster-mobile .rcard.rc-v716.is-draft,
  .roster-mobile .rcard.rc-v716.status-draft{
    border-width:1px!important;
    border-style:dashed!important;
    border-radius:var(--ww-roster-shell-radius)!important;
  }
  .roster-mobile .rcard.rc-v716.is-rejected,
  .roster-mobile .rcard.rc-v716.status-declined{
    border-width:1px!important;
    border-radius:var(--ww-roster-shell-radius)!important;
  }
}

@media(min-width:1024px){
  /* Desktop uses the same rounded shell and even 1px perimeter.
     Client colour stays as an inset rail rather than a thicker left edge. */
  .rgc.rgc-v716{
    position:relative!important;
    border-radius:var(--ww-roster-shell-radius)!important;
    border-width:1px!important;
    border-style:solid!important;
    border-left-width:1px!important;
    box-shadow:inset 4px 0 0 var(--accent),var(--ww-roster-shell-shadow)!important;
  }
  .rgc.rgc-v716.draft{
    border-width:1px!important;
    border-left-width:1px!important;
    border-style:dashed!important;
    border-radius:var(--ww-roster-shell-radius)!important;
    box-shadow:inset 4px 0 0 var(--accent),var(--ww-roster-shell-shadow)!important;
  }
  .rgc.rgc-v716.priority-next{
    border-left-width:1px!important;
    box-shadow:inset 5px 0 0 var(--accent),0 6px 15px rgba(29,76,44,.115),0 0 0 1px color-mix(in srgb,var(--accent) 13%,transparent)!important;
  }
  .rgc.rgc-v716.priority-progress{
    border-left-width:1px!important;
    box-shadow:inset 4px 0 0 var(--accent),0 4px 13px rgba(50,129,67,.09)!important;
  }
  .rgc.rgc-v716.priority-completed{
    border-left-width:1px!important;
    box-shadow:inset 4px 0 0 var(--accent),0 1px 4px rgba(25,45,28,.03)!important;
  }
  .rgc.rgc-v716:hover{
    border-left-width:1px!important;
    box-shadow:inset 4px 0 0 var(--accent),var(--ww-roster-shell-hover-shadow)!important;
  }
  .rgc.rgc-v716.priority-next:hover{
    box-shadow:inset 5px 0 0 var(--accent),var(--ww-roster-shell-hover-shadow)!important;
  }
}


/* ============================================================
   EarthRoster v722 — Admin roster clean name row + clearer awaiting label
   SCOPE: removes accidental white backing behind client names in admin
   roster cards and clarifies the pending-response badge language.
   ============================================================ */
@media(min-width:1024px){
  body.ww-roster-active .rwg-cell .rgc-v714-client,
  body.ww-roster-active .rwg-cell .rgc-client,
  body.ww-roster-active .rwg-cell .wkc-name{
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    text-shadow:none!important;
    position:relative!important;
    isolation:isolate;
  }
  body.ww-roster-active .rwg-cell .rgc-main,
  body.ww-roster-active .rwg-cell .rgc-v714-top,
  body.ww-roster-active .rwg-cell .rgc-v714-foot{
    background:transparent!important;
  }
  body.ww-roster-active .rwg-cell .rgc.rgc-v716 .rgc-v716-signal.awaiting{
    min-width:max-content;
    padding-inline:7px!important;
  }
}


/* ============================================================
   EarthRoster v723 — Mobile admin readability + clean roster labels
   SCOPE LOCK: admin mobile Dashboard, mobile Add Shift modal, and
   roster-card text backing/status presentation only.
   ============================================================ */

/* Remove every accidental white/text backing inside roster cards. */
body.ww-roster-active .rcard.rc-v716 .rc-v714-title-row,
body.ww-roster-active .rcard.rc-v716 .rc-v714-title-row h3,
body.ww-roster-active .rcard.rc-v716 .rc-v714-body,
body.ww-roster-active .rcard.rc-v716 .rc-v714-range,
body.ww-roster-active .rcard.rc-v716 .rc-v714-range strong,
body.ww-roster-active .rcard.rc-v716 .rc-v714-line,
body.ww-roster-active .rcard.rc-v716 .rc-v714-line span,
body.ww-roster-active .rcard.rc-v716 .rc-v714-staff,
body.ww-roster-active .rcard.rc-v716 .rc-v714-address,
body.ww-roster-active .rgc.rgc-v716 .rgc-v714-client,
body.ww-roster-active .rgc.rgc-v716 .rgc-client,
body.ww-roster-active .rgc.rgc-v716 .wkc-name,
body.ww-roster-active .rgc.rgc-v716 .rgc-main,
body.ww-roster-active .rgc.rgc-v716 .rgc-v714-top,
body.ww-roster-active .rgc.rgc-v716 .rgc-v714-foot{
  background:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
  text-shadow:none!important;
}
body.ww-roster-active .rcard.rc-v716 .rc-v714-title-row h3,
body.ww-roster-active .rgc.rgc-v716 .rgc-v714-client,
body.ww-roster-active .rgc.rgc-v716 .rgc-client,
body.ww-roster-active .rgc.rgc-v716 .wkc-name{
  border:0!important;
  outline:0!important;
}
/* Awaiting/waiting is intentionally not shown as a card badge. The action
   buttons/review queue still communicate that response state where useful. */
body.ww-roster-active .rcard.rc-v716 .rc-v714-status.awaiting,
body.ww-roster-active .rcard.rc-v716 .rc-v716-signal.awaiting,
body.ww-roster-active .rgc.rgc-v716 .rgc-v716-signal.awaiting,
body.ww-roster-active .rgc.rgc-v716 .rgc-status.awaiting{display:none!important;}

@media(max-width:1023px){
  /* Admin Dashboard — readable, calm, professional. */
  .hm{gap:13px!important;max-width:100%!important;}
  .hm .hm-hero.admin{
    min-height:112px!important;
    padding:18px 18px 16px!important;
    border-radius:23px!important;
    background:linear-gradient(145deg,#1d5a35 0%,#123f27 100%)!important;
    box-shadow:0 9px 22px rgba(20,59,34,.18)!important;
  }
  .hm .hm-hero.admin .hm-eyebrow{
    font-size:11px!important;font-weight:850!important;letter-spacing:.11em!important;text-transform:uppercase!important;
    color:rgba(255,255,255,.72)!important;margin-bottom:5px!important;display:block!important;
  }
  .hm .hm-hero.admin .hm-hero-copy h1{
    font-size:27px!important;line-height:1.04!important;font-weight:620!important;letter-spacing:-.025em!important;margin:0 0 7px!important;color:#fff!important;
  }
  .hm .hm-hero.admin .hm-hero-copy p{
    font-size:13.5px!important;line-height:1.3!important;font-weight:650!important;color:rgba(255,255,255,.84)!important;
  }
  /* The dashboard Add shift is redundant on mobile; Roster keeps its Add shift. */
  .hm .hm-hero.admin .hm-hero-add{display:none!important;}

  .hm .ww693-review{
    border-radius:19px!important;background:#fffdf9!important;border:1px solid rgba(44,82,52,.09)!important;
    box-shadow:0 4px 14px rgba(25,58,34,.07)!important;overflow:hidden!important;
  }
  .hm .ww693-review-bar{min-height:76px!important;padding:13px 14px!important;gap:11px!important;}
  .hm .ww693-review-mark{width:36px!important;height:36px!important;min-width:36px!important;border-radius:11px!important;}
  .hm .ww693-review-mark svg{width:17px!important;height:17px!important;}
  .hm .ww693-review-title{min-width:0!important;gap:2px!important;}
  .hm .ww693-review-title small{font-size:8.5px!important;letter-spacing:.13em!important;font-weight:900!important;}
  .hm .ww693-review-title strong{font-size:14.5px!important;line-height:1.12!important;font-weight:850!important;color:#1e3225!important;}
  .hm .ww693-review-title em{font-size:10.5px!important;line-height:1.25!important;color:#7a827b!important;font-weight:600!important;}
  .hm .ww693-review-toggle{min-height:40px!important;padding:0 9px 0 11px!important;border-radius:12px!important;gap:7px!important;}
  .hm .ww702-review-action{font-size:10px!important;font-weight:850!important;white-space:nowrap!important;}
  .hm .ww702-review-count{min-width:27px!important;height:27px!important;font-size:10px!important;}

  .hm .hm-admin-shortcuts{display:grid!important;gap:10px!important;}
  .hm .hm-avail{
    min-height:62px!important;padding:10px 13px!important;border-radius:17px!important;background:#fff!important;
    border:1px solid rgba(37,75,46,.09)!important;box-shadow:0 3px 10px rgba(24,59,33,.055)!important;
  }
  .hm .hm-avail-ic{width:38px!important;height:38px!important;min-width:38px!important;border-radius:12px!important;}
  .hm .hm-avail-ic svg{width:18px!important;height:18px!important;}
  .hm .hm-avail-txt strong{font-size:14px!important;line-height:1.15!important;font-weight:850!important;color:#203427!important;}
  .hm .hm-avail-txt span{font-size:10.5px!important;line-height:1.2!important;color:#7c867e!important;margin-top:2px!important;}
  .hm .hm-live-pill{font-size:9px!important;padding:5px 8px!important;}
  .hm .hm-avail-go svg{width:16px!important;height:16px!important;}

  .hm .hm-sec-head.hm-roster-head{margin-top:2px!important;padding:0 3px!important;gap:8px!important;align-items:center!important;}
  .hm .hm-sec-head.hm-roster-head h2{font-size:22px!important;line-height:1.1!important;font-weight:620!important;letter-spacing:-.02em!important;}
  .hm .hm-pill{font-size:10.5px!important;padding:4px 9px!important;font-weight:800!important;}
  .hm .home-roster-list{display:grid!important;gap:9px!important;}

  /* New roster job — undo over-compression on mobile and restore readable hierarchy. */
  body[data-modal-type="shift"] .shift-modal{
    width:min(calc(100vw - 18px),620px)!important;
    max-height:calc(100dvh - 18px)!important;
    border-radius:22px!important;
    background:#fbfaf6!important;
    box-shadow:0 24px 60px rgba(20,39,25,.28)!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-head{
    min-height:68px!important;padding:14px 17px!important;border-bottom:1px solid rgba(40,70,45,.08)!important;background:#fbfaf6!important;
  }
  body[data-modal-type="shift"] .shift-modal .modal-head h2{font-size:23px!important;line-height:1.05!important;font-weight:620!important;letter-spacing:-.02em!important;}
  body[data-modal-type="shift"] .shift-modal .modal-x{width:42px!important;height:42px!important;border-radius:13px!important;}
  body[data-modal-type="shift"] .shift-modal .modal-body{padding:12px 12px 18px!important;gap:10px!important;}
  body[data-modal-type="shift"] .ww515-step,
  body[data-modal-type="shift"] .ww527-setting-card{
    border-radius:17px!important;padding:12px!important;background:#fff!important;border:1px solid rgba(40,78,48,.09)!important;
    box-shadow:0 2px 8px rgba(25,54,31,.045)!important;
  }
  body[data-modal-type="shift"] .ww515-step-head{min-height:38px!important;margin-bottom:9px!important;padding-bottom:8px!important;gap:10px!important;}
  body[data-modal-type="shift"] .ww515-step-num{width:30px!important;height:30px!important;min-width:30px!important;border-radius:10px!important;font-size:13px!important;}
  body[data-modal-type="shift"] .ww515-step-head strong{font-size:15px!important;line-height:1.1!important;font-weight:850!important;}
  body[data-modal-type="shift"] .ww515-step-head small{font-size:10.5px!important;line-height:1.2!important;margin-top:2px!important;}
  body[data-modal-type="shift"] .client-search-box{min-height:48px!important;height:48px!important;border-radius:13px!important;padding:0 12px!important;}
  body[data-modal-type="shift"] .client-search-box input{font-size:15px!important;font-weight:600!important;}
  body[data-modal-type="shift"] .client-search-box svg{width:18px!important;height:18px!important;}
  body[data-modal-type="shift"] .add-client-toggle{min-height:43px!important;height:43px!important;border-radius:12px!important;font-size:13px!important;font-weight:800!important;padding:0 12px!important;}
  body[data-modal-type="shift"] .field>label,
  body[data-modal-type="shift"] .ww515-date-start-grid label{font-size:10.5px!important;line-height:1.1!important;margin-bottom:6px!important;}
  body[data-modal-type="shift"] .input,
  body[data-modal-type="shift"] select.input{min-height:43px!important;height:43px!important;border-radius:11px!important;font-size:13px!important;padding:0 11px!important;}
  body[data-modal-type="shift"] textarea.input{height:auto!important;min-height:78px!important;padding:10px 11px!important;}
}

@media(max-width:390px){
  .hm .hm-hero.admin{padding:16px 16px 15px!important;min-height:106px!important;}
  .hm .hm-hero.admin .hm-hero-copy h1{font-size:25px!important;}
  .hm .ww693-review-bar{padding:12px!important;}
  .hm .ww693-review-title strong{font-size:13.8px!important;}
  .hm .ww702-review-action{display:none!important;}
  body[data-modal-type="shift"] .shift-modal .modal-head h2{font-size:21px!important;}
}

