

@font-face{
  font-family:"Inter";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url("../fonts/Inter-Variable.woff2") format("woff2-variations"),
      url("../fonts/Inter-Variable.woff2") format("woff2");
}

@font-face{
  font-family:"Manrope";
  font-style:normal;
  font-weight:200 800;
  font-display:swap;
  src:url("../fonts/Manrope-Variable.woff2") format("woff2-variations"),
      url("../fonts/Manrope-Variable.woff2") format("woff2");
}

/*
  FleetTap global stylesheet
  ---------------------------
  This file collects the shared tokens, layouts, components, and utilities used across
  the FleetTap UI. Each section is annotated to clarify the purpose of the selectors
  that follow so future edits are easier to reason about without changing behavior.

  Section outline
  1) Motion primitives
  2) Theme tokens and base element resets
  3) Typography and global links
  4) Utility helpers
  5) Role banners, notifications, and header shell
  6) Navigation (bottom bar, footer, loaders)
  7) Page/layout scaffolding, cards, hero blocks
  8) Auth layout
  9) Toolbars and search controls
  10) Scheduling/day picker helpers
  11) Form controls and password toggles
  12) Tables and frozen column helpers
  13) Schedule rows and inline actions
  14) Suggest/autocomplete menus
  15) Buttons, pills, and quick actions
  16) Alerts, badges, and admin callouts
  17) Status chips and inline tags
  18) Misc components (galleries, helpers, cards)
  19) Modal framework and job detail shells
  20) Job form builder and admin settings
  21) Directory, roster, and team views
*/

/* 1) Motion primitives */
@keyframes spin { to { transform: rotate(360deg); } }

@keyframes dropdown-fade { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }

@keyframes slide-up { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }




/* SEMANTIC TOKENS */
:root{
  --shadow-sm:0 1px 2px rgba(15, 23, 42, 0.06);
  --shadow:0 10px 20px rgba(2, 6, 23, 0.15);
  --shadow-lg:0 14px 28px rgba(15, 23, 42, 0.18);
  --radius-sm:8px;
  --radius:12px;
  --radius-lg:16px;
  --pad:14px;
  --modal-w:min(720px, 92vw);
  --z-backdrop:45;
  --z-modal:50;
  --z-tooltip:60;
  --ft-safe-top:env(safe-area-inset-top, 0px);
  --ft-sticky-offset:0px;
  --ft-base-type:16px;
  --ft-type-hero-title:clamp(1.1rem, 0.95rem + 1vw, 1.35rem);
  --ft-type-hero-subtitle:clamp(0.9rem, 0.84rem + 0.4vw, 1rem);
  --ft-ring:2px;
  --ring:var(--ft-ring);
  --navy-300:#96a4bc;
  --line:var(--color-border-strong, #cbd5e1);
  --scrollbar:color-mix(in srgb, var(--line) 82%, transparent);
  --scrollbar-hover:color-mix(in srgb, var(--navy-300, var(--color-text-muted)) 78%, transparent);
  scroll-padding-top:0;
}

/* THEME: MODERN NAVY */
:root,
:root[data-theme="modern-navy"]{
  --color-bg:#f8fafc;
  --color-bg-alt:#f6f8fb;
  --color-surface:#ffffff;
  --color-surface-alt:#e6edf6;
  --color-border:#e2e8f0;
  --color-border-strong:#cbd5e1;
  --color-text:#0f172a;
  --color-text-muted:#475569;
  --color-primary:#3157ff;
  --color-primary-hover:#2749e6;
  --color-primary-active:#1f3bbf;
  --color-accent:#4a63d8;
  --color-danger:#ef4444;
  --color-success:#22c55e;
  --color-warn:#f59e0b;
  --color-header-bg:linear-gradient(180deg, #0f172a, #1e293b);
  --color-header-text:#f1f5f9;
  --color-card-bg:#ffffff;
  --color-modal-bg:#ffffff;
  --tint-primary:color-mix(in srgb, var(--color-primary) 12%, transparent);
  --tint-accent:color-mix(in srgb, var(--color-accent) 12%, transparent);
  --tint-success:color-mix(in srgb, var(--color-success) 10%, transparent);
  --tint-warn:color-mix(in srgb, var(--color-warn) 12%, transparent);
  --tint-danger:color-mix(in srgb, var(--color-danger) 10%, transparent);
  --ft-header-surface:var(--color-header-bg);
  --ft-header-solid:#0f172a;
}

/* THEME: DARK SLATE */
:root[data-theme="dark-slate"]{
  --color-bg:#0B1018;
  --color-bg-alt:#111827;
  --color-surface:#111827;
  --color-surface-alt:#182130;
  --color-border:#2C3444;
  --color-border-strong:#3A4458;
  --color-text:#E2E8F0;
  --color-text-muted:#9CA3AF;
  --color-primary:#8FA6C5;
  --color-primary-hover:#7F93B1;
  --color-primary-active:#6A7D99;
  --color-accent:#A6B4C8;
  --color-danger:#F87171;
  --color-success:#34D399;
  --color-warn:#FBBF24;
  --color-header-bg:#0A0F1C;
  --color-header-text:#E2E8F0;
  --color-card-bg:#0F1623;
  --color-modal-bg:#0F1623;
  --tint-primary:color-mix(in srgb, var(--color-primary) 14%, transparent);
  --tint-accent:color-mix(in srgb, var(--color-accent) 14%, transparent);
  --tint-success:color-mix(in srgb, var(--color-success) 18%, transparent);
  --tint-warn:color-mix(in srgb, var(--color-warn) 18%, transparent);
  --tint-danger:color-mix(in srgb, var(--color-danger) 16%, transparent);
  --ft-header-surface:var(--color-header-bg);
  --ft-header-solid:#0A0F1C;
}

/* THEME: WARM AMBER */
:root[data-theme="warm-amber"]{
  --color-bg:#FEF8EE;
  --color-bg-alt:#FFF7E6;
  --color-surface:#FFFFFF;
  --color-surface-alt:#FDEAD5;
  --color-border:#F5D7A1;
  --color-border-strong:#E9C37C;
  --color-text:#3B2F2F;
  --color-text-muted:#8C6F4E;
  --color-primary:#D97706;
  --color-primary-hover:#B45309;
  --color-primary-active:#92400E;
  --color-accent:#F59E0B;
  --color-danger:#DC2626;
  --color-success:#22C55E;
  --color-warn:#F97316;
  --color-header-bg:#D97706;
  --color-header-text:#FFF7E6;
  --color-card-bg:#FFFFFF;
  --color-modal-bg:#FFFFFF;
  --tint-primary:color-mix(in srgb, var(--color-primary) 16%, transparent);
  --tint-accent:color-mix(in srgb, var(--color-accent) 16%, transparent);
  --tint-success:color-mix(in srgb, var(--color-success) 16%, transparent);
  --tint-warn:color-mix(in srgb, var(--color-warn) 18%, transparent);
  --tint-danger:color-mix(in srgb, var(--color-danger) 16%, transparent);
  --ft-header-surface:var(--color-header-bg);
  --ft-header-solid:#D97706;
}

/* THEME: DEEP PURPLE */
:root[data-theme="deep-purple"]{
  --color-bg:#f3f0ff;
  --color-bg-alt:#ebe6ff;
  --color-surface:#ffffff;
  --color-surface-alt:#e4dbff;
  --color-border:#d7d1ff;
  --color-border-strong:#c5bdf5;
  --color-text:#1f1247;
  --color-text-muted:#5b4a86;
  --color-primary:#5b21b6;
  --color-primary-hover:#4c1d95;
  --color-primary-active:#3b176f;
  --color-accent:#7c3aed;
  --color-danger:#e11d48;
  --color-success:#16a34a;
  --color-warn:#f59e0b;
  --color-header-bg:#3b176f;
  --color-header-text:#f7f5ff;
  --color-card-bg:#ffffff;
  --color-modal-bg:#ffffff;
  --tint-primary:color-mix(in srgb, var(--color-primary) 14%, transparent);
  --tint-accent:color-mix(in srgb, var(--color-accent) 14%, transparent);
  --tint-success:color-mix(in srgb, var(--color-success) 14%, transparent);
  --tint-warn:color-mix(in srgb, var(--color-warn) 16%, transparent);
  --tint-danger:color-mix(in srgb, var(--color-danger) 14%, transparent);
  --ft-header-surface:var(--color-header-bg);
  --ft-header-solid:#2d0f59;
}

/* THEME: CRIMSON CREAM */
:root[data-theme="crimson-cream"]{
  --color-bg:#fff8f2;
  --color-bg-alt:#fff1e6;
  --color-surface:#ffffff;
  --color-surface-alt:#ffe6d8;
  --color-border:#f4d1c5;
  --color-border-strong:#e7b5a3;
  --color-text:#2b0f12;
  --color-text-muted:#7a4a3f;
  --color-primary:#b11226;
  --color-primary-hover:#8f0f1f;
  --color-primary-active:#6f0c19;
  --color-accent:#d7263d;
  --color-danger:#c1121f;
  --color-success:#15803d;
  --color-warn:#f97316;
  --color-header-bg:#8f0f1f;
  --color-header-text:#fff6ef;
  --color-card-bg:#ffffff;
  --color-modal-bg:#ffffff;
  --tint-primary:color-mix(in srgb, var(--color-primary) 14%, transparent);
  --tint-accent:color-mix(in srgb, var(--color-accent) 14%, transparent);
  --tint-success:color-mix(in srgb, var(--color-success) 16%, transparent);
  --tint-warn:color-mix(in srgb, var(--color-warn) 16%, transparent);
  --tint-danger:color-mix(in srgb, var(--color-danger) 14%, transparent);
  --ft-header-surface:var(--color-header-bg);
  --ft-header-solid:#6f0c19;
}

  *, *::before, *::after{box-sizing:border-box;}

  /* Base document sizing, safe defaults for media elements, and input inheritance */
    html{-webkit-text-size-adjust:100%; }
    body{margin:0;padding:0;background:var(--color-bg);color:var(--color-text);font-family:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;line-height:1.5;text-rendering:optimizeLegibility;display:flex;flex-direction:column;min-height:100vh;font-size:var(--ft-base-type, 16px);}
  main{flex:1 0 auto;display:flex;flex-direction:column;width:100%;gap:0;align-items:stretch;padding-top:0;scroll-padding-top:0;}

  img, svg, video{display:block;max-width:100%;}

  button, input, select, textarea{font:inherit;color:inherit;}



  /* 3) Typography and global link rules */
  h1, h2, h3, .ft-modal-title, .ft-toolbar-title, .ft-brand-title{font-family:"Manrope", "Inter", system-ui, sans-serif;}
  h1{font-size:clamp(1.5rem, 1.1rem + 1.5vw, 2rem);font-weight:700;}
  h2{font-size:clamp(1.25rem, 1rem + 1vw, 1.6rem);font-weight:700;}
  h3{font-size:1.125rem;font-weight:600;}

  p{font-size:0.95rem;}

  @media (max-width: 768px){
    :root{
      --ft-base-type:clamp(13.25px, 3.4vw, 14.5px);
      --ft-type-hero-title:clamp(0.94rem, 0.84rem + 1vw, 1.16rem);
      --ft-type-hero-subtitle:clamp(0.78rem, 0.72rem + 0.65vw, 0.92rem);
    }

    h1{font-size:clamp(1.14rem, 1.0rem + 1.35vw, 1.7rem);}
    h2{font-size:clamp(1.01rem, 0.92rem + 1.05vw, 1.42rem);}
    h3{font-size:0.98rem;}
    p{font-size:0.9rem;}
  }

  a{color:var(--color-primary);text-decoration:none;}
  a:hover{text-decoration:underline;}

  hr{border:0;border-top:1px solid var(--color-border);margin:1rem 0;}




  /* 4) Utility helpers for quick layout tweaks */
  .flex{display:flex;}
  .items-center{align-items:center;}
  .flex-wrap{flex-wrap:wrap;}


  .gap-4{gap:1rem;}
  .mt-3{margin-top:.75rem;}
  .mb-3{margin-bottom:.75rem;}
  .mb-4{margin-bottom:1rem;}
  .p-4{padding:1rem;}
  .ml-auto{margin-left:auto;}
  .grid-span-full{grid-column:1 / -1;}


  .text-muted{color:var(--color-text-muted);}
  .faded{color:var(--color-text-muted);opacity:.86;font-weight:600;}
  .ft-section-title{font-weight:700;margin:0 0 8px;}
  .ft-prewrap{white-space:pre-wrap;}
  .hidden{display:none !important;}
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}





  /* 5) Role banners, error surfaces, and header shell */
  .ft-role-banner{position:relative;z-index:40;background:linear-gradient(90deg, rgba(49,87,255,.12), rgba(49,87,255,.04));border-bottom:1px solid var(--color-border);}
  .ft-role-banner__inner{max-width:1200px;margin:0 auto;padding:6px min(4vw, 20px);display:flex;align-items:center;gap:8px;justify-content:flex-start;flex-wrap:wrap;}
  .ft-role-chip{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:14px;background:var(--color-surface);border:1px dashed var(--color-border-strong);box-shadow:var(--shadow-sm);font-size:0.92rem;letter-spacing:.01em;min-height:40px;}
  .ft-role-chip--action{align-items:center;gap:10px;padding:6px 12px;}
  .ft-role-chip__label{font-size:0.82rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:800;white-space:nowrap;}
  .ft-role-chip__value{font-weight:800;color:var(--color-text);}
  .ft-role-chip__stack{display:flex;flex-direction:row;gap:8px;align-items:center;}
  .ft-role-chip__actions{display:flex;align-items:center;gap:8px;}
  .ft-role-chip__button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--color-border-strong);background:var(--color-bg-alt);color:var(--color-text);padding:6px 10px;border-radius:10px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-sm);transition:background .15s ease,transform .15s ease;white-space:nowrap;}
  .ft-role-chip__button:hover{background:var(--color-surface-alt);transform:translateY(-1px);}
  .ft-role-chip__badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;min-height:22px;border-radius:999px;background:var(--color-danger);color:var(--color-surface);padding:0 6px;font-weight:700;font-size:0.8rem;box-shadow:var(--shadow-sm);}

  .ft-error-log{position:fixed;top:70px;right:20px;max-width:480px;width:calc(100% - 40px);background:var(--color-surface);border:1px solid var(--color-border-strong);box-shadow:var(--shadow-lg);border-radius:12px;z-index:1200;display:flex;flex-direction:column;gap:0;overflow:hidden;}
  .ft-error-log__header{display:flex;align-items:flex-start;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--color-border-strong);gap:12px;}
  .ft-error-log__title{font-weight:800;color:var(--color-text);}
  .ft-error-log__subtitle{color:var(--color-text-muted);font-size:0.9rem;}
  .ft-error-log__header-actions{display:flex;gap:6px;}
  .ft-error-log__body{max-height:340px;overflow:auto;background:linear-gradient(180deg, rgba(248,250,252,.4), var(--color-surface));padding:10px;display:flex;flex-direction:column;gap:10px;}
  .ft-error-log__entry{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:10px;padding:10px;box-shadow:var(--shadow-sm);}
  .ft-error-log__entry-title{font-weight:700;color:var(--color-danger);margin-bottom:4px;}
  .ft-error-log__entry-meta{color:var(--color-text-muted);font-size:0.88rem;margin-bottom:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
  .ft-error-log__entry-detail{white-space:pre-wrap;font-family:var(--font-mono, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-size:0.9rem;color:var(--color-text);background:var(--color-bg-alt);border-radius:8px;padding:8px;margin:0;overflow:auto;}
  .ft-error-log__empty{padding:12px;color:var(--color-text-muted);text-align:center;}



  .ft-header{position:relative;width:100%;z-index:inherit;background:var(--ft-header-surface, var(--color-header-bg));color:var(--color-header-text);box-shadow:var(--shadow);padding-top:var(--ft-safe-top, 0px);}
  .ft-header-inner{width:100%;margin:0;padding:16px min(4vw, 24px);display:flex;align-items:center;justify-content:space-between;gap:12px;}
  .ft-header-actions{display:flex;align-items:center;gap:8px;margin-left:auto;}

  .ft-brand{display:flex;align-items:center;gap:10px;}
  .ft-brand-logo{width:50px;height:50px;border-radius:8px;background:var(--color-text);box-shadow:inset 0 0 10px rgba(255,255,255,0.2); padding: 2px;}
  .ft-brand-logo img{width:100%;height:100%;object-fit:contain;border-radius:var(--radius-sm, 8px);background:var(--color-text);}
  .ft-brand-title{font-weight:700;letter-spacing:.2px;font-size:1.1rem;}

  .ft-logo--footer{width:150px;height:auto;}

  .ft-actions{display:flex;gap:8px;}
  .ft-nav{display:flex;align-items:center;gap:12px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end;}
  .ft-nav__primary{flex-wrap:wrap;}
  .ft-nav__utilities{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .ft-nav__utilities--mobile{display:none;margin-left:auto;}
  .ft-nav__divider{width:1px;min-width:1px;align-self:stretch;background:color-mix(in srgb, var(--color-border-strong) 40%, transparent);border-radius:999px;opacity:.65;}
  .ft-nav-utility-btn{--btn-bg:var(--color-primary);--btn-color:var(--color-surface);--btn-bg-hover:var(--color-primary-hover);--btn-bg-active:var(--color-primary-active);border-color:transparent;box-shadow:var(--shadow-sm);gap:0;}
  .ft-nav-utility-btn svg{width:18px;height:18px;}
  .ft-nav-utility-btn .ft-mail-badge{top:-6px;right:-6px;}
  .ft-nav-utility-label{font-weight:700;white-space:nowrap;color:var(--color-header-text);}

  /* 6) Navigation surfaces: mobile bottom tabs, footer, and loaders */
  /* Mobile bottom nav (primary app tabs) */
  .ft-bottom-nav{
    --ft-bottom-nav-height:72px;
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:1100;
    display:none; /* hidden by default, enabled via media query */
    padding:6px 10px calc(6px + env(safe-area-inset-bottom, 0px));
    background:linear-gradient(180deg, var(--color-text), var(--color-text));
    border-top:1px solid rgba(148, 163, 184, 0.4);
    box-shadow:0 -4px 12px rgba(15, 23, 42, 0.4);
    height:var(--ft-bottom-nav-height);
    align-items:center;
    justify-content:space-around;
    gap:4px;
  }

  .ft-bottom-nav__item{
    flex:1 1 0;
    min-width:0;
    max-width:120px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    padding:6px 4px;
    border-radius:999px;
    border:none;
    background:transparent;
    color:var(--color-border);
    font-size:0.78rem;
    font-weight:600;
    text-align:center;
    cursor:pointer;
  }

  .ft-bottom-nav__item svg{
    display:block;
  }

  .ft-bottom-nav__item span{
    line-height:1.1;
    white-space:nowrap;
  }

  .ft-bottom-nav__item:active{
    background:rgba(148, 163, 184, 0.2);
  }

  .ft-footer{margin-top:0;background:var(--ft-header-surface, var(--color-header-bg, var(--color-text)));color:var(--color-header-text, var(--color-border-strong));font-size:.9rem;}
  .ft-footer-inner{width:100%;margin:0;padding:16px min(4vw, 24px);display:flex;align-items:center;justify-content:space-between;gap:10px;}
  .ft-theme-select{display:flex;align-items:center;gap:8px;}
  .ft-theme-select select{appearance:none;padding:8px 12px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-card-bg);color:var(--color-text);font-weight:700;min-width:170px;box-shadow:var(--shadow-sm);}
  .ft-theme-select select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;}
  .ft-footer-meta{display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:2px;color:color-mix(in srgb, var(--color-header-text, var(--color-text)) 82%, transparent);}
  .ft-footer-meta__label{font-size:.8rem;color:color-mix(in srgb, var(--color-header-text, var(--color-text-muted)) 70%, transparent);}
  .ft-footer-meta__value{font-weight:700;color:var(--color-header-text, var(--color-text));}
  .ft-footer-meta__time{font-size:.95rem;color:var(--color-header-text, var(--color-text));}
  .htmx-indicator{display:none;}
  .htmx-indicator.htmx-request{display:flex;}
  .ft-logo-spinner{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.9rem;}
  .ft-logo-spinner img{width:36px;height:36px;animation:ft-logo-spin 1s linear infinite;background:var(--ft-header-solid);border-radius:999px;padding:8px;box-shadow:var(--shadow-sm);}
  .ft-logo-spinner--overlay{flex-direction:column;color:var(--color-surface);text-shadow:0 1px 2px rgba(15,23,42,.5);}
  .ft-logo-spinner--overlay img{width:54px;height:54px;filter:drop-shadow(0 2px 6px rgba(15,23,42,.35));padding:12px;background:var(--ft-header-solid);border-radius:999px;}
  .ft-global-loader{position:fixed;inset:0;background:rgba(15,23,42,.4);display:flex;align-items:center;justify-content:center;z-index:calc(var(--z-modal,50) + 5);opacity:0;pointer-events:none;transition:opacity .2s ease;}
  .ft-global-loader.is-visible{opacity:1;}
  @keyframes ft-logo-spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}




  /* 7) Page scaffolding: wrappers, dashboard stacks, cards, hero blocks */
  .ft-wrap {width:100%; max-width:none; margin:0; padding:0;}
  .ft-wrap--dashboard{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;margin:0;flex:1 1 auto;}
  .ft-dashboard-stack{display:flex;flex-direction:column;gap:0;margin:0 auto;width:100%;flex:1 1 auto;}
  .ft-dashboard-stack > .ft-card{margin:0;border-radius:0;border:0;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);box-shadow:none;}
  .ft-dashboard-stack > .ft-card + .ft-card{border-top:1px solid var(--color-border);}
  .ft-dashboard-stack > .ft-card:first-child{border-top:1px solid var(--color-border);border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);box-shadow:var(--shadow);}
  .ft-dashboard-stack > .ft-card:last-child{border-bottom:1px solid var(--color-border);border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);box-shadow:var(--shadow);}
  .ft-dashboard-stack > .ft-card:only-child{border-radius:var(--radius);box-shadow:var(--shadow);}
  .ft-dashboard-stack > .ft-sticky-shell{margin:0;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);box-shadow:var(--shadow);border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);background:var(--color-bg);z-index:var(--z-tooltip);}

  /* Full-width surfaces (hero, toolbar, content) should sit flush to screen edges */
  .ft-wrap--dashboard > .ft-card,
  .ft-wrap--dashboard .ft-page-header-shell > .ft-card,
  .ft-wrap--dashboard #ft-page-hero .ft-card,
  .ft-wrap--dashboard #ft-page-toolbar .ft-card,
  .ft-wrap--dashboard #ft-page-main .ft-card,
  .ft-wrap--dashboard .ft-dashboard-stack > .ft-card,
  .ft-wrap--dashboard .ft-dashboard-stack > .ft-sticky-shell > .ft-card{
    border-radius:0;
  }
  .ft-dashboard-stack > .ft-sticky-shell + .ft-card{border-top:1px solid var(--color-border);}

  .ft-sticky-shell{position:sticky;top:0;z-index:1000;background:var(--color-bg);display:flex;flex-direction:column;gap:0;}
  .ft-sticky-shell > .ft-card{border-radius:0;border-left:0;border-right:0;box-shadow:none;}
  .ft-sticky-shell > .ft-card:first-child{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius);}
  .ft-sticky-shell > .ft-card:last-child{border-bottom:1px solid var(--color-border);}

  .ft-page-toolbar{position:relative;z-index:10;}

  .ft-dashboard-lanes{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:0;
    align-items:stretch;
  }
  @media (max-width: 960px){
    .ft-dashboard-lanes{
      --lane-peek:6%;
      display:flex;
      gap:0;
      overflow-x:auto;
      padding:0;
      scroll-snap-type:x mandatory;
      scroll-padding-inline:var(--lane-peek);
      -webkit-overflow-scrolling:touch;
      scrollbar-width:none;
    }
    .ft-dashboard-lanes::-webkit-scrollbar{display:none;}
    .ft-dashboard-lanes > .ft-card{
      flex:0 0 88%;
      min-width:88%;
      scroll-snap-align:center;
      height:100%;
    }
  }

  .ft-card {
    --card-accent: var(--ft-card-accent, var(--color-primary));
    --card-accent-strong: var(--ft-card-accent-strong, var(--color-primary-active));
    --card-surface: var(--color-card-bg);
    --card-accent-contrast: var(--ft-card-accent-contrast, 12%);
    --card-accent-border: var(--ft-card-accent-border, 22%);
    --card-header-contrast: color-mix(in srgb, var(--card-accent) var(--card-accent-contrast), var(--card-surface));
    --card-header-border: color-mix(in srgb, var(--card-accent-strong) var(--card-accent-border), var(--color-border));
    --card-header-text: color-mix(in srgb, var(--color-text) 88%, var(--card-accent) 12%);
    --card-accent-soft: color-mix(in srgb, var(--card-accent) 16%, var(--card-surface));
    --card-accent-tint: color-mix(in srgb, var(--card-accent) 12%, var(--card-surface));
    background:var(--card-surface);
    border:1px solid var(--color-border);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
    overflow:hidden;
  }
  .ft-card--accent{
    background:linear-gradient(180deg, var(--card-surface, var(--color-card-bg)) 0%, var(--card-accent-tint) 100%);
    border-left:4px solid var(--card-accent);
  }
  .ft-card--welcome {border:1px solid var(--color-border); padding: 1rem; background:linear-gradient(180deg, var(--color-surface), var(--tint-primary));box-shadow:var(--shadow);}
  .ft-hero{
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    align-items:start;
    gap:1rem;
    width:100%;
  }
  .ft-hero__copy{
    flex:1;
    min-width:220px;
  }
  .ft-hero__title{
    font-weight:700;
    font-size:var(--ft-type-hero-title);
    color:var(--color-text-muted);
  }
  .ft-hero__subtitle{
    font-size:var(--ft-type-hero-subtitle);
    color:var(--muted);
  }
  .ft-hero__actions{
    display:flex;
    align-items:center;
    gap:0.5rem;
    margin-left:0;
    flex:0 0 auto;
    justify-content:flex-end;
    justify-self:end;
  }
  .ft-hero__actions .ft-btn--icon{
    min-width:2.6rem;
    width:2.6rem;
  }
  .ft-hero__actions .ft-btn--icon svg{
    width:18px;
    height:18px;
  }
  .dashboard-mobile-only{display:inline-flex;}
  @media (max-width: 768px){
    .ft-hero{
      grid-template-columns:minmax(0, 1fr) auto;
      justify-items:start;
      align-items:start;
    }
    .ft-hero__subtitle{line-height:1.45;}
    .ft-hero__actions{
      width:auto;
      align-self:start;
    }
  }
  @media (min-width: 768px){
    .dashboard-mobile-only{display:none !important;}
  }
  .ft-card .ft-card-body{padding:0px;}

  .ft-card--lane{
    border-radius:0;
    border:1px solid var(--color-border);
    box-shadow:none;
    overflow:hidden;
  }
  .ft-dashboard-lanes .ft-card--schedule{
    overflow:visible;
  }
  @media (max-width: 960px){
    .ft-dashboard-lanes > .ft-card.ft-card--schedule{
      min-height:100%;
    }
  }
  .ft-card[data-accent="scheduled"],
  .ft-card[data-accent="schedule"],
  .ft-card[data-accent="default"],
  .ft-card[data-accent="created"],
  .ft-card[data-accent="favorite"],
  .ft-card[data-accent="tracking"]{
    --card-accent: var(--color-primary);
    --card-accent-strong: var(--color-primary-active);
    --card-accent-contrast: 12%;
    --card-accent-border: 22%;
  }
  .ft-card[data-accent="quick-tap"]{
    --card-accent: var(--color-accent);
    --card-accent-strong: color-mix(in srgb, var(--color-accent) 78%, var(--color-text));
    --card-accent-contrast: 24%;
    --card-accent-border: 32%;
    --card-header-text: color-mix(in srgb, var(--color-text) 82%, var(--card-accent) 18%);
  }
  .ft-card[data-accent="personal"],
  .ft-card[data-accent="personal-schedule"]{
    --card-accent: var(--color-primary);
    --card-accent-strong: var(--color-primary-active);
    --card-accent-contrast: 12%;
    --card-accent-border: 22%;
  }
  .ft-empty-state{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:20px 12px;
    text-align:center;
    color:var(--card-accent-strong);
    background:linear-gradient(180deg, var(--color-surface) 0%, var(--card-accent-soft));
  }
  .ft-empty-state__icon{
    width:42px;
    height:42px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:color-mix(in srgb, var(--card-accent) 16%, var(--color-surface));
    color:var(--card-accent-strong);
    box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--card-accent) 28%, transparent);
  }
  .ft-empty-state__icon-btn{
    border:0;
    padding:0;
    background:transparent;
    cursor:pointer;
  }
  .ft-empty-state__icon-btn:focus-visible{
    outline:2px solid var(--card-accent-strong);
    outline-offset:2px;
  }
  .ft-empty-state__icon svg{width:24px;height:24px;}
  .ft-empty-state__title{font-weight:700;}
  .ft-empty-state__hint{margin:0;color:var(--color-text-muted);font-size:.92rem;}
  .ft-empty-state--files{
    --card-accent: var(--color-primary);
    --card-accent-strong: var(--color-primary-active);
    --card-accent-soft: rgba(49, 87, 255, 0.12);
    background: var(--card-accent-soft);
    border-radius: var(--radius);
    padding:18px 12px;
  }
  .ft-announcement-list .ft-empty-state,
  .ft-directory-list .ft-empty-state{
    --card-accent: var(--color-primary);
    --card-accent-strong: var(--color-primary-active);
    --card-accent-soft: rgba(49, 87, 255, 0.12);
    border:1px solid color-mix(in srgb, var(--card-accent) 16%, var(--color-border));
    border-radius:0;
  }
  .ft-dashboard-stack > .ft-card.ft-card--accent{
    border-left-width:4px;
  }
  .ft-card--lane .ft-toolbar{
    align-items:flex-start;
    padding:10px 12px;
    gap:6px;
    background:transparent;
    border-bottom:1px solid var(--color-border);
  }
  .ft-card--accent .ft-toolbar{
    background:var(--card-header-contrast);
    border-bottom-color:var(--card-header-border);
  }
  .ft-card--lane .ft-card-title{
    display:flex;
    align-items:center;
    gap:8px;
    color:var(--color-text);
    font-weight:700;
  }
  .ft-card--lane .ft-card-title svg{color:inherit;}

  /* 8) Auth pages and welcome panel styling */
  .ft-auth-layout{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(48px,8vh,96px) min(4vw, 32px) clamp(40px,10vh,120px);gap:32px;width:100%;max-width:100vw;overflow-x:hidden;}

  .ft-auth-card{width:100%;max-width:420px;padding:clamp(24px,6vw,40px);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin-inline:auto;}
  .ft-auth-card .form-title{margin:0;}
  .ft-auth-card .form-actions{margin-top:8px;}

  .ft-auth-card__head{display:flex;align-items:center;gap:12px;margin-bottom:16px;}

  .ft-auth-card__badge{width:56px;height:56px;border-radius:14px;background:var(--color-text);
    display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,0.08);
    color:var(--color-border);}

  .ft-auth-card__badge svg{width:28px;height:28px;display:block;}

  .ft-auth-card__welcome{color:var(--color-text-muted);font-size:.95rem;}

  .ft-auth-grid-1{grid-template-columns:1fr;}
  .ft-auth-alert{margin:12px 0;}
  .ft-auth-remember{display:flex;align-items:center;gap:8px;color:var(--color-text-muted);font-size:.95rem;}
  .ft-auth-remember input{transform:translateY(1px);}
  .ft-auth-actions{justify-content:space-between;align-items:center;gap:12px;}
  .ft-auth-actions--center{justify-content:center;}
  .ft-auth-links{margin-top:12px;display:flex;justify-content:space-between;gap:10px;}

  .ft-auth-logo-slot{display:flex;align-items:center;justify-content:center;width:104px;height:104px;padding:16px;border-radius:9999px;background:var(--ft-header-solid);box-shadow:var(--shadow-lg);}

  .ft-auth-logo-slot img{max-width:72px;max-height:72px;width:100%;height:auto;display:block;filter:drop-shadow(0 10px 22px rgba(15, 23, 42, 0.2));}

  /* 9) Toolbars, search rows, and inline control wrappers */
  .ft-toolbar {display:flex; border-bottom:1px solid var(--color-border);background:var(--color-bg-alt);flex-wrap:wrap;justify-content:center;text-align:center;gap:0px;align-items:stretch;flex-direction:column;}
  .ft-toolbar form {display:flex;gap:10px;flex:1;margin:0 auto;width:100%;justify-content:center;}


  .ft-toolbar .title{font-weight:700;color:var(--color-text-muted);white-space:nowrap;}
  .ft-toolbar .sep{width:1px;height:22px;background:var(--color-border);display:inline-block;}

  .ft-toolbar.ft-toolbar--split{flex-direction:row;align-items:center;justify-content:space-between;gap:14px;}

  .ft-toolbar-actions{display:flex;align-items:center;gap:10px;}

  .ft-page-toolbar[data-date-picker]{display:flex;flex-direction:column;gap:.35rem;}
.ft-date-picker{position:relative;display:flex;align-items:stretch;flex-direction:column;gap:10px;}
.ft-date-picker__button{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--color-text);padding:.4rem .65rem;border-radius:var(--radius-sm);border:1px solid transparent;}
.ft-date-picker__button svg{color:var(--color-text-muted);}
.schedule-day-nav__calendar-btn svg,.ft-card--schedule .ft-date-picker__button svg{color:var(--color-primary);}
.ft-date-picker__button:hover{background:color-mix(in srgb, var(--color-primary) 6%, var(--color-surface));border-color:var(--color-border);}
.ft-date-picker__panel{position:static;align-self:flex-end;z-index:12;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);padding:12px;border-radius:var(--radius-md);min-width:280px;}
[data-switcher-card][data-switcher-id="jobs"][data-active-view]:not([data-active-view="scheduled"]) [data-date-picker-toggle]{display:none !important;}
  .ft-calendar-head .ft-btn--icon{--btn-font-size:1.35rem;}
  .ft-date-picker__panel[hidden]{display:none;}
  .ft-date-picker__form{display:flex;flex-direction:column;gap:10px;}

  .ft-toolbar.inline{display:flex;flex-direction:row; align-items:center;justify-content:stretch; gap:10px;flex-wrap:nowrap;width:100%;text-align:left;}
  .ft-toolbar.inline .ft-directory-search{flex:1 1 auto; width:100%;}
  .ft-toolbar.inline .ft-search{flex:1 1 auto; min-width:0; width:100%; max-width:none;}
  .ft-toolbar.inline .ft-btn{flex:0 0 auto; white-space:nowrap; margin-left:12px;}

  @media (max-width: 768px){
    .ft-toolbar.ft-toolbar--split{flex-direction:column;align-items:flex-start;gap:10px;}
    .ft-date-picker{align-items:stretch;}
    .ft-date-picker__panel{align-self:stretch;}
  }

  @media (max-width: 768px){
    .ft-card--schedule .ft-toolbar.ft-toolbar--split{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:8px;}
    .ft-card--schedule .ft-card-title{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;}
    .ft-card--schedule .ft-card-title span{white-space:nowrap;}
    .ft-card--schedule .ft-toolbar-actions{flex:0 0 auto;}
    .ft-card--schedule .ft-date-picker__button{padding:.35rem .55rem;gap:6px;font-size:.95rem;}
    .ft-card--schedule .ft-date-picker__button svg{width:18px;height:18px;}
    .ft-card--schedule .ft-date-picker__label{white-space:nowrap;}
    .ft-card--schedule .ft-calendar-head{gap:8px;}
    .ft-card--schedule .ft-calendar-month{font-size:.95rem;}
    .ft-card--schedule .ft-calendar-head .ft-btn--icon{--btn-padding-y:.35rem;--btn-padding-x:.45rem;--btn-min-height:2.3rem;min-width:2.3rem;}
  }

  @media (min-width: 768px){
    .ft-card--schedule .ft-date-picker__panel{
      align-self:stretch;
      width:100%;
    }
  }


  .ft-divider{height:1px;background:var(--color-border);margin:10px -16px 12px;}




/* 15) Buttons, pills, and quick action chips */
.ft-btn{--btn-bg:var(--color-primary);--btn-color:var(--color-surface);--btn-bg-hover:var(--color-primary-hover);--btn-bg-active:var(--color-primary-active);--btn-padding-y:.6rem;--btn-padding-x:.9rem;--btn-font-size:1rem;--btn-radius:var(--radius);--btn-min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid transparent;border-radius:var(--btn-radius);background:var(--btn-bg);color:var(--btn-color);padding:var(--btn-padding-y) var(--btn-padding-x);font-weight:600;font-size:var(--btn-font-size);line-height:1.2;min-height:var(--btn-min-height);cursor:pointer;text-decoration:none;box-shadow:var(--shadow-sm);transition:background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .02s ease;}
.ft-btn:hover{background:var(--btn-bg-hover);}
.ft-btn:active{background:var(--btn-bg-active);transform:translateY(1px);}
.ft-btn:focus-visible{outline:none;box-shadow:0 0 0 var(--ft-ring) color-mix(in srgb, var(--color-primary) 35%, transparent);}
.ft-btn[disabled], .ft-btn.is-disabled{opacity:.6;cursor:not-allowed;}
  .ft-btn--sm,
  .ft-btn.tiny{--btn-padding-y:.45rem;--btn-padding-x:.7rem;--btn-font-size:.93rem;--btn-radius:var(--radius-sm);--btn-min-height:2.35rem;}
  .ft-btn--lg{--btn-padding-y:.75rem;--btn-padding-x:1.1rem;--btn-font-size:1.05rem;--btn-min-height:3rem;}
  .ft-btn--icon,
  .ft-btn.icon-only{--btn-padding-y:.45rem;--btn-padding-x:.45rem;--btn-radius:12px;--btn-min-height:2.6rem;min-width:2.6rem;}
  .ft-btn--icon svg,
  .ft-btn.icon-only svg{width:18px;height:18px;}

  .ft-btn.secondary{--btn-bg:var(--color-bg-alt);--btn-color:var(--color-text);border-color:var(--color-surface-alt);box-shadow:none;}
  .ft-btn.secondary:hover{background:var(--color-surface-alt);}

  .ft-btn.ghost{--btn-bg:transparent;--btn-color:var(--color-primary);border-color:var(--color-primary);box-shadow:none;}
  .ft-btn.ghost:hover{background:rgba(49,87,255,.08);}
  .ft-btn.danger{--btn-bg:var(--tint-danger);--btn-color:var(--color-danger);border-color:var(--tint-danger);box-shadow:none;}
  .ft-btn.danger:hover{background:var(--tint-danger);}
  .ft-btn.danger:active{background:var(--tint-danger);}


  .ft-action-btn,
  .ft-admin-btn{--btn-padding-y:.45rem;--btn-padding-x:.9rem;--btn-font-size:.95rem;--btn-radius:8px;--btn-min-height:2.6rem;gap:6px;}
  .ft-action-btn{--btn-bg:var(--color-text-muted);--btn-bg-hover:var(--color-text);--btn-bg-active:var(--color-text);--btn-color:var(--color-surface);box-shadow:none;border-color:transparent;}
  .ft-action-btn:hover{transform:translateY(-1px);}

  .ft-card-actions{margin-left:auto;display:flex;align-items:center;gap:8px;}
  .ft-mail-btn{position:relative;}

  .ft-mail-badge{position:absolute;top:-4px;right:-4px;background:var(--color-danger);color:var(--color-surface);border-radius:999px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:0.7rem;font-weight:700;padding:0 4px;}

  /* 16) Alerts, badges, and admin callouts */
  .ft-badge{display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:var(--color-text-muted);border-radius:999px;font-size:.9rem;font-weight:600;padding:0.1rem 0.5rem;}

  .ft-alert{padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-weight:600;border:1px solid transparent;}
  .ft-alert--success,
  .ft-alert.success{background:rgba(34,197,94,.12);color:var(--color-success);border-color:color-mix(in srgb, var(--color-success) 36%, transparent);}
  .ft-alert--error,
  .ft-alert.error{background:rgba(228,72,72,.12);color:var(--color-danger);border-color:color-mix(in srgb, var(--color-danger) 36%, transparent);}
  .ft-alert--warning,
  .ft-alert.warning{background:var(--tint-warn);color:var(--color-warn);border-color:color-mix(in srgb, var(--color-warn) 38%, transparent);}
  .ft-alert--info,
  .ft-alert.info{background:rgba(49,87,255,.08);color:var(--color-primary);border-color:color-mix(in srgb, var(--color-primary) 36%, transparent);}
  .ft-alert--auto{max-height:200px;overflow:hidden;transition:opacity .35s ease,max-height .45s ease,margin .35s ease,padding .35s ease;}
  .ft-alert--auto.is-hiding{opacity:0;max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;}
  .ft-alert__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem;align-items:center;}
  .ft-alert__actions form{margin:0;}
  .ft-alert__actions .ft-admin-inline-form{width:100%;}


  .ft-admin-btn{--btn-bg:var(--color-primary);--btn-bg-hover:var(--color-primary-hover);--btn-bg-active:var(--color-primary-active);--btn-color:var(--color-surface);text-decoration:none;}
  .ft-admin-btn:hover{transform:translateY(-1px);}
  .ft-admin-btn svg{width:16px;height:16px;stroke-width:2;vertical-align:middle;}

  .ft-toolbar.center{justify-content:center;text-align:center;flex-wrap:nowrap;gap:10px;}

  /* 10) Scheduling day picker and navigation header */
  .schedule-day-picker__calendar{width:100%;}
  .schedule-day-picker__calendar .ft-calendar-grid{touch-action:manipulation;}
  .schedule-day-bar{padding:.65rem .9rem;}
  .schedule-day-nav{width:100%;display:flex;align-items:center;gap:.65rem;justify-content:center;flex-wrap:nowrap;padding:.35rem .4rem;border-radius:6px;background:var(--color-bg);border:1px solid var(--color-border);margin-inline:auto;}
  .schedule-day-nav__core{display:flex;align-items:center;justify-content:center;gap:.55rem;flex:0 1 auto;flex-wrap:nowrap;min-width:0;position:relative;z-index:1;}
  .schedule-day-nav__btn{--btn-radius:var(--radius-sm);--btn-padding-y:.45rem;--btn-padding-x:.55rem;--btn-min-height:2.5rem;min-width:2.5rem;}
  .schedule-day-nav__calendar-btn{min-width:2.7rem;}
  .schedule-day-nav__picker{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;position:relative;}
  .schedule-day-nav__picker .ft-date-picker__panel{min-width:min(360px, 100%);}
  .schedule-day-nav__panel{width:100%;}
  .schedule-day-nav__panel.ft-date-picker__panel{min-width:100%;}
  .schedule-day-nav__title{line-height:1.2;font-weight:700;color:var(--color-text-muted);white-space:nowrap;}
@media (max-width: 768px){
  .schedule-day-nav{padding:.45rem .5rem;}
  .schedule-day-nav__core{justify-content:flex-start;text-align:left;}
  .schedule-day-nav__title{flex:0 1 auto;}
  .schedule-day-nav__btn svg{width:22px;height:22px;}
}
@media (max-width: 540px){
  .schedule-day-nav{gap:.4rem;padding:.35rem .35rem;}
  .schedule-day-nav__core{gap:.4rem;}
  .schedule-day-nav__btn{--btn-padding-y:.35rem;--btn-padding-x:.45rem;--btn-min-height:2.25rem;min-width:2.25rem;}
  .schedule-day-nav__calendar-btn{min-width:2.4rem;}
    .schedule-day-nav__title{font-size:.9rem;}
    .schedule-day-nav__picker{width:100%;align-items:flex-end;}
    .schedule-day-nav__picker .ft-date-picker__panel{align-self:stretch;}
  }
  @media (max-width: 420px){
    .schedule-day-nav{flex-wrap:wrap;justify-content:center;}
    .schedule-day-nav__core{flex:1 1 100%;justify-content:space-between;}
    .schedule-day-nav__title{width:100%;text-align:center;}
  }




  .ft-nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:34px;padding:0;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:color-mix(in srgb, var(--color-text) 80%, transparent);color:var(--color-surface-alt);position:relative;}
  .ft-nav-toggle::before{content:"";width:18px;height:2px;background:currentColor;border-radius:2px; box-shadow:0 -6px 0 currentColor, 0 6px 0 currentColor;}
  .ft-nav-toggle{display:none;}
  .ft-install-btn{display:none;align-items:center;justify-content:center;padding:8px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:var(--color-primary);color:var(--color-surface);font-weight:700;font-size:.9rem;box-shadow:var(--shadow-sm);transition:background .15s ease, transform .15s ease;}
  .ft-install-btn:hover{background:var(--color-primary-hover);transform:translateY(-1px);}
  .ft-install-btn:active{background:var(--color-primary-active);transform:translateY(0);}
  .ft-install-btn:disabled{opacity:.7;cursor:not-allowed;transform:none;}




  /* 11) Form controls and password toggles */
  .ft-input, input[type="text"], input[type="password"], input[type="date"], input[type="search"], input[type="number"], textarea, select{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);padding:.55rem .7rem;border-radius:var(--radius-sm);box-shadow:0 1px 0 rgba(15,23,42,.02) inset;width:100%;}
  input[type="search"]{-webkit-appearance:searchfield;}
  input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:searchfield-cancel-button;cursor:pointer;}
  .ft-input:focus, input:focus, textarea:focus, select:focus{outline:none;border-color:var(--color-primary-hover);box-shadow:0 0 0 var(--ft-ring) color-mix(in srgb, var(--color-primary-hover) 28%, transparent);}

  @media (max-width: 680px){
    input,
    textarea,
    select{
      font-size:1rem;
    }
  }

  label{font-size:.85rem;color:var(--color-text-muted);font-weight:600;}

  .form-title{margin:0 0 12px 0;font-size:1.1rem;font-weight:700;color:var(--color-text-muted);}

  .form-grid{display:grid;gap:12px;min-width:0;grid-template-columns:1fr;}

  .form-row{display:flex;flex-direction:column;gap:6px;min-width:0;}
  .form-row > *{min-width:0;}
  .form-row textarea{resize:vertical;min-height:90px;}

  .ft-password-field{display:flex;align-items:center;gap:8px;}
  .ft-password-field input[type="password"],
  .ft-password-field input[type="text"]{flex:1 1 auto;}
  .ft-password-toggle{--btn-padding-y:.45rem;--btn-padding-x:.55rem;--btn-min-height:2.5rem;box-shadow:none;}
  .ft-password-toggle svg{pointer-events:none;}

  .form-actions{display:flex;gap:10px;margin-top:12px;}



  /* 12) Tables and frozen-column helpers */
  .ft-table-wrap{width:100%;overflow-x:auto;overflow-y:visible;border:1px solid var(--color-border);border-radius:0;background:var(--color-card-bg);box-shadow:var(--shadow-sm);}

  .ft-table{width:100%;border-collapse:separate;border-spacing:0;position:relative;isolation:isolate;}
  .ft-table thead th{position:sticky;top:var(--ft-sticky-offset, 0);background:var(--color-bg-alt);color:var(--color-text-muted);font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.04em;border-bottom:1px solid var(--color-border);padding:12px 10px;z-index:1;}
  .ft-table td{border-top:1px solid var(--color-border);padding:12px 10px;vertical-align:top;}
  .ft-table tbody tr:nth-child(even){background:var(--color-bg-alt);}
  .ft-table tbody tr:hover{background:var(--color-bg-alt);}

  /* Desktop breathing room for wider screens */
  @media (min-width: 1024px){
    #jobTable.ft-table-wrap,
    #rosterTable.ft-table-wrap,
    #dayPane .ft-card--schedule .ft-table-wrap{padding-inline:16px;}
  }

  /* Generic helper for tables with a frozen first column */
  .ft-freeze-first-col thead th { z-index: 4; }

  .ft-freeze-first-col th.ft-col-frozen,
  .ft-freeze-first-col td.ft-col-frozen {
    position: sticky;
    left: 0;
    z-index: 3; /* above other headers/cells (z-index: 1) */
  }

  .ft-freeze-first-col tbody td.ft-col-frozen {
    background: var(--color-card-bg); /* default matches odd rows */
    box-shadow: 6px 0 12px rgba(15, 23, 42, 0.06);
  }

  .ft-freeze-first-col tbody tr:nth-child(even) td.ft-col-frozen {
    background: var(--color-bg-alt); /* maintain zebra striping on even rows */
  }

  .ft-freeze-first-col tbody tr:hover td.ft-col-frozen {
    background: var(--color-bg-alt); /* match hover state */
  }

  /* Make the frozen header cell sit above its column cells */
  .ft-freeze-first-col thead th.ft-col-frozen {
    z-index: 5;
    box-shadow: 6px 0 12px rgba(15, 23, 42, 0.06); /* subtle divider; keep consistent with existing design */
  }


  /* 13) Schedule rows, inline job actions, and add buttons */
  .schedule-row-head{display:flex;align-items:center;gap:6px;min-width:0;}
  .schedule-row-head > *{min-width:0;}
  .schedule-employee-name{font-weight:600;white-space:nowrap;}
  #dayTable .ft-table thead th,
  #dayTable .ft-table td{text-align:left;padding:10px 8px;}
  #jobTable .ft-table,
  #rosterTable .ft-table,
  #dayTable .ft-table{border-spacing:0 10px;}
  #dayTable .ft-table thead th{background:linear-gradient(180deg, var(--color-bg-alt) 0%, var(--color-surface-alt) 100%);border-bottom-color:var(--color-surface-alt);color:var(--color-text);letter-spacing:.04em;text-align:left;font-size:.82rem;text-transform:uppercase;}
  #dayTable .ft-table thead th.col-employee{background:var(--ft-header-solid);color:var(--color-surface);text-align:center;}
  #dayTable .ft-table thead th:not(.col-employee){text-align:left;}
  #dayTable .ft-sort-btn{display:flex;align-items:center;gap:8px;width:100%;justify-content:flex-start;background:transparent;border:none;padding:0;color:inherit;font-weight:600;letter-spacing:inherit;text-align:left;}
  #dayTable .ft-sort-btn--center{justify-content:center;text-align:center;}
  #dayTable th:not(.col-employee) .ft-sort-btn{justify-content:flex-start;text-align:left;}
  #dayTable .col-employee{width:1%;min-width:0;white-space:nowrap;text-align:center;}
  #dayTable td.col-employee{padding:0;background:var(--ft-header-solid);color:var(--color-surface);vertical-align:middle;}
  #dayTable td.col-employee::after{content:"";position:absolute;top:0;right:-1px;width:1px;height:100%;background:var(--color-border);}
  #dayTable .ft-freeze-first-col tbody tr.schedule-row td.col-employee.ft-col-frozen,
  #dayTable .ft-freeze-first-col tbody tr.schedule-row:hover td.col-employee.ft-col-frozen{background:var(--ft-header-solid);color:var(--color-surface);}
  #dayTable .schedule-row-head{justify-content:center;}
  #dayTable .ft-schedule-name-btn{--btn-bg:transparent;--btn-color:var(--color-surface);--btn-bg-hover:color-mix(in srgb, var(--color-surface) 12%, transparent);--btn-bg-active:color-mix(in srgb, var(--color-surface) 18%, transparent);padding:14px 12px;border-radius:0;box-shadow:none;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:100%;text-align:center;letter-spacing:.02em;}
  #dayTable .ft-schedule-name-btn:hover{text-decoration:none;}
  #dayTable .ft-schedule-name-btn__text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;}
  #dayTable .ft-schedule-name-btn__first,#dayTable .ft-schedule-name-btn__last{display:inline-block;max-width:8ch;white-space:nowrap;overflow:hidden;}
  #dayTable .ft-schedule-name-btn__first.has-overflow,#dayTable .ft-schedule-name-btn__last.has-overflow{-webkit-mask-image:linear-gradient(90deg,#000 72%,transparent 100%);mask-image:linear-gradient(90deg,#000 72%,transparent 100%);}
  #dayTable .ft-schedule-name-btn__first{font-weight:700;}
  #dayTable .ft-schedule-name-btn__last{font-size:.68rem;letter-spacing:.08em;opacity:.9;text-transform:uppercase;}
  #dayTable .ft-po-btn__icon{width:14px;height:14px;opacity:.86;flex-shrink:0;display:inline-block;}
  #dayTable .schedule-pill{display:flex;align-items:stretch;width:100%;min-height:52px;margin:0;background:linear-gradient(180deg, color-mix(in srgb, var(--color-card-bg) 92%, var(--color-bg-alt) 8%) 0%, color-mix(in srgb, var(--color-card-bg) 84%, var(--color-surface-alt) 16%) 100%);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);overflow:hidden;}
  #dayTable .schedule-pill__accent{flex:0 0 10px;background:linear-gradient(180deg, color-mix(in srgb, var(--ft-header-solid) 88%, var(--color-surface) 12%) 0%, color-mix(in srgb, var(--ft-header-solid) 78%, var(--color-surface-alt) 22%) 100%);border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius);box-shadow:inset -1px 0 0 color-mix(in srgb, var(--color-surface) 40%, transparent);}
  #dayTable .schedule-pill__body{flex:1 1 auto;display:flex;flex-direction:column;align-items:stretch;gap:6px;background:var(--color-surface);border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius);padding:10px 12px;}
  #dayTable .schedule-pill__input,
  #dayTable .schedule-pill__body .ft-inline{border:none;background:transparent;padding:0;box-shadow:none;width:100%;}
  #dayTable .schedule-pill__body .ft-inline:focus{outline:var(--ft-ring) solid color-mix(in srgb, var(--color-primary) 40%, transparent);outline-offset:2px;}
  #dayTable .schedule-pill__text{display:block;width:100%;color:var(--color-text);font-weight:600;}
#dayTable .schedule-pill--address{overflow:visible;}
#dayTable .schedule-pill--address .schedule-pill__body{position:relative;overflow:visible;}
#dayTable .schedule-pill--address .schedule-base-slot__input{position:relative;}
#dayTable .schedule-base-slot__input{display:flex;align-items:center;height:100%;}
#dayTable .schedule-base-slot__input input{flex:1 1 auto;height:100%;padding-top:.55rem;padding-bottom:.55rem;box-sizing:border-box;}
#dayTable .schedule-pill--address .ft-suggest{position:absolute;top:100%;left:0;right:0;margin:0;padding-top:4px;pointer-events:none;}
#dayTable .schedule-pill--address .ft-suggest-list{top:0;pointer-events:auto;}
#dayTable .schedule-pill--address .ft-suggest.is-dropup{top:auto;bottom:100%;padding-top:0;padding-bottom:4px;}
#dayTable .schedule-pill--address .ft-suggest.is-dropup .ft-suggest-list{top:auto;bottom:0;}
  .schedule-desc-cell .schedule-pill{flex:1 1 auto;min-width:0;}
  #dayTable .schedule-pill--description{align-self:stretch;}
  .schedule-desc-cell{display:flex;align-items:stretch;gap:8px;flex-wrap:nowrap;height:100%;}
  #dayTable .schedule-base-slot{display:flex;align-items:stretch;height:100%;}
  .schedule-desc-cell .ft-inline{flex:1 1 auto;min-width:0;}
  .schedule-desc-cell[data-row-slider]{position:relative;}
  .schedule-row-actions{display:flex;align-items:stretch;justify-content:flex-end;gap:4px;flex-wrap:nowrap;align-self:stretch;height:100%;}
  .schedule-row-actions[data-row-actions-slider]{position:relative;}
  .schedule-row-actions__handle{display:none;}
  .schedule-row-actions .ft-btn{margin-top:0;flex:0 0 auto;--btn-padding-y:.28rem;--btn-padding-x:.46rem;--btn-min-height:1.9rem;--btn-radius:var(--radius-sm);box-shadow:none;align-self:stretch;display:flex;align-items:center;justify-content:center;height:100%;min-height:52px;}
  .schedule-row-actions .ft-btn svg{width:16px;height:16px;}
  .schedule-row-actions.is-disabled{opacity:.55;}
  .schedule-row-actions.is-disabled .ft-btn{pointer-events:none;cursor:default;}
  .schedule-add-btn{margin-right:0;display:inline-flex;align-items:center;font-variant-numeric:tabular-nums;}
  .schedule-add-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;font-weight:700;font-size:.85rem;line-height:1.2;width:100%;}
  .schedule-repeat-btn{border-bottom-left-radius:var(--radius-sm);}
  #dayTable .ft-table tbody tr.is-repeat-active > td{background:var(--color-bg-alt);border-top:1px solid var(--color-surface-alt);border-bottom:1px solid var(--color-surface-alt);}
.schedule-repeat-inline-row > td{padding:0;background:var(--color-bg-alt);border-bottom:1px solid var(--color-surface-alt);}
.schedule-repeat-inline{padding:0 16px 16px;display:flex;flex-direction:column;gap:12px;background:var(--color-bg-alt);}
.schedule-repeat-inline__title{font-weight:700;color:var(--color-text);}
.schedule-repeat-inline__calendar{padding:12px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow-sm);}
.schedule-repeat-inline__calendar .ft-calendar{width:100%;}
  .schedule-repeat-inline--empty{padding:14px 16px;background:var(--color-bg-alt);border-bottom:1px solid var(--color-surface-alt);}
  .schedule-repeat-inline__hint{margin:.35rem 0 0;color:var(--color-text-muted);}
  .schedule-repeat-inline .ft-repeat-calendar{margin-top:0;}
  #dayTable td:nth-child(2){position:relative;}
  .schedule-inline-close{display:flex;justify-content:center;margin-top:6px;}
.schedule-inline-close--inline{margin-top:0;justify-content:flex-end;margin-left:auto;}
.schedule-inline-close__btn--inline{width:auto;min-width:0;}
.schedule-inline-close--stacked{margin-top:2px;}
.schedule-inline-close__btn{width:100%;justify-content:center;gap:8px;border:1px dashed var(--color-border);background:var(--color-bg-alt);}
.schedule-inline-close__btn:hover{background:var(--color-bg-alt);}
.schedule-inline-close-row > td{padding:8px;background:var(--color-bg-alt);border-top:1px solid var(--color-surface-alt);}
@media (min-width: 681px){
  .schedule-row-actions[data-row-actions-slider]{
    position:relative;
    inset:auto;
    padding:0;
    box-shadow:none;
    background:transparent;
    transform:none;
  }
}
@media (min-width: 681px){
  .schedule-repeat-inline{align-items:center;}
  .schedule-repeat-inline__calendar{width:min(760px, 100%);margin:0 auto;}
}
@media (max-width: 680px){
  .schedule-repeat-inline{padding:0;margin:0;}
  .schedule-repeat-inline__calendar{padding:0;border:0;border-radius:0;box-shadow:none;width:100%;margin:0;}
  .schedule-repeat-inline__calendar .ft-calendar{border:0;border-radius:0;box-shadow:none;padding:12px 14px 14px;width:100%;}
  .schedule-repeat-inline-row{overflow-x:hidden;}
  .schedule-desc-cell[data-row-slider]{padding-right:var(--row-slider-width,112px);overflow:hidden;}
  .schedule-row-actions[data-row-actions-slider]{
    --row-slider-handle: 24px;
    position:absolute;
    inset:0 0 0 auto;
    padding:0 6px 0 calc(var(--row-slider-handle) + 8px);
    gap:6px;
    align-items:stretch;
    height:100%;
    background:linear-gradient(90deg,rgba(248,250,252,0.02) 0%,rgba(248,250,252,0.9) 28%,rgba(248,250,252,0.98) 100%);
    border-radius:var(--radius-sm);
    box-shadow:0 6px 16px rgba(15, 23, 42, 0.12);
    transform:translateX(0);
    transition:transform 0.18s ease,opacity 0.18s ease;
    touch-action:pan-y;
    overflow:hidden;
  }
  .schedule-row-actions__handle{
    display:none;
    position:absolute;
    inset:0 auto 0 0;
    width:var(--row-slider-handle);
    border:none;
    padding:0;
    margin:0;
    background:var(--color-primary);
    color:var(--color-surface);
    box-shadow:0 6px 16px rgba(15, 23, 42, 0.16);
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M14 18l-6-6 6-6'/%3e%3c/svg%3e");
    background-repeat:no-repeat;
    background-position:center;
    background-size:14px 14px;
    transition:transform 0.18s ease, box-shadow 0.18s ease;
    cursor:pointer;
  }
  .schedule-row-actions__handle:focus-visible{
    outline:2px solid color-mix(in srgb, var(--color-primary) 24%, transparent);
    outline-offset:2px;
  }
  .schedule-row-actions[data-row-actions-slider] .schedule-row-actions__handle{display:block;}
  .schedule-row-actions[data-row-actions-slider]::after{
    content:'';
    position:absolute;
    inset:0 auto 0 var(--row-slider-handle);
    width:12px;
    background:linear-gradient(90deg, rgba(15, 23, 42, 0) 0%, rgba(15, 23, 42, 0.14) 100%);
    pointer-events:none;
    opacity:.5;
  }
  .schedule-row-actions[data-row-actions-slider][data-slider-state="peek"]{transform:translateX(calc(100% - var(--row-slider-handle)));}
  .schedule-row-actions[data-row-actions-slider] .ft-btn{
    height:100%;
    min-height:100%;
    border-color:transparent;
    --btn-bg:transparent;
    --btn-bg-hover:color-mix(in srgb, var(--color-primary) 8%, transparent);
    --btn-bg-active:color-mix(in srgb, var(--color-primary) 12%, transparent);
  }
  .schedule-row-actions[data-row-actions-slider] .ft-btn.primary{
    --btn-bg:var(--color-primary);
    --btn-bg-hover:var(--color-primary-hover);
    --btn-bg-active:var(--color-primary-active);
    border-color:transparent;
  }
  .schedule-row-actions[data-row-actions-slider][data-slider-state="closed"]{transform:translateX(100%);opacity:0.9;}
  .schedule-row-actions[data-row-actions-slider][data-slider-state="open"]{transform:translateX(0);}
  .schedule-row-actions[data-row-actions-slider][data-slider-state="open"] .schedule-row-actions__handle,
  .schedule-row-actions__handle.is-open{transform:rotate(180deg);}
  .schedule-row-actions[data-row-actions-slider] .ft-btn{--btn-padding-x:.4rem;}
}
  .schedule-addjobs-inline-row[hidden]{display:none;}
  #dayTable .schedule-addjob-row .ft-schedule-name-btn{--btn-bg:transparent;--btn-bg-hover:transparent;--btn-bg-active:transparent;opacity:.72;color:var(--color-surface);cursor:default;box-shadow:none;text-align:center;}
  #dayTable .schedule-addjob-row .ft-schedule-name-btn__text{width:100%;}
  #dayTable .schedule-addjob-row .ft-schedule-name-btn__first,#dayTable .schedule-addjob-row .ft-schedule-name-btn__last{color:inherit;}
  .schedule-addjob-row .schedule-employee-name{color:var(--color-text-muted);opacity:.65;}
  .schedule-addjob-row .ft-input{min-width:0;}
  .schedule-base-slot__badge{position:absolute;top:20px;left:-10px;z-index:2;pointer-events:none;transform:translate(8px, -8px); }
  .schedule-base-slot__badge[data-base-job-chip]{display:none;}
  .schedule-base-slot__badge[data-base-job-chip].is-visible{display:inline-flex;}
  .schedule-base-slot__input{display:block;width:100%;margin:0;}
  .schedule-row-actions__placeholder{visibility:hidden;pointer-events:none;min-width:2.4rem;}
  .schedule-row-actions__placeholder.schedule-add-btn{min-width:2.9rem;}

/* Schedule day table – fix add-jobs badge gap in address cell */
#dayPane .schedule-base-slot {
  position: relative;
  padding-top: 0;      /* remove any reserved space for the chip */
  margin-top: 0;
}

#dayPane .schedule-base-slot__input {
  margin-top: 0;       /* make the input sit flush with the top of the cell */
  padding-top: 0;
}

#dayPane .schedule-base-slot__badge {
  position: absolute;
  /* tweak these two numbers to taste so it sits just over the border */
  top: 0;
  left: -15px;
  font-size: clamp(10px, 1.5vw, 12px);

  pointer-events: none;
}

#dayPane .ft-card--schedule,
#dayPane .ft-card--schedule .ft-table-wrap {
  height: 100%;
}

#dayPane .ft-card--schedule {
  overflow: visible;
}
  /* 14) Suggestions/autocomplete popovers */
  .ft-suggest{position:relative;z-index:var(--z-tooltip);}
  .ft-suggest-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:var(--z-tooltip);background:var(--color-surface);border:1px solid var(--color-surface-alt);border-radius:var(--radius-sm);box-shadow:0 4px 20px rgba(0, 0, 0, 0.08);padding:6px 0;margin:0;list-style:none;overflow-y:auto;max-height:220px;animation:dropdown-fade 0.15s ease-out;scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent;}
  .ft-suggest-list::-webkit-scrollbar{width:6px;height:6px;}
  .ft-suggest-list::-webkit-scrollbar-track{background:transparent;}
  .ft-suggest-list::-webkit-scrollbar-thumb{background-color:var(--scrollbar);border-radius:999px;}
  .ft-suggest-list::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-hover);}
  .ft-suggest.is-dropup .ft-suggest-list{top:auto;bottom:calc(100% + 4px);box-shadow:0 -4px 20px rgba(0, 0, 0, 0.08);} 
  .ft-sg-item{display:flex;flex-direction:column;gap:8px;width:100%;border:none;background:none;text-align:left;padding:10px 12px;cursor:pointer;transition:background 0.15s ease, color 0.15s ease;border-left:3px solid transparent;color:var(--color-text);} 
  .ft-sg-item:hover, .ft-sg-item:focus{background:var(--color-bg-alt);border-left:3px solid var(--color-primary);} 
  .ft-sg-main{display:flex;flex-direction:column;gap:6px;} 
  .ft-sg-top{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:nowrap;} 
  .ft-sg-title{font-weight:500;color:var(--color-text-muted);font-size:0.85rem;line-height:1.3;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .ft-sg-divider{color:var(--color-border-strong);} 
  .ft-sg-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:0.83rem;color:var(--color-text-muted);} 
  .ft-sg-pill{--pill-bg:var(--color-bg-alt);--pill-text:var(--color-text);display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--pill-bg);color:var(--pill-text);border:1px solid var(--pill-border, var(--color-surface-alt));font-weight:600;}
  .ft-sg-pill--muted{background:var(--color-surface);color:var(--color-text-muted);}
  .ft-sg-pill--po{--pill-bg:var(--tint-accent);--pill-text:var(--color-primary-active);--pill-border:color-mix(in srgb, var(--color-primary-active) 22%, transparent);text-transform:uppercase;letter-spacing:.04em;font-weight:700;box-shadow:var(--shadow-sm);padding:2px 10px;font-size:.78rem;}
  .ft-sg-pill--type{--pill-bg:color-mix(in srgb, var(--pill-color, var(--color-primary)) 16%, var(--color-surface));--pill-text:var(--pill-color, var(--color-primary));--pill-border:color-mix(in srgb, var(--pill-color, var(--color-primary)) 38%, transparent);box-shadow:0 1px 0 color-mix(in srgb, var(--pill-color, var(--color-primary)) 18%, transparent);}
  .ft-sg-meta__label{color:var(--color-text-muted);}
  .ft-sg-sub{font-size:0.85rem;color:var(--color-text-muted);line-height:1.3;}
  .ft-sg-sub--inline{font-weight:800;color:var(--color-text);white-space:nowrap;max-width:48%;overflow:hidden;text-overflow:ellipsis;}

  @media (max-width: 720px){
    .ft-suggest{z-index:1205;}
    .ft-sg-item{padding:9px 10px;}
    .ft-sg-top{gap:6px;}
    .ft-sg-title,.ft-sg-sub{font-size:0.8rem;}
    .ft-sg-meta{font-size:0.78rem;}
    .ft-sg-pill{padding:2px 7px;font-size:0.78rem;}
    .ft-sg-pill--po{font-size:0.74rem;padding:2px 9px;}
  }



  /* 19) Modal framework shells and inner layout */
  .ft-modal{
    position:fixed; inset:0; z-index:10000;
    display:flex; align-items:stretch; justify-content:center;
    opacity:0; pointer-events:none;
    transition:opacity .2s ease;
  }
  .ft-modal.open{ opacity:1; pointer-events:auto; }


  .ft-modal-backdrop{
    position:absolute; inset:0;
    background:rgba(8,15,35,.35);
    transition:opacity .2s ease;
  }


  .ft-modal-panel{
    position:relative;
    width:100vw;
    max-width:100vw;
    height:100vh;
    max-height:100vh;
    background:var(--color-card-bg); color:var(--color-text);
    border:1px solid var(--color-border);
    border-radius:0;
    box-shadow:var(--shadow-lg);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    transform:translateX(0);
    transition:transform .24s ease, box-shadow .24s ease;
  }
  .ft-modal-panel--calendar .ft-modal-body{
    padding:10px 12px 16px;
  }
  .ft-modal-surface{
    display:flex;
    flex-direction:column;
    gap:1rem;
    padding:14px 16px 16px;
    width:100%;
    box-sizing:border-box;
  }
  .ft-modal-surface--info{gap:1.25rem;}
  .ft-modal-surface--form{gap:1.1rem;}
  .ft-modal-surface--compact{max-width:min(820px, 100%);margin:0 auto;}
  .ft-modal-surface--narrow{max-width:min(700px, 100%);margin:0 auto;}
  .ft-modal-link-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:10px;}
  .ft-modal-link-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-alt);color:var(--color-text);text-decoration:none;box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;transition:border-color .15s ease, box-shadow .15s ease, transform .1s ease;width:100%;box-sizing:border-box;}
  .ft-modal-link-card:hover,.ft-modal-link-card:focus-visible{text-decoration:none;border-color:var(--color-primary);box-shadow:var(--shadow);transform:translateY(-1px);}
  .ft-modal-link-card:active{transform:translateY(0);}
  .ft-modal-link-card svg{flex:0 0 auto;color:var(--color-text-muted);}
  .ft-modal-link-card__content{display:flex;flex-direction:column;gap:4px;}
  .ft-modal-link-card__title{font-weight:700;font-size:1rem;line-height:1.3;}
  .ft-modal-link-card__hint{color:var(--color-text-muted);font-size:.92rem;line-height:1.35;}
  .ft-modal-link-card--static{cursor:default;flex-direction:column;align-items:stretch;gap:10px;}
  .ft-modal-link-card--static:hover{border-color:var(--color-border);box-shadow:var(--shadow-sm);transform:none;}
  .ft-modal-link-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
  .ft-modal-link-card__action{--btn-padding-y:.35rem;--btn-padding-x:.75rem;--btn-min-height:2.3rem;--btn-radius:10px;}
  .ft-detail-grid--contact{margin-top:4px;}
  .ft-modal-link-card--danger{border-color:color-mix(in srgb, var(--color-danger) 25%, transparent);color:var(--color-danger);background:color-mix(in srgb, var(--tint-danger) 35%, var(--color-bg-alt));}
  .ft-modal-link-card--danger svg{color:var(--color-danger);}
  .ft-modal-surface--flush-head .ft-modal-head{margin:-14px -16px 0;}
  .ft-modal-surface--flush-head .ft-modal-head--flush{margin-bottom:0;}
  .ft-modal-stack{display:flex;flex-direction:column;gap:1rem;}
  .ft-modal-section{display:flex;flex-direction:column;gap:.75rem;}
  .ft-modal-section + .ft-modal-section{border-top:1px solid var(--color-border);padding-top:1rem;}
  .schedule-day-picker__calendar .ft-calendar{
    width:100%;
  }


  .ft-modal-head{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:.5rem 1rem;justify-content:flex-start;padding:12px 14px;padding-right:6rem;margin-bottom:1rem;background:var(--color-bg-alt);border-bottom:1px solid var(--color-border);}
  .ft-modal-head h2{margin:0;} 
  .ft-modal-header{grid-column:1;display:flex;flex-direction:column;gap:.2rem;min-width:0;}
  .ft-modal-title-row{display:flex;align-items:center;flex-wrap:wrap;} 
  .ft-modal-title{font-weight:700;font-size:1.05rem;line-height:1.2;}
  .ft-modal-title-icon{display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border-radius:12px;background:var(--color-bg-alt);color:var(--color-text);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);}
  .ft-modal-title-icon svg{width:18px;height:18px;}
  .ft-modal-title-text{display:inline-flex;align-items:center;gap:.35rem;}
  .ft-modal-heading{font-weight:800;font-size:1.1rem;color:var(--color-text);letter-spacing:.01em;}
  .ft-modal-subtitle{margin:0;color:var(--color-text-muted);font-size:.95rem;line-height:1.4;}
  .ft-modal-subtitle .ft-chip{--chip-bg:var(--color-bg-alt);--chip-color:var(--color-text);--chip-radius:999px;padding:.35rem .6rem;font-weight:700;}
  .ft-modal-subtitle .ft-chip--po{--chip-bg:var(--color-text);--chip-color:var(--color-surface);--chip-border:var(--color-text);box-shadow:var(--shadow-sm);letter-spacing:.04em;}
  .ft-modal-meta-separator{margin:0 .25rem;color:var(--color-border);}
  .ft-modal-section-title{margin:0 0 .5rem;font-size:.95rem;font-weight:700;color:var(--color-text);letter-spacing:.02em;text-transform:uppercase;}
  .ft-modal-favorite .ft-favorite-btn{--btn-bg:transparent;--btn-bg-hover:rgba(245,158,11,.12);--btn-bg-active:rgba(245,158,11,.14);--btn-color:var(--amber-600,var(--color-warn));--btn-padding-y:.45rem;--btn-padding-x:.45rem;--btn-min-height:2.2rem;--btn-radius:10px;min-width:2.2rem;border-color:color-mix(in srgb, var(--amber-600,var(--color-warn)) 75%, var(--tint-warn));}
  .ft-modal-favorite .ft-favorite-btn.is-active{background:rgba(245,158,11,.12);border-color:var(--amber-600,var(--color-warn));}
  .ft-modal-favorite .ft-favorite-btn svg{width:18px;height:18px;}
  .ft-modal-nav-row{grid-column:1 / -1;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;row-gap:.5rem;width:100%;min-width:100%;align-self:stretch;justify-self:stretch;}
  .ft-modal-nav-cluster{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;width:100%;min-width:100%;flex:1 1 100%;align-self:stretch;}
  .ft-modal-nav-row .ft-modal-nav{flex:0 1 auto;}
  .ft-modal-nav{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;}
  .ft-jobdetail-mobile .ft-page-toolbar .ft-modal-nav-row{padding:12px 14px;}
  .ft-jobdetail-mobile .ft-page-toolbar .ft-modal-nav{gap:.85rem;}
  .ft-jobdetail-mobile .ft-page-toolbar .ft-modal-nav .ft-btn{--btn-padding-y:.6rem;--btn-padding-x:.9rem;--btn-min-height:2.9rem;}
  .ft-modal-po-wrap{display:inline-flex;align-items:center;justify-content:center;min-height:2.65rem;padding:0 9px;background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-xs);}
  .ft-modal-nav .ft-btn{--btn-bg:var(--color-bg-alt);--btn-bg-hover:var(--color-surface-alt);--btn-bg-active:var(--color-surface-alt);--btn-color:var(--color-text);--btn-radius:12px;--btn-padding-y:.45rem;--btn-padding-x:.65rem;--btn-min-height:2.55rem;min-width:0;border-color:var(--color-surface-alt);display:inline-flex;align-items:center;gap:.4rem;font-weight:800;letter-spacing:.01em;}
  .ft-modal-nav .ft-btn svg{width:20px;height:20px;}
  .ft-modal-nav .ft-btn .ft-btn__icon{display:inline-flex;align-items:center;justify-content:center;}
  .ft-modal-nav .ft-btn .ft-btn__label{font-size:.98rem;line-height:1.1;color:inherit;}
  .ft-modal-nav .ft-btn.is-active{background:var(--color-border-strong);border-color:var(--color-border-strong);color:var(--color-text);}
  .ft-modal-actions{grid-column:2;grid-row:1 / span 2;align-self:start;display:flex;gap:.5rem;flex-wrap:nowrap;justify-content:flex-end;align-items:center;justify-self:end;position:absolute;top:10px;right:14px;}
  .ft-modal-actions .ft-modal-icon-btn{--btn-radius:10px;--btn-padding-y:.35rem;--btn-padding-x:.35rem;--btn-min-height:2.6rem;min-width:2.6rem;}
  .ft-modal-actions .ft-modal-icon-btn svg{width:20px;height:20px;}
  .ft-modal-close{position:absolute;top:10px;right:10px;--btn-radius:10px;--btn-padding-y:.35rem;--btn-padding-x:.35rem;--btn-min-height:2.6rem;min-width:2.6rem;}
  .ft-modal-close svg{width:20px;height:20px;}

  .ft-jobdetail-head__top{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:center;}
  .ft-jobdetail-head .ft-modal-header,.ft-jobmodal-head .ft-modal-header{grid-column:1;}
  .ft-jobdetail-close{position:static;grid-column:2;grid-row:1;align-self:start;justify-self:end;color:var(--color-primary);}
  .ft-jobdetail-head .ft-modal-nav-row,.ft-jobmodal-head .ft-modal-nav-row{grid-column:1 / -1;grid-row:auto;}
  .ft-modal-body{padding:0;flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden;}
  .ft-modal-body{scrollbar-width:thin;scrollbar-color:var(--scrollbar) transparent;}
  .ft-modal-body::-webkit-scrollbar{width:6px;height:6px;}
  .ft-modal-body::-webkit-scrollbar-track{background:transparent;}
  .ft-modal-body::-webkit-scrollbar-thumb{background-color:var(--scrollbar);border-radius:999px;}
  .ft-modal-body::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-hover);}

  @media (min-width: 768px){
    .ft-modal{justify-content:flex-end;align-items:stretch;}
    .ft-modal-backdrop{background:rgba(8,15,35,.25);}
    .ft-modal-panel{
      position:fixed;
      right:0; top:0; bottom:0;
      width:min(480px, 40vw);
      max-width:520px;
      height:100vh;
      max-height:100vh;
      border-radius:0;
      border-left:1px solid var(--color-border);
      border-right:none;
      transform:translateX(100%);
      box-shadow:-12px 0 28px rgba(8,15,35,.28), -26px 0 48px rgba(8,15,35,.18);
    }
    .ft-modal.open .ft-modal-panel{transform:translateX(0);}
    .ft-modal-panel--calendar{width:min(520px, 52vw);}
    .ft-modal-panel--calendar .schedule-day-picker__calendar{width:100%;}
    .ft-modal-panel--calendar .schedule-day-picker__calendar .ft-calendar{width:100%;}
  }

  @media (max-width: 767px){
    .ft-modal{justify-content:center;align-items:stretch;}
    .ft-modal-panel{
      margin:0;
      border-radius:0;
      transform:translateX(0);
    }
    .ft-modal-panel--calendar{width:100%;max-width:100%;}
    .ft-modal-body{flex:1 1 auto;min-height:0;max-height:none;}
  }
  .ft-map-card{gap:16px;}
.ft-map-card .ft-jobinfo__card-head{--jobinfo-head-action-space:0;padding-right:0;}
.ft-job-map{width:100%;min-height:320px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-alt);box-shadow:var(--shadow-xs);overflow:hidden;}
.ft-job-map__status{margin-top:.75rem;}

  .ft-confirm{position:fixed;inset:0;z-index:11000;display:none;align-items:center;justify-content:center;}
  .ft-confirm.is-open{display:flex;}
  .ft-confirm__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(1.5px);}
  .ft-confirm__dialog{position:relative;z-index:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:16px 18px;min-width:320px;max-width:94vw;display:flex;flex-direction:column;gap:14px;pointer-events:auto;}
  .ft-confirm__body{display:flex;align-items:flex-start;gap:12px;}
  .ft-confirm__icon{width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-bg-alt);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);flex:0 0 auto;}
  .ft-confirm__icon svg{width:20px;height:20px;}
  .ft-confirm__copy{flex:1 1 auto;min-width:0;}
  .ft-confirm__title{margin:0 0 4px;font-weight:800;font-size:1rem;color:var(--color-text);}
  .ft-confirm__message{margin:0;font-size:.95rem;color:var(--color-text);line-height:1.4;}
  .ft-confirm__actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;}
  .ft-confirm__actions .ft-btn{--btn-min-height:2.6rem;--btn-padding-y:.45rem;--btn-padding-x:.75rem;--btn-radius:12px;}

  /* 20) Job form builder, panels, and validation states */
  .ft-jobform{display:flex;flex-direction:column;gap:0;padding:2px;margin:0;}
  .ft-jobform--create{padding:2px;}
  .ft-jobform--create .ft-modal-head{
    --jobform-head-pad-y:18px;
    --jobform-head-pad-x:16px;
    padding:var(--jobform-head-pad-y) var(--jobform-head-pad-x) var(--jobform-head-pad-y);
    padding-right:8rem;
  }
  .ft-jobform .ft-modal-body{padding:0;}
  .ft-jobform-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-card-bg);box-shadow:var(--shadow-xs);overflow:hidden;}
  .ft-jobform--create .ft-jobform-card{border-radius:0 0 var(--radius-lg) var(--radius-lg);}
  .ft-jobform-card__head{position:relative;display:flex;flex-direction:column;gap:4px;padding:14px 16px 10px;border-bottom:1px solid var(--color-border);background:var(--color-card-bg);}
  .ft-jobform-card__eyebrow{color:var(--color-text-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;}
  .ft-jobform-card__title{font-weight:800;letter-spacing:.01em;color:var(--color-text);font-size:1.02rem;}
  .ft-jobform-card__copy{margin:0;color:var(--color-text-muted);line-height:1.5;font-size:.9rem;}
  .ft-jobform-card__copy--subtle{color:var(--color-text-muted);font-size:.85rem;}
  .ft-jobform-card__actions{position:absolute;top:10px;right:10px;display:flex;gap:8px;align-items:center;}
  .ft-jobform-card__section{display:flex;flex-direction:column;gap:10px;padding:12px 16px 14px;background:var(--color-card-bg);}
  .ft-jobform-card__section + .ft-jobform-card__section{border-top:1px solid var(--color-border);}
  .ft-jobform-card__section-title{margin:0;color:var(--color-text);font-size:.9rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;}
  .ft-jobform-grid{display:flex;flex-direction:column;gap:12px;}
  .ft-jobform-grid .form-row{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:none;}
  .ft-jobform-grid--plain{gap:10px;}
  .ft-jobform-grid--plain .form-row{padding:0;border:none;border-radius:0;background:transparent;}
  .ft-jobform-grid--plain .form-row label{padding-top:4px;}
  .ft-jobform-grid .form-row label{font-weight:800;color:var(--color-text);font-size:.92rem;letter-spacing:.01em;}
  .ft-jobform-label{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;}
  .ft-jobform-required{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:999px;background:var(--color-bg-alt);color:inherit;font-size:.72rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;line-height:1;border:1px solid var(--color-border);}
  .ft-jobform-grid .form-row.grid-span-full{grid-column:auto;}
  .ft-jobform-errors{padding:10px 16px 16px;color:var(--color-danger);}

  .ft-admin-options-modal{display:flex;flex-direction:column;gap:14px;}
  .ft-admin-options-grid{display:grid;grid-template-columns:80px 1fr;gap:14px;padding:0 14px 18px;align-items:start;}
  .ft-admin-app-list{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius);padding:8px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-sm);}
  .ft-admin-app-btn{width:100%;aspect-ratio:1 / 1;border:none;background:var(--color-card-bg);color:var(--color-text);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);display:grid;place-items:center;cursor:pointer;transition:background .15s ease, color .15s ease, box-shadow .15s ease;border:1px solid var(--color-border);}
  .ft-admin-app-btn svg{width:22px;height:22px;}
  .ft-admin-app-btn:hover{background:var(--color-surface-alt);color:var(--color-text);box-shadow:0 6px 16px rgba(15,23,42,.12);}
  .ft-admin-app-btn.is-active{background:var(--color-primary);color:var(--color-surface);border-color:color-mix(in srgb, var(--color-primary) 85%, var(--color-surface));box-shadow:0 10px 24px rgba(49,87,255,.26);}
  .ft-admin-option-panels{display:flex;flex-direction:column;gap:12px;min-height:320px;}
  .ft-admin-option-panel{display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-card-bg);box-shadow:var(--shadow-sm);}
  .ft-admin-option-panel:not(.is-active){display:none;}
  .ft-admin-panel-heading{display:flex;flex-direction:column;gap:6px;}
  .ft-admin-panel-title{font-size:1.05rem;font-weight:800;color:var(--color-text);}
  .ft-admin-panel-copy{margin:0;color:var(--color-text-muted);font-size:.95rem;}
  .ft-admin-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;}
  .ft-admin-option-grid--stack{grid-template-columns:1fr;gap:14px;}
  .ft-admin-logo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;align-items:stretch;}
  .ft-admin-logo-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
  .ft-admin-logo-thumb{border:1px dashed var(--color-border);border-radius:var(--radius);padding:10px;background:var(--surface);display:flex;align-items:center;justify-content:center;min-width:96px;min-height:70px;}
  .ft-admin-logo-thumb img{max-height:48px;max-width:120px;object-fit:contain;border-radius:var(--radius-sm);}
  .ft-admin-jobs-panel .ft-admin-option-card{background:var(--color-bg-alt);}
  .ft-admin-option-card{border-left:4px solid var(--admin-accent, var(--color-primary));padding:12px 12px 12px 14px;box-shadow:var(--shadow-sm);background:var(--color-bg-alt);}
  .ft-admin-option-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
  .ft-admin-option-card.is-open{box-shadow:0 10px 24px rgba(15,23,42,.12);}
  .ft-admin-option-toggle{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer;padding:0;}
  .ft-admin-option-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px;border-radius:var(--radius-sm);}
  .ft-admin-toggle{display:flex;align-items:center;}
  .ft-admin-caret{font-size:1.1rem;color:var(--color-text-muted);transition:transform .2s ease;} 
  .ft-admin-option-card.is-open .ft-admin-caret{transform:rotate(180deg);} 
  .ft-admin-option-body{margin-top:12px;} 
  .ft-admin-option-title{font-weight:700;margin-bottom:6px;color:var(--color-text);} 
  .ft-admin-option-summary{margin:0;color:var(--color-text-muted);line-height:1.5;} 
  .ft-admin-form-stack{display:flex;flex-direction:column;gap:12px;margin-top:10px;} 
  .ft-admin-inline-form{display:flex;flex-direction:column;gap:14px;border:1px solid var(--color-border);border-radius:var(--radius);padding:12px;background:var(--color-card-bg);box-shadow:var(--shadow-xs);}
  .ft-admin-row{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-card-bg);box-shadow:var(--shadow-xs);} 
  .ft-admin-row + .ft-admin-row{margin-top:8px;} 
  .ft-admin-row-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;} 
  .ft-admin-row-summary.is-dimmed{opacity:.55;} 
  .ft-admin-row-primary{display:flex;align-items:center;gap:10px;min-width:0;} 
  .ft-admin-row-copy{display:flex;flex-direction:column;gap:4px;min-width:0;} 
  .ft-admin-row-title{font-weight:700;color:var(--color-text);} 
  .ft-admin-row-meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--color-text-muted);font-size:.9rem;} 
  .ft-admin-row-actions{display:flex;align-items:center;gap:8px;} 
  .ft-admin-row-actions form{margin:0;} 
  .ft-admin-row-form{padding:0 12px 12px;} 
  .ft-admin-row-action-buttons{display:flex;gap:8px;} 
  .ft-admin-inline-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;}
  .ft-admin-inline-fields.is-single{grid-template-columns:1fr;}
  .ft-admin-field label{display:block;font-weight:700;font-size:.92rem;color:var(--color-text);margin-bottom:4px;}
  .ft-admin-field .ft-input{width:100%;}
  .ft-color-input{padding:0.15rem;min-height:2.5rem;}
  .ft-admin-field--checkbox .ft-checkbox-row{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--color-text);}
  .ft-checkbox{width:18px;height:18px;accent-color:var(--color-primary);border-radius:6px;border:1px solid var(--color-border);box-shadow:var(--shadow-xs);}
  .ft-checkbox:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;}
  .ft-admin-help{color:var(--color-text-muted);font-size:.85rem;margin-top:4px;}
  .ft-admin-inline-actions{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:10px;}
  .ft-admin-inline-actions.is-end{justify-content:flex-end;}
  .ft-admin-add{border:1px dashed var(--color-border);border-radius:var(--radius);padding:10px 12px;background:var(--color-bg-alt);}
  .ft-admin-add__summary{cursor:pointer;font-weight:700;color:var(--color-primary);list-style:none;}
  .ft-admin-add__summary::marker{display:none;}
  .ft-swatch{width:18px;height:18px;border-radius:6px;border:1px solid var(--color-border);box-shadow:var(--shadow-sm);}

  .ft-jobinfo{display:flex;flex-direction:column;gap:10px;padding:0 2px 10px;}
.ft-jobinfo__card{position:relative;border:1px solid var(--color-border);border-radius:none;background:var(--color-card-bg);box-shadow:var(--shadow-sm);padding:11px;display:flex;flex-direction:column;gap:8px;}
.ft-jobinfo__card--emphasis{border-left:4px solid var(--color-primary);}
.ft-jobinfo__card-head{position:relative;display:flex;flex-direction:column;gap:2px;--jobinfo-head-action-space:48px;padding:4px var(--jobinfo-head-action-space) 2px 46px;margin-bottom: 10px;}
.ft-jobinfo__card-head.has-inline-actions{--jobinfo-head-action-space:140px;}
.ft-jobinfo__card-action,.ft-jobinfo__card-actions{position:absolute;top:10px;right:10px;display:flex;gap:6px;align-items:center;}
.ft-jobinfo__card-title{display:flex;align-items:flex-start;gap:8px;font-weight:800;color:var(--color-text);letter-spacing:.01em;}
.ft-jobinfo__card-icon{position:absolute;left:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--tint-primary);color:var(--color-primary-active);border:1px solid var(--color-border);}
.ft-jobinfo__card-helper{margin:0;color:var(--color-text-muted);font-size:12px;line-height:1.25;word-break:break-word;}
.ft-jobinfo__inline-actions{display:flex;align-items:center;gap:8px;}
  .ft-jobinfo__edit-btn{padding:6px 10px;border-radius:999px;font-weight:700;}
  .ft-jobinfo__edit-btn:hover{background:var(--color-bg-alt);color:var(--color-text);}
  .ft-jobinfo__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;}
  .ft-jobinfo__tags-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;align-items:flex-start;}
  .ft-jobinfo__tag{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--tag-color, var(--color-bg-alt)) 18%, var(--color-surface));box-shadow:var(--shadow-sm);color:var(--tag-text-color,var(--color-text));font-weight:700;}
  .ft-jobinfo__tag-dot{width:12px;height:12px;border-radius:50%;background:var(--tag-color,var(--color-primary));box-shadow:inset 0 0 0 2px rgba(255,255,255,.8),0 0 0 1px rgba(15,23,42,.12);}
  .ft-jobinfo__tag-name{line-height:1.2;color:var(--color-text);}
  .ft-detail-pair{padding:12px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-alt);box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:6px;}
  .ft-detail-pair--wide{grid-column:span 2;}
  .ft-detail-pair .ft-detail-term{background:transparent;border:none;padding:0;margin:0;font-weight:700;color:var(--color-text);letter-spacing:.02em;}
  .ft-detail-pair .ft-detail-desc{color:var(--color-text);white-space:normal;line-height:1.5;}
  .ft-jobinfo__note{border-left:4px solid var(--color-primary);}
  .ft-jobinfo__note-body{color:var(--color-text);line-height:1.6;background:var(--color-bg-alt);border:1px dashed var(--color-surface-alt);border-radius:var(--radius);padding:12px;}
.ft-note-form{display:flex;flex-direction:column;gap:8px;margin-top:4px;padding:10px 12px;border:1px dashed var(--color-border);border-radius:var(--radius);background:var(--color-bg-alt);} 
.ft-note-form[hidden]{display:none!important;}
.ft-note-form__fields textarea{width:100%;} 
.ft-note-form__actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;}
  .ft-note-row .ft-file-link{padding:0;}
  .ft-note-row .ft-icon-link__text{font-weight:700;color:var(--color-text);}
  .ft-note-row .ft-note-body{margin-top:4px;color:var(--color-text);line-height:1.5;}
  @media (max-width: 768px){
    .ft-detail-pair--wide{grid-column:span 1;}
    .ft-jobinfo__card{padding:9px;gap:6px;}
    .ft-jobinfo__card-title{font-size:clamp(0.96rem, 0.9rem + 0.65vw, 1.1rem);}
    .ft-jobinfo__card-helper{font-size:0.86rem;line-height:1.35;}
    .ft-jobinfo__tag-name{font-size:0.92rem;}
    .ft-detail-pair .ft-detail-term{font-size:0.92rem;}
    .ft-detail-pair .ft-detail-desc,.ft-jobinfo__note-body{font-size:0.9rem;line-height:1.4;}
  }

  .ft-jobform-head .ft-modal-title{display:flex;gap:.5rem;align-items:stretch;}
  .ft-jobform-head{
    border-radius:var(--radius-lg) var(--radius-lg) 0 0;
    background:var(--color-bg-alt);
    color:var(--color-text);
  }
  .ft-jobdetail-head,.ft-jobmodal-head{
    --jobform-head-pad-y:16px;
    --jobform-head-pad-x:16px;
    display:flex;
    flex-direction:column;
    gap:.85rem;
    padding:0;
    margin-bottom:0;
    background:transparent;
    border:none;
  }
  .ft-jobform-head .ft-modal-header{gap:.35rem;align-items:stretch;}
  .ft-jobform-title{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    padding:0;
    background:transparent;
    color:var(--color-text);
    border-radius:0;
    font-weight:700;
    font-size:var(--ft-type-hero-title);
    letter-spacing:.01em;
    text-transform:none;
    box-shadow:none;
    border:none;
    align-self:flex-start;
    min-height:unset;
    margin:0;
  }
  .ft-jobdetail-title{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:.75rem;margin-top: 3px !important}
  .ft-jobdetail-title__text{flex:1 1 auto;min-width:0;}
  .ft-jobdetail-title__favorite{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;}
  .ft-jobdetail-title__favorite .ft-favorite-btn{--btn-bg:var(--color-surface);--btn-bg-hover:var(--color-surface);--btn-bg-active:var(--color-surface);--btn-color:var(--amber-600,var(--color-warn));--btn-padding-y:.4rem;--btn-padding-x:.5rem;--btn-radius:10px;box-shadow:var(--shadow-sm);border-color:var(--amber-200,var(--color-border));}
  .ft-jobdetail-nav-row,.ft-jobmodal-nav-row{grid-column:1 / -1;grid-row:2;margin-top:.5rem;width:100%;min-width:100%;justify-self:stretch;padding:.45rem 0;}
  .ft-jobdetail-hero-card{width:100%;}
  .ft-jobdetail-hero{align-items:center;gap:1rem;}
  .ft-jobdetail-hero .ft-hero__title{display:flex;align-items:center;gap:.65rem;}
  .ft-jobdetail-hero .ft-jobdetail-title__favorite .ft-favorite-btn{--btn-bg:var(--color-surface);--btn-bg-hover:var(--color-surface);--btn-bg-active:var(--color-surface);--btn-radius:10px;box-shadow:var(--shadow-sm);}
  .ft-jobdetail-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;color:var(--muted);margin-top:5px;}
  .ft-jobdetail-meta__item{display:flex;align-items:center;gap:.35rem;font-size:var(--ft-type-hero-subtitle);}
  .ft-jobdetail-meta__label{font-weight:800;color:var(--color-text);letter-spacing:.01em;}
  .ft-jobdetail-meta__value{font-weight:700;color:var(--color-text);}
  .ft-jobdetail-meta__separator{color:var(--color-border-strong);font-weight:800;}
  .ft-jobdetail-hero-actions .ft-btn{--btn-bg:rgba(255,255,255,.08);--btn-bg-hover:rgba(255,255,255,.12);--btn-bg-active:rgba(255,255,255,.18);--btn-color:var(--color-text);--btn-border:transparent;--btn-radius:12px;box-shadow:var(--shadow-xs);}
  .ft-jobform-title svg{width:20px;height:20px;}
  .ft-jobform-head .ft-modal-actions{
    top:50%;
    right:16px;
    transform:translateY(-50%);
    align-items:center;
  }

  @media (max-width: 768px){
    .ft-jobinfo{gap:8px;padding:0 2px 8px;}
    .ft-jobinfo__card{padding:10px;border-radius:var(--radius-md);box-shadow:var(--shadow-xs);}
    .ft-jobinfo__card-head{padding-right:var(--jobinfo-head-action-space);gap:2px;}
    .ft-jobinfo__grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;}
    .ft-jobinfo__card-title{gap:6px;}
  }

  @media (min-width: 769px){
    .ft-jobdetail-nav-row,.ft-jobmodal-nav-row{margin-top:0;padding:0 0 .35rem;padding-left:var(--jobform-head-pad-x);}
  }

  @media (max-width: 768px){
    .ft-jobdetail-head,.ft-jobmodal-head{
      --jobform-head-pad-y:14px;
      --jobform-head-pad-x:14px;
      gap:.65rem;
    }
    .ft-jobdetail-nav-row,.ft-jobmodal-nav-row{margin-top:.35rem;}
    .ft-jobform-title{
      margin:calc(var(--jobform-head-pad-y) * -1) 0 0;
    }
  }

  @media (max-width: 768px){
    .ft-admin-options-grid{grid-template-columns:1fr;}
    .ft-admin-app-list{flex-direction:row;justify-content:flex-start;}
    .ft-admin-app-btn{width:64px;}
    .ft-admin-option-panels{min-height:0;}
  }


  .ft-repeat-calendar{display:flex;flex-direction:column;gap:12px;margin-top:10px;}
  .ft-calendar{border:1px solid var(--color-surface-alt);border-radius:var(--radius);background:var(--color-surface);padding:12px 12px 14px;box-shadow:0 8px 20px rgba(15, 23, 42, 0.04);}
  .ft-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;}
  .ft-calendar-month{font-weight:700;color:var(--color-text);font-size:1.05rem;}
  .ft-calendar-weekdays{display:grid;grid-template-columns:repeat(7, minmax(0, 1fr));gap:4px;font-size:.75rem;text-transform:uppercase;font-weight:600;color:var(--color-text-muted);text-align:center;letter-spacing:.04em;}
  .ft-calendar-grid{display:grid;grid-template-columns:repeat(7, minmax(0, 1fr));gap:4px;margin-top:6px;touch-action:none;user-select:none;}
.ft-cal-day{position:relative;border:1px solid var(--color-surface-alt);border-radius:10px;padding:.45rem 0;font-weight:600;font-size:.95rem;color:var(--color-text);background:var(--color-surface);cursor:pointer;transition:background .12s ease, border-color .12s ease, color .12s ease;}
.ft-cal-day:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px;}
.ft-cal-day.is-out{color:var(--color-text-muted);background:var(--color-bg);border-color:var(--color-bg-alt);}
.ft-cal-day.is-today{border:1px solid var(--color-primary);box-shadow:0 0 0 2px rgba(49,87,255,.14);}
.ft-cal-day.is-selected{background:var(--color-success);color:var(--color-surface);border-color:var(--color-success);box-shadow:0 6px 14px rgba(34,197,94,.2);}
.ft-cal-day.has-jobs:not(.is-selected)::after{content:"";position:absolute;inset:4px;pointer-events:none;border:2px solid var(--color-primary);border-radius:12px;box-shadow:0 0 0 1px color-mix(in srgb, var(--color-primary) 12%, transparent);}
.ft-cal-day.is-preview:not(.is-selected){background:var(--color-bg-alt);border-color:var(--color-border);color:var(--color-text);}
.ft-cal-day.is-base{background:var(--color-bg-alt);color:var(--color-primary-active);border:1px dotted var(--color-primary);box-shadow:0 0 0 2px rgba(49,87,255,.1);cursor:default;}
.ft-cal-day.is-base[disabled]{opacity:1;}
  .ft-calendar-meta{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--color-text-muted);font-size:.88rem;flex-wrap:wrap;}
  .ft-calendar-meta strong{color:var(--color-text);font-weight:700;font-size:1rem;}
  .ft-repeat-meta{display:flex;align-items:center;justify-content:center;gap:10px;min-width:0;}
  .ft-repeat-meta__counts{display:flex;align-items:baseline;gap:4px;font-weight:800;color:var(--color-text);font-variant-numeric:tabular-nums;}
  .ft-repeat-meta__divider{color:var(--color-text-muted);}
  .ft-repeat-actions{display:flex;gap:8px;margin-left:auto;align-items:center;}

  @media (max-width: 720px){
    .ft-calendar-meta{flex-wrap:nowrap;align-items:flex-end;}
  }
.ft-calendar-inputs{display:none;}
.ft-addjobs-modal{display:flex;flex-direction:column;gap:16px;}
.ft-addjobs-table{border:1px solid var(--border-muted);border-radius:14px;overflow:hidden;background:var(--color-surface);}
.ft-addjobs-row{display:grid;grid-template-columns:max-content minmax(0,1fr) minmax(0,1fr) auto;grid-template-rows:auto auto;gap:16px;padding:16px;align-items:start;}
.schedule-addjobs-inline .ft-addjobs-row{grid-template-columns:var(--addjobs-name-col, max-content) var(--addjobs-address-col, minmax(0,1fr)) var(--addjobs-desc-col, minmax(0,1fr)) auto;}
.ft-addjobs-row + .ft-addjobs-row{border-top:1px solid var(--border-muted);}
.ft-addjobs-row--base{background:var(--surface-subtle);}
.ft-addjobs-slot{display:flex;align-items:center;justify-content:flex-start;gap:6px;min-width:0;align-self:center;grid-row:2;}
.ft-addjobs-chip{min-width:0;margin-left:0;padding:2px 6px;border-radius:999px;font-size:.95rem;letter-spacing:0;text-transform:none;line-height:1;box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;justify-content:center;}
.ft-addjobs-chip.neutral{background:var(--color-bg-alt);color:var(--color-text);}
.ft-addjobs-chip.primary{background:var(--color-primary);color:var(--color-surface);}
.ft-addjobs-field{display:contents;}
.ft-addjobs-field > .ft-field-label{grid-row:1;margin-bottom:6px;font-size:.85rem;font-weight:600;color:var(--color-text-muted);}
.ft-addjobs-field > .ft-addjobs-value,
.ft-addjobs-field > .ft-input{grid-row:2;min-width:0;}
.ft-addjobs-field--addr > *{grid-column:2;}
.ft-addjobs-field--desc > *{grid-column:3;}
.ft-addjobs-field--wide > *{grid-column:2 / span 2;}
.ft-addjobs-field--wide > .ft-addjobs-value{grid-row:2;}
.ft-addjobs-field--wide{grid-column:2 / span 2;}
.ft-addjobs-value{font-weight:600;color:var(--color-text);word-break:break-word;}
.ft-addjobs-row--base .ft-addjobs-value{font-weight:500;}
.ft-addjobs-row--adder{justify-content:flex-start;grid-template-columns:max-content;grid-template-rows:auto;}
.ft-addjobs-row--adder .ft-addjobs-slot{grid-row:1;}
.ft-addjobs-add{border:none;background:inherit;cursor:pointer;}
.ft-addjobs-add:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;}
.ft-addjobs-remove{justify-self:flex-end;align-self:center;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:4px;min-width:0;grid-row:2;}
.ft-btn.ft-addjobs-remove{--btn-padding-y:.35rem;--btn-padding-x:.35rem;--btn-min-height:2.2rem;min-width:2.2rem;line-height:1;}
.ft-addjobs-remove svg{width:18px;height:18px;}
.ft-addjobs-row--base .ft-addjobs-remove{display:none;}
@media (max-width: 768px){
  .ft-addjobs-row{grid-template-columns:1fr;}
  .ft-addjobs-field--wide{grid-column:span 1;}
  .ft-addjobs-slot{justify-content:flex-start;}
}






  .ft-emphasis{display:inline-block;background:var(--color-surface-alt, var(--color-bg-alt));color:var(--color-text);font-weight:600;padding:1px 5px;border-radius:6px;font-size:0.9rem;line-height:1.4;border:1px solid var(--color-surface-alt, var(--color-bg-alt));}
  .ft-emphasis.light{background:var(--color-bg-alt);color:var(--color-primary);border:1px solid var(--color-primary);}


  #jobTable.htmx-request,
  #rosterTable.htmx-request{opacity:0.6;filter:blur(1px);transition:opacity .2s ease, filter .2s ease;position:relative;}
  #jobTable.htmx-request::after,
  #rosterTable.htmx-request::after{content:"";position:absolute;top:8px;right:8px;width:10px;height:10px;border-radius:50%;border:2px solid var(--color-primary);border-top-color:transparent;animation:spin .8s linear infinite;}


  .ft-inline{width:100%;display:block;}
  .ft-inline.flash-ok, .flash-ok{animation:okFlash 1200ms ease-out 1;outline:2px solid rgba(34, 197, 94, .75);}
  [disabled], .is-disabled{opacity:.6;cursor:not-allowed;}


  @keyframes okFlash{0% { background:var(--tint-success);} 40% { background:var(--tint-success);} 100% { background:var(--color-surface);}}


    #jobTable,
    #rosterTable{scrollbar-color:var(--color-border) transparent;}
    #jobTable .ft-table,
    #rosterTable .ft-table{table-layout:auto;}
    #jobTable .ft-table{min-width:880px;}
    #rosterTable .ft-table{min-width:760px;}
    #jobTable .ft-table thead th,
    #rosterTable .ft-table thead th{background:linear-gradient(180deg, var(--color-bg-alt) 0%, var(--color-surface-alt) 100%);border-bottom-color:var(--color-surface-alt);color:var(--color-text);letter-spacing:.04em;text-align:left;font-size:.82rem;}
    #jobTable .ft-table thead th.col-po,
    #rosterTable .ft-table thead th.col-name,
    #dayTable .ft-table thead th.col-employee{border-top-left-radius:var(--radius);border-bottom-left-radius:0;}
    #rosterTable .ft-table thead th.col-name.ft-col-frozen{background:var(--ft-header-solid);color:var(--color-surface);border-bottom-color:var(--ft-header-solid);box-shadow:6px 0 12px rgba(15, 23, 42, 0.12);}

    /* Keep headers tucked against the toolbars/heroes on all table views */
    #ft-page-main .ft-table-wrap,
    #jobTable.ft-table-wrap,
    #rosterTable.ft-table-wrap,
    #dayPane .ft-card--schedule .ft-table-wrap{margin-top:-4px;}
    #jobTable .ft-table thead th.col-po{text-align:center;}
    #jobTable .ft-table thead th:not(.col-po){text-align:left;}
    #jobTable .ft-table td:not(.col-po){text-align:left;}
    #rosterTable .ft-table thead th.col-name{text-align:center;}
    #jobTable .ft-table tbody tr,
    #rosterTable .ft-table tbody tr{transition:background .15s ease, transform .15s ease;}
    #jobTable .ft-table td,
    #rosterTable .ft-table td{vertical-align:middle;}
    #dayTable,
    #jobTable,
    #rosterTable{
      --ft-table-row-bg:color-mix(in srgb, var(--ft-header-solid) 6%, var(--color-surface) 94%);
      --ft-table-row-bg-alt:color-mix(in srgb, var(--ft-header-solid) 10%, var(--color-surface) 90%);
      --ft-table-row-bg-hover:color-mix(in srgb, var(--ft-header-solid) 14%, var(--color-surface) 86%);
    }
    #jobTable .ft-table tbody tr.job-row,
    #rosterTable .ft-table tbody tr.roster-row{background:var(--ft-table-row-bg);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:background .15s ease, box-shadow .15s ease, transform .15s ease;border:1px solid var(--color-border);}
    #jobTable .ft-table tbody tr.job-row td,
    #rosterTable .ft-table tbody tr.roster-row td{border-top:none;}
    #jobTable .ft-freeze-first-col tbody tr.job-row td.ft-col-frozen,
    #rosterTable .ft-freeze-first-col tbody tr.roster-row td.ft-col-frozen:not(.col-name){background:var(--ft-table-row-bg);}
    #jobTable .ft-table tbody tr.job-row td:first-child,
    #rosterTable .ft-table tbody tr.roster-row td:first-child,
    #dayTable .ft-table tbody tr.schedule-row td:first-child{border-top-left-radius:0;border-bottom-left-radius:0;}
    #jobTable .ft-table tbody tr.job-row:first-child td:first-child,
    #rosterTable .ft-table tbody tr.roster-row:first-child td:first-child,
    #dayTable .ft-table tbody tr.schedule-row:first-child td:first-child{border-top-left-radius:0;}
    #jobTable .ft-table tbody tr.job-row:last-child td:first-child,
    #rosterTable .ft-table tbody tr.roster-row:last-child td:first-child{border-bottom-left-radius:var(--radius);}
    #jobTable .ft-table tbody tr.job-row td:last-child,
    #rosterTable .ft-table tbody tr.roster-row td:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius);}
    #jobTable .ft-table tbody tr.job-row:nth-child(even),
    #rosterTable .ft-table tbody tr.roster-row:nth-child(even){background:var(--ft-table-row-bg-alt);}
    #jobTable .ft-table tbody tr.job-row:not(.job-row--new):not(.job-row--recent):hover,
    #rosterTable .ft-table tbody tr.roster-row:hover{background:var(--ft-table-row-bg-hover);box-shadow:var(--shadow);transform:translateY(-1px);}
    #jobTable .ft-freeze-first-col tbody tr.job-row:not(.job-row--new):not(.job-row--recent):hover td.ft-col-frozen,
    #rosterTable .ft-freeze-first-col tbody tr.roster-row:hover td.ft-col-frozen:not(.col-name){background:var(--ft-table-row-bg-hover);}
    #dayTable .ft-table tbody tr.schedule-row{position:relative;background:var(--ft-table-row-bg);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:background .15s ease, box-shadow .15s ease, transform .15s ease;border:1px solid var(--color-border);}
    #dayTable .ft-table tbody tr.schedule-row td{border-top:none;background:var(--ft-table-row-bg);}
    #dayTable .ft-table tbody tr.schedule-row td:first-child{border-top-left-radius:0;border-bottom-left-radius:0;}
    #dayTable .ft-table tbody tr.schedule-row td:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius);}
    #dayTable .ft-table tbody tr.schedule-row:last-child td:first-child{border-bottom-left-radius:var(--radius);}
    #dayTable .ft-table tbody tr.schedule-row:nth-child(even){background:var(--ft-table-row-bg-alt);}
    #dayTable .ft-table tbody tr.schedule-row:nth-child(even) td{background:var(--ft-table-row-bg-alt);}
    #dayTable .ft-table tbody tr.schedule-row:hover{background:var(--ft-table-row-bg-hover);box-shadow:var(--shadow);transform:translateY(-1px);z-index:var(--z-tooltip);}
    #dayTable .ft-table tbody tr.schedule-row:focus-within{background:var(--ft-table-row-bg-hover);box-shadow:var(--shadow);z-index:var(--z-tooltip);}
    #dayTable .ft-table tbody tr.schedule-row:hover:focus-within{transform:none;}
    #dayTable .ft-table tbody tr.schedule-row:hover td,#dayTable .ft-table tbody tr.schedule-row:focus-within td{background:var(--ft-table-row-bg-hover);}
    #dayTable .ft-freeze-first-col tbody tr.schedule-row td.col-employee.ft-col-frozen,
    #dayTable .ft-freeze-first-col tbody tr.schedule-row:hover td.col-employee.ft-col-frozen{background:var(--ft-header-solid);color:var(--color-surface);}
      #jobTable .col-po{white-space:nowrap;text-align:center;}
    #jobTable .col-name{min-width:clamp(200px, 25vw, 320px);}
    #jobTable .col-address{min-width:clamp(210px, 28vw, 360px);}
    #jobTable .col-customer{min-width:clamp(190px, 24vw, 280px);}
    #jobTable .col-manager{min-width:170px;white-space:nowrap;}
    #jobTable .col-type{min-width:140px;white-space:nowrap;}
    #jobTable .col-created{min-width:96px;white-space:nowrap;width:1%;}
    @media (min-width: 769px){
      #jobTable .ft-table thead th.col-po,
      #jobTable td.col-po{padding-right:6px;}
    }
    #jobTable th.col-po,
    #jobTable td.col-po{background:var(--ft-header-solid);color:var(--color-surface);}
    #jobTable .ft-freeze-first-col .ft-col-frozen.col-po{background:var(--ft-header-solid);}
    #jobTable .ft-freeze-first-col tbody tr.job-row td.col-po.ft-col-frozen,
    #jobTable .ft-freeze-first-col tbody tr.job-row:not(.job-row--new):not(.job-row--recent):hover td.col-po.ft-col-frozen{background:var(--ft-header-solid);color:var(--color-surface);}
    #jobTable th.col-po .ft-sort-btn{color:var(--color-header-text, var(--color-surface));}
    #jobTable th.col-po .ft-sort-btn .ft-sort-caret{border-top-color:color-mix(in srgb, var(--color-header-text, var(--color-surface)) 80%, transparent);}
    #jobTable td.col-po{padding:0;}
    #jobTable .ft-po-btn{--btn-bg:transparent;--btn-color:var(--color-header-text, var(--color-text));--btn-bg-hover:color-mix(in srgb, var(--color-header-text, var(--color-text)) 12%, transparent);--btn-bg-active:color-mix(in srgb, var(--color-header-text, var(--color-text)) 18%, transparent);padding:14px 12px;border-radius:0;box-shadow:none;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:100%;text-align:center;}
    #jobTable td.col-po::after{content:"";position:absolute;top:0;right:-1px;width:1px;height:100%;background:var(--color-border);}
    #jobTable .ft-po-btn:focus-visible{box-shadow:0 0 0 var(--ft-ring) color-mix(in srgb, var(--color-primary) 35%, transparent);}
    #jobTable .ft-po-btn:hover{text-decoration:none;}
    #jobTable .ft-po-btn__number{font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.01em;}
    #jobTable .ft-po-btn__icon{width:14px;height:14px;opacity:.86;flex-shrink:0;display:inline-block;}
    #jobTable .job-row--new{background:color-mix(in srgb, var(--color-success) 28%, var(--color-surface));box-shadow:0 0 0 2px rgba(34,197,94,.2) inset, 0 10px 22px rgba(16,185,129,.18);}
    #jobTable .job-row--recent{background:color-mix(in srgb, var(--color-success) 18%, var(--color-surface));box-shadow:0 0 0 1px rgba(34,197,94,.18) inset;}
    #jobTable .ft-table tbody tr.job-row--new:hover{background:color-mix(in srgb, var(--color-success) 28%, var(--color-surface));box-shadow:0 0 0 2px rgba(34,197,94,.2) inset, 0 10px 22px rgba(16,185,129,.18);}
    #jobTable .ft-table tbody tr.job-row--recent:hover{background:color-mix(in srgb, var(--color-success) 18%, var(--color-surface));box-shadow:0 0 0 1px rgba(34,197,94,.18) inset;}
    #jobTable .job-row--new td:not(.col-po),
    #jobTable .job-row--recent td:not(.col-po){background:inherit;}
    #jobTable .ft-sort-btn{display:flex;align-items:center;gap:8px;width:100%;justify-content:flex-start;background:transparent;border:none;padding:0;color:inherit;font-weight:600;text-align:left;letter-spacing:inherit;}
    #jobTable .ft-sort-btn--center{justify-content:center;text-align:center;}
    #jobTable th:not(.col-po) .ft-sort-btn{justify-content:flex-start;}
    #jobTable .ft-sort-btn .ft-sort-caret{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--color-border-strong);opacity:0.55;transition:transform .15s ease, opacity .15s ease;}
    #jobTable .ft-sort-btn.is-active .ft-sort-caret{opacity:1;border-top-color:var(--color-text-muted);}
    #jobTable .ft-sort-btn.is-active.is-asc .ft-sort-caret{transform:rotate(180deg);}
    #jobTable .ft-sort-btn:hover{color:var(--color-text);}
    #jobTable .ft-infinite-trigger td{padding:14px 8px;}
    #jobTable .ft-loadmore-btn{width:100%;justify-content:center;gap:10px;font-weight:700;color:var(--color-text-muted);background:var(--color-bg-alt);border:1px dashed var(--color-border);}
    #jobTable .ft-loadmore-btn:hover{background:var(--color-surface-alt);}
    #jobTable .ft-loadmore-btn.htmx-request{pointer-events:none;opacity:.9;}
    #jobTable .ft-loadmore-indicator{display:none;width:14px;height:14px;border-radius:50%;border:2px solid var(--color-border);border-top-color:var(--color-primary);animation:spin .9s linear infinite;}
    #jobTable .ft-loadmore-btn.htmx-request .ft-loadmore-indicator{display:inline-block;}
    #jobTable .ft-loadmore-btn.htmx-request .ft-loadmore-label{opacity:.8;}
  @media (max-width: 768px){
    #jobTable .ft-loadmore-btn{width:clamp(0px, calc(100vw - 24px), 100%);margin-left:auto;margin-right:auto;}
  }
    #jobTable .job-cell{display:flex;flex-direction:column;gap:6px;min-width:0;justify-content:center;align-items:flex-start;text-align:left;}
    #jobTable .job-title{font-weight:500;color:var(--color-text);line-height:1.2;}
    #jobTable .job-inline{min-width:200px;}
    #jobTable .col-created .job-inline{min-width:0;}
    #jobTable .job-inline--static{color:var(--color-text);font-weight:600;}
    #jobTable td.job-inline-td{
      position:relative;
      padding:4px 4px 5px;
      background:transparent;
      border:0;
      border-top:1px solid var(--color-border);
      border-radius:0;
      box-shadow:none;
    }
    #jobTable td.col-customer.job-inline-td{background:inherit;}
    #jobTable td.job-inline-td .job-cell{
      padding:4px 6px;
      position:relative;
      z-index:1;
      display:flex;
      align-items:stretch;
      justify-content:flex-start;
      width:100%;
      max-width:100%;
      margin:0;
    }
    #jobTable .job-inline-pill{
      display:flex;
      align-items:stretch;
      width:100%;
      min-height:52px;
      background:linear-gradient(180deg, color-mix(in srgb, var(--color-card-bg) 92%, var(--color-bg-alt) 8%) 0%, color-mix(in srgb, var(--color-card-bg) 84%, var(--color-surface-alt) 16%) 100%);
      border-radius:var(--radius);
      box-shadow:var(--shadow-sm);
      border:1px solid var(--color-border);
      overflow:hidden;
      position:relative;
      isolation:isolate;
    }
    #jobTable .job-inline-pill__accent{
      flex:0 0 12px;
      background:linear-gradient(180deg, color-mix(in srgb, var(--ft-header-solid) 88%, var(--color-surface) 12%) 0%, color-mix(in srgb, var(--ft-header-solid) 78%, var(--color-surface-alt) 22%) 100%);
      border-top-left-radius:var(--radius);
      border-bottom-left-radius:var(--radius);
      box-shadow:inset -1px 0 0 color-mix(in srgb, var(--color-surface) 40%, transparent);
    }
    #jobTable .job-inline-pill__body{
      flex:1 1 auto;
      display:flex;
      align-items:center;
      gap:8px;
      background:var(--color-surface);
      border-top-right-radius:var(--radius);
      border-bottom-right-radius:var(--radius);
      padding:10px 12px;
    }
    #jobTable td.job-inline-td::after{
      content:"";
      position:absolute;
      inset:1px;
      border-radius:calc(var(--radius) - 1px);
      pointer-events:none;
      opacity:0;
      z-index:0;
    }
    #jobTable td.job-inline-td:has(.flash-ok)::after{
      animation:okFlashFill 1200ms ease-out 1;
    }
    #jobTable td.job-inline-td:focus-within .job-inline-pill{
      border-color:color-mix(in srgb, var(--color-primary) 35%, var(--color-border));
      box-shadow:0 0 0 var(--ft-ring) color-mix(in srgb, var(--color-primary) 32%, transparent);
    }
    #jobTable .job-inline.ft-inline{
      border:none;
      background:transparent;
      padding:0;
      box-shadow:none;
      width:100%;
      max-width:100%;
      color:var(--color-text);
      font-weight:600;
      border-radius:0;
      margin:0;
      text-align:left;
    }
    #jobTable .job-inline.ft-inline:focus{
      outline:var(--ft-ring) solid color-mix(in srgb, var(--color-primary) 40%, transparent);
      outline-offset:2px;
    }
    #jobTable .job-inline.ft-inline.flash-ok{
      animation:none;
      outline:none;
      box-shadow:none;
      background:transparent;
    }
    @media (max-width: 768px){
      #jobTable .job-inline,
      #jobTable .job-inline.ft-inline{font-size:0.95rem;}
    }
    @keyframes okFlashFill{
      0%{background:color-mix(in srgb, var(--color-success) 58%, var(--tint-success));opacity:1;}
      35%{background:color-mix(in srgb, var(--color-success) 32%, var(--tint-success));opacity:1;}
      100%{background:transparent;opacity:0;}
    }
    #rosterTable .col-name{width:1%;min-width:0;white-space:nowrap;}
    #rosterTable th.col-name,
    #rosterTable td.col-name{background:var(--ft-header-solid);color:var(--color-surface);}
    #rosterTable td.col-name.ft-col-frozen{box-shadow:6px 0 12px rgba(15, 23, 42, 0.12);}
    #rosterTable .ft-freeze-first-col tbody tr:nth-child(even) td.col-name.ft-col-frozen,
    #rosterTable .ft-freeze-first-col tbody tr.roster-row:hover td.col-name.ft-col-frozen{background:var(--ft-header-solid);}
    #rosterTable td.col-name::after{content:"";position:absolute;top:0;right:-1px;width:1px;height:100%;background:var(--color-border);}
    #rosterTable .col-phone{min-width:150px;white-space:nowrap;}
    #rosterTable .col-email{min-width:240px;}
    #rosterTable .col-start{min-width:130px;white-space:nowrap;}
    #rosterTable .col-tenure{min-width:120px;white-space:nowrap;}
    #rosterTable th.col-name .ft-sort-btn{color:var(--color-surface);}
    #rosterTable th.col-name .ft-sort-caret{border-top-color:color-mix(in srgb, var(--color-surface) 80%, transparent);}
    #rosterTable .ft-sort-btn{display:flex;align-items:center;gap:8px;width:100%;justify-content:flex-start;background:transparent;border:none;padding:0;color:inherit;font-weight:700;letter-spacing:inherit;cursor:default;}
    #rosterTable .ft-sort-btn--center{justify-content:center;text-align:center;}
    #rosterTable .ft-sort-btn .ft-sort-caret{display:none;}
    #rosterTable .ft-roster-cell{display:flex;flex-direction:column;gap:6px;min-width:0;justify-content:center;}
    #rosterTable .ft-roster-link{color:inherit;text-decoration:none;font-weight:600;}
    #rosterTable .ft-roster-link:hover{color:var(--color-primary);}
    #rosterTable .ft-roster-name{color:var(--color-text);line-height:1.2;}
    #rosterTable .ft-roster-name-btn{--btn-bg:transparent;--btn-color:var(--color-surface);--btn-bg-hover:color-mix(in srgb, var(--color-surface) 12%, transparent);--btn-bg-active:color-mix(in srgb, var(--color-surface) 18%, transparent);padding:.55rem .95rem;border-radius:12px;box-shadow:none;display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.01em;width:100%;justify-content:space-between;max-width:100%;white-space:normal;}
    #rosterTable .ft-roster-name-btn__text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;gap:2px;min-width:0;}
    #rosterTable .ft-roster-name-btn__first{color:var(--color-surface);font-weight:700;line-height:1.1;}
    #rosterTable .ft-roster-name-btn__last{color:var(--color-surface);font-size:.75rem;letter-spacing:.08em;opacity:.9;text-transform:uppercase;line-height:1.1;}
    #rosterTable td.col-name .ft-roster-name{color:var(--color-surface);font-weight:700;}
    #rosterTable .ft-roster-name__icon{width:14px;height:14px;opacity:.82;flex-shrink:0;}
    #rosterTable .ft-roster-meta{color:var(--color-text);font-size:1rem;font-weight:600;}
    #rosterTable .ft-roster-contact{color:var(--color-text);font-weight:600;word-break:break-word;}
    #rosterTable .ft-roster-cell a{font-weight:600;}
    .job-chip{display:inline-flex;align-items:center;gap:0;padding:.35rem .6rem;border-radius:999px;background:color-mix(in srgb, var(--jobtype-color, var(--color-primary)) 15%, var(--color-surface));color:color-mix(in srgb, var(--jobtype-color, var(--color-primary)) 70%, var(--color-surface));font-weight:600;font-size:.9rem;width:fit-content;}
    .job-chip::before{display:none;}

  @keyframes newJobPulse{
    0%{background:var(--tint-success);}
    35%{background:var(--tint-success);}
    100%{background:linear-gradient(90deg, var(--tint-success) 0%, var(--tint-success) 60%);}
  }


    .ft-from{display:grid;grid-template-columns:1fr;gap:6px;padding:6px 2px 10px;}
    .ft-from .from-date{color:var(--color-text-muted);font-weight:600;}
    .ft-from .from-addr, .ft-from .from-desc{color:var(--color-text-muted);}



  @media (max-width: 768px){
    .ft-brand-logo{width:32px;height:32px;}
    .ft-brand-title{font-size:1rem;}
    .ft-btn{--btn-padding-y:.55rem;--btn-padding-x:.85rem;}
    .ft-btn--sm,
    .ft-btn.tiny{--btn-padding-y:.4rem;--btn-padding-x:.65rem;--btn-min-height:2.2rem;}
  }

  @media (max-width: 768px){
    .ft-calendar{padding:10px 10px 12px;}
    .ft-cal-day{padding:.35rem 0;font-size:.88rem;}
    .ft-calendar-weekdays{font-size:.7rem;}
    .ft-calendar-meta{flex-direction:column;align-items:flex-start;gap:6px;}
  }

  /* Keep repeat calendar meta items on a single row, even on mobile */
  .ft-repeat-calendar .ft-calendar-meta{flex-wrap:nowrap;align-items:center;justify-content:center;gap:8px;}
  @media (max-width: 768px){
    .ft-repeat-calendar .ft-calendar-meta{flex-direction:row;justify-content:center;align-items:center;}
  }

  @media (max-width: 768px){
    .ft-toolbar .ft-input{width:100%;}
    .ft-toolbar .ft-search{width:100%;}
  }

  @media (max-width: 768px){
    .ft-toolbar.inline{flex-wrap:wrap;}
  }

  @media (max-width: 768px){
    .ft-header-inner, .ft-footer-inner{padding:12px min(4vw, 20px);}
    .ft-toolbar{flex-direction:column;align-items:stretch;gap:8px;}
    .ft-toolbar form{width:100%;}
    .form-grid{grid-template-columns:1fr;}
    .ft-table thead th, .ft-table td{padding:10px 8px;}

  }

    @media (max-width: 768px){
      .schedule-day-picker__calendar{min-width:0;width:min(100%, 360px);margin-inline:auto;display:block;}
      .schedule-day-picker__calendar .ft-calendar{width:100%;}
      .ft-modal-panel--calendar .ft-modal-body{padding:8px 10px 12px;}
    .schedule-day-nav{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;margin-top:0;margin-inline:auto;align-self:center;text-align:left;width:100%;flex-wrap:nowrap;}
    .schedule-day-nav__core{display:inline-flex;align-items:center;gap:8px;flex:1 1 auto;flex-wrap:nowrap;min-width:0;}
    .schedule-day-nav__title{font-size:.95rem;white-space:nowrap;}
    #dayTable .ft-table thead th,
    #dayTable .ft-table td{padding:8px 6px;font-size:0.85rem;line-height:1.35;}
    .schedule-row-head{gap:6px;}
    #dayTable .col-employee{width:1%;min-width:0;}
    .schedule-desc-cell{align-items:flex-start;gap:8px;}
    .schedule-row-actions{gap:4px;margin-left:auto;}

    #jobTable{scrollbar-width:none;-ms-overflow-style:none;}
    #jobTable::-webkit-scrollbar{display:none;}
    #jobTable .ft-table{min-width:700px;}
    #jobTable .col-address{min-width:clamp(110px, 34vw, 320px);white-space:normal;}
    #jobTable .col-name{min-width:clamp(100px, 30vw, 280px);white-space:normal;}
    #jobTable .col-customer{min-width:200px;}
    #jobTable .col-manager{min-width:200px;}
    #jobTable .col-type{min-width:170px;}
    #jobTable .col-created{min-width:96px;}
    #jobTable thead th,
    #jobTable td{padding:8px 6px;font-size:.82rem;line-height:1.35;}
    #jobTable .col-address,
    #jobTable .col-name{font-size:0.82rem;line-height:1.4;word-break:break-word;}
    #jobTable th.col-po,
    #jobTable td.col-po{left:0;}

    #rosterTable{scrollbar-width:none;-ms-overflow-style:none;}
    #rosterTable::-webkit-scrollbar{display:none;}
    #rosterTable .ft-table{min-width:660px;}
    #rosterTable .ft-table thead th,
    #rosterTable .ft-table td{padding:8px 6px;font-size:.82rem;line-height:1.35;}
    #rosterTable .ft-roster-name,
    #rosterTable .ft-roster-contact,
    #rosterTable .ft-roster-meta{font-size:.9rem;line-height:1.35;}
    #rosterTable .ft-roster-name-btn{--btn-padding-y:.35rem;--btn-padding-x:.75rem;font-size:.86rem;}
  }

  @media (max-width: 768px){
    #jobTable .ft-table thead th,
    #jobTable .ft-table thead th.col-po,
    #rosterTable .ft-table thead th,
    #rosterTable .ft-table thead th.col-name,
    #dayTable .ft-table thead th,
    #dayTable .ft-table thead th.col-employee{border-radius:0;}

    #jobTable .ft-table tbody tr.job-row,
    #rosterTable .ft-table tbody tr.roster-row,
    #dayTable .ft-table tbody tr.schedule-row{border-radius:0;}

    #jobTable .ft-table tbody tr.job-row td,
    #rosterTable .ft-table tbody tr.roster-row td,
    #dayTable .ft-table tbody tr.schedule-row td{border-radius:0;}

    #jobTable .ft-table tbody tr.job-row:first-child td:first-child,
    #rosterTable .ft-table tbody tr.roster-row:first-child td:first-child,
    #dayTable .ft-table tbody tr.schedule-row:first-child td:first-child{border-top-left-radius:0;}

    #jobTable .ft-table tbody tr.job-row:last-child td:first-child,
    #rosterTable .ft-table tbody tr.roster-row:last-child td:first-child,
    #dayTable .ft-table tbody tr.schedule-row:last-child td:first-child{border-bottom-left-radius:0;}

    #jobTable .ft-table tbody tr.job-row td:last-child,
    #rosterTable .ft-table tbody tr.roster-row td:last-child,
    #dayTable .ft-table tbody tr.schedule-row td:last-child{border-top-right-radius:0;border-bottom-right-radius:0;}
  }

  @media (max-width: 768px){
    .ft-header-inner{position:relative;display:flex;align-items:center;}
    .ft-header-actions{margin-left:auto;}
    .ft-nav__utilities--mobile{display:flex;align-items:center;gap:8px;}
    .ft-install-btn.is-visible{display:inline-flex;}
    /* Hide hamburger toggle and dropdown nav on mobile */
    .ft-nav-toggle{
      display:none !important;
    }
    .ft-nav{
      display:none !important;
    }

    :root{
      --ft-bottom-nav-height:72px;
      --ft-page-toolbar-offset:96px;
    }

    .ft-bottom-nav{
      display:flex;
    }

    .ft-page-toolbar{
      position:fixed;
      left:0;
      right:0;
      bottom:calc(var(--ft-bottom-nav-height, 72px) + env(safe-area-inset-bottom, 0px));
      margin:0;
      width:100%;
      z-index:1120;
      box-shadow:var(--shadow-lg);
      border-radius:0;
    }

    .ft-page-toolbar .ft-directory-search{width:100%;}

    main{
      padding-bottom:calc(env(safe-area-inset-bottom, 0px) + var(--ft-bottom-nav-height, 72px) + var(--ft-page-toolbar-offset, 96px)); /* reserve space for toolbar + nav */
    }

    .ft-footer{display:none;}
  }

  @media (max-width: 768px){
    .ft-toolbar{justify-content:flex-start;}
    .schedule-day-nav{justify-content:center;margin-inline:auto;}
  }

  @media (min-width: 768px){
    /* Desktop keeps existing header nav */
    .ft-nav-toggle{
      display:none !important;
    }
  }



  .ft-detail-grid{
    display:grid;
    grid-template-columns: 180px 1fr;
    gap: 6px 14px;
    align-items:start;
  }
  .ft-detail-term{
    color:var(--color-text-muted);
    font-weight:600;
    letter-spacing:.02em;
    background:linear-gradient(180deg,var(--color-surface),rgba(15,23,42,.02));
    border-right:1px solid var(--color-border);
  }
  .ft-detail-desc{
    color: var(--color-text);
     overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}




.ft-detail-grid--schedule{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  gap:0;
  margin:0;
}

.ft-detail-grid--schedule .ft-detail-item{
  display:grid;
  grid-template-columns: 100px auto;
  gap:0;
  align-items:stretch;
  flex:100%;
  border-bottom:1px solid var(--color-border);
  border-radius:none;
  background:linear-gradient(180deg,var(--color-surface) 0%,var(--color-bg-alt) 100%);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
  transition:box-shadow .15s ease, transform .04s ease, border-color .15s ease;
}

[data-dashboard-card="scheduled"] .ft-detail-grid--schedule .ft-detail-item{
  grid-template-columns: 1fr;
}

[data-dashboard-card="scheduled"] .ft-detail-grid--schedule .ft-detail-term{
  display:none;
}

[data-dashboard-card="scheduled"] .ft-detail-grid--schedule .ft-detail-desc{
  padding-left:14px;
}

@media (max-width: 768px){
  .ft-detail-grid--schedule .ft-detail-item{
    grid-template-columns: minmax(78px, 92px) 1fr;
  }

  .ft-detail-grid--schedule .ft-detail-term{
    border-right:1px solid rgba(203, 213, 225, 0.9);
    border-bottom:none;
    justify-content:center;
    align-items:center;
    padding:10px 8px;
  }

  .ft-detail-grid--schedule .ft-detail-desc{
    padding:10px 12px;
  }

  .ft-chip--day{
    min-width:78px;
    white-space:normal;
    line-height:1.05;
    text-align:center;
    padding:6px 8px;
    display:grid;
    grid-auto-flow:row;
    row-gap:2px;
  }
}

  .ft-detail-grid--schedule .ft-detail-item.ft-detail-item--no-label{
    grid-template-columns: 1fr;
  }

  .ft-detail-grid--schedule .ft-detail-item.ft-detail-item--no-label .ft-detail-term{
    display:none;
  }

  .ft-detail-grid--schedule .ft-detail-item.ft-detail-item--no-label .ft-detail-desc{
    padding-left:14px;
  }

.ft-detail-grid--schedule .ft-detail-term{
  margin:0;
  background:rgba(230, 237, 246, 0.72);
  border-right:1px solid rgba(203, 213, 225, 0.9);
  color:var(--color-text-muted);
  font-size:.92rem;
  letter-spacing:.01em;
  font-weight:700;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  text-align: center;
}


.ft-detail-grid--schedule .ft-detail-desc{
  margin:0;
  padding:8px 10px;
  background:color-mix(in srgb, var(--color-card-bg) 92%, var(--color-surface-alt));
  display:flex;
  position:relative;
}

.ft-detail-grid--schedule .ft-schedule__details{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.35rem;
  width:100%;
  padding:10px;
}

.ft-detail-grid--schedule .ft-schedule__summary{
  flex:1 1 auto;
  min-width:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:0.2rem;
}

.ft-schedule__details-wrapper{
  display:flex;
  align-items:flex-start;
  gap:10px;
  width:100%;
  position:relative;
}

.ft-favorite-btn{
  --btn-bg:transparent;
  --btn-bg-hover:rgba(245,158,11,.14);
  --btn-bg-active:rgba(245,158,11,.2);
  --btn-color:var(--amber-500,var(--color-warn));
  color:var(--btn-color);
  border-color:color-mix(in srgb, var(--btn-color) 82%, var(--tint-warn));
  box-shadow:none;
}

.ft-favorite-btn .star-icon{
  fill:transparent;
  transition:fill .15s ease;
}

.ft-favorite-btn.is-active{
  background:var(--btn-bg-hover);
  border-color:var(--btn-color);
}

.ft-favorite-btn.is-active .star-icon{
  fill:currentColor;
}

.ft-detail-grid--schedule .ft-schedule__details{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.35rem;
  width:100%;
  padding:10px;
  border-radius:var(--radius-sm);
}

.ft-schedule__link{
  text-decoration:none;
  color:inherit;
  border:1px solid transparent;
  transition:background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
  position:relative;
  padding-right:54px;
}

.ft-schedule__link:hover{
  background:color-mix(in srgb, var(--color-primary) 6%, var(--color-surface));
  border-color:var(--color-border-strong);
  box-shadow:0 8px 18px rgba(15, 23, 42, 0.12);
  text-decoration:none;
}

.ft-detail-grid--schedule .ft-schedule__headline{
  align-items:flex-start;
  gap:0.35rem;
  flex-direction:column;
  min-width:0;
  width:100%;
  padding-right:0;
}

@media (max-width: 768px){
  .ft-detail-grid--schedule .ft-schedule__details{
      flex-direction: column;
      flex-wrap: wrap;
      align-items: flex-start;
      gap: 0.45rem;
  }

  .ft-detail-grid--schedule .ft-detail-item{
      grid-template-columns: minmax(78px, 92px) 1fr;
  }

  .ft-detail-grid--schedule .ft-detail-desc{
      padding:12px 10px;
  }
}





.ft-schedule{
  display:flex;
  flex-direction:column;
  gap:0;
}

.ft-tag-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:4px;
}

.ft-tag-pill{
  --tag-color: var(--color-primary);
  --tag-text-color: var(--color-surface);
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:2px 10px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.02em;
  text-transform:none;
  background:var(--tag-color);
  color:var(--tag-text-color);
  border:1px solid rgba(15,23,42,.12);
  box-shadow:var(--shadow-sm);
}

.ft-tag-pill--po{
  --tag-color: var(--tint-accent);
  --tag-text-color: var(--color-primary-active);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.ft-tag-pill--type{
  --tag-color: color-mix(in srgb, var(--jobtype-color, var(--color-primary)) 15%, var(--color-surface));
  --tag-text-color: color-mix(in srgb, var(--jobtype-color, var(--color-primary)) 70%, var(--color-surface));
  border-color: color-mix(in srgb, var(--jobtype-color, var(--color-primary)) 20%, rgba(15,23,42,.12));
}

.ft-form-tags .ft-tag-editor-list{display:flex;flex-direction:column;gap:10px;padding:0;margin:0;list-style:none;}
.ft-tag-editor-item{list-style:none;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg-alt);box-shadow:var(--shadow-xs);padding:10px 12px;display:flex;flex-direction:column;gap:8px;transition:box-shadow .15s ease, border-color .15s ease;}
.ft-tag-editor-item.is-selected{border-color:var(--color-primary);box-shadow:0 6px 18px rgba(49,87,255,.12);background:color-mix(in srgb, var(--color-primary) 6%, var(--color-card-bg));}
.ft-tag-editor-label{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;cursor:pointer;}
.ft-tag-editor-meta{display:flex;align-items:flex-start;gap:10px;min-width:0;}
.ft-tag-editor-text{display:flex;flex-direction:column;gap:2px;min-width:0;}
.ft-tag-editor-name{font-weight:700;color:var(--color-text);}
.ft-tag-editor-copy{color:var(--color-text-muted);font-size:.9rem;}
.ft-tag-editor-check input{width:18px;height:18px;}
.ft-tag-editor-value{display:flex;align-items:center;gap:6px;}
.ft-tag-editor-value.has-prefix{padding:2px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--surface, var(--color-bg));}
.ft-tag-value-prefix{font-size:.8rem;font-weight:600;color:var(--color-text-muted);white-space:nowrap;}
.ft-tag-editor-value.has-prefix .ft-tag-value-input{border:none;padding:2px 0;background:transparent;min-width:0;}
.ft-tag-value-input{width:100%;min-width:160px;padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.85rem;transition:opacity .15s ease;}
.ft-tag-value-input:disabled{opacity:0.6;background:var(--surface, var(--color-bg));}
.ft-tag-display-list{display:flex;flex-direction:column;gap:10px;}
.ft-tag-display-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-card-bg);box-shadow:var(--shadow-xs);padding:10px 12px;}
.ft-tag-display-main{display:flex;align-items:center;gap:10px;}
.ft-tag-display-text{display:flex;flex-direction:column;gap:2px;min-width:0;}
.ft-tag-display-name{font-weight:700;color:var(--color-text);}
.ft-tag-display-meta{color:var(--color-text-muted);font-size:.9rem;}
.ft-form-error{
  margin-top:6px;
  color:var(--color-danger);
  font-size:.85rem;
}

.ft-field-error{
  margin-top:6px;
  color:var(--color-danger);
  font-size:.85rem;
}

.ft-form-help{
  margin-top:4px;
  font-size:.85rem;
  color:var(--color-text-muted);
}

.ft-hint{
  margin-top:4px;
  font-size:.8rem;
  color:var(--color-text-muted);
}

.ft-modal-body.ft-file-panel-body{
  padding-top:0;
  background:var(--color-surface);
}

.ft-card--job-files{
  --card-accent: var(--color-primary);
  background:var(--color-card-bg);
  border:1px solid var(--color-border);
  border-left:4px solid var(--card-accent);
  border-radius:0;
  box-shadow:var(--shadow-sm);
}

.ft-card--job-files .ft-card-body{
  padding:10px 12px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.ft-file-panel{
  display:flex;
  flex-direction:column;
  gap:14px;
}

.ft-file-panel__header{
  --file-panel-action-space: 74px;
  position:relative;
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:4px var(--file-panel-action-space) 2px 46px;
  margin-bottom:10px;
}
.ft-card--job-files.is-upload-open .ft-file-panel__header{
  --file-panel-action-space: 140px;
}

.ft-file-panel__title{
  display:flex;
  align-items:flex-start;
  gap:8px;
  color:var(--color-text);
  letter-spacing:.01em;
}

.ft-file-panel__icon{
  position:absolute;
  left:6px;
  top:50%;
  transform:translateY(-50%);
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:var(--tint-primary);
  color:var(--color-primary-active);
  border:1px solid var(--color-border);
}

.ft-file-panel__title-text{
  font-weight:800;
  color:var(--color-text);
}

.ft-file-panel__subtitle{
  margin:0;
  color:var(--color-text-muted);
  font-size:12px;
  line-height:1.25;
}

.ft-file-panel__cta{
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
}
.ft-photo-panel__camera{display:inline-flex;}
@media (min-width: 768px){.ft-photo-panel__camera{display:none;}}

.ft-file-panel .ft-empty-state{
  --card-accent: var(--color-primary);
  --card-accent-strong: var(--color-primary-active);
  --card-accent-soft: rgba(49, 87, 255, 0.12);
  background: var(--card-accent-soft);
  margin:0.75rem 0 0;
  border-radius:var(--radius);
  padding:18px 12px;
}

.ft-file-panel .ft-empty-state__hint{
  max-width:460px;
}

.ft-file-upload{
  padding:14px;
  background:var(--color-surface);
  border:1px dashed var(--color-border);
  border-radius:var(--radius);
  box-shadow:var(--shadow-xs);
}

.ft-file-input{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  border:0;
}

.ft-file-drop{ 
  position:relative;
  border:1px dashed var(--color-border);
  border-radius:var(--radius);
  background:var(--color-surface);
  padding:1rem;
  cursor:pointer;
  transition:background 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
}

.ft-file-drop__desktop-icon{
  position:absolute;
  top:10px;
  right:10px;
  display:none;
  padding:6px;
  border-radius:999px;
  background:var(--color-surface-alt);
  box-shadow:var(--shadow-xs);
  color:var(--color-primary);
  line-height:0;
}

.ft-file-drop--desktop .ft-file-drop__desktop-icon{display:inline-flex;}
.ft-file-drop--no-drag .ft-file-drop__hint{display:none;}

.ft-file-drop--compact{
  padding:0.75rem;
}

.ft-file-drop.is-invalid{
  border-color:var(--color-danger);
  box-shadow:0 0 0 1px var(--color-danger);
  background:rgba(239,68,68,.04);
}

.ft-file-drop:hover,
.ft-file-drop:focus-visible{
  background:var(--color-bg-alt);
  border-color:var(--color-border);
  box-shadow:0 0 0 1px var(--color-border);
  outline:none;
}

.ft-file-drop.is-dragover{
  background:var(--color-bg-alt);
  border-color:var(--color-border-strong);
  box-shadow:0 0 0 1px var(--color-border-strong);
}

.ft-file-drop__body{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  text-align:center;
  gap:0.5rem;
  min-height:140px;
}

.ft-file-drop--compact .ft-file-drop__body{
  min-height:110px;
  gap:0.35rem;
}

.ft-file-drop__cta{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:0.35rem;
}

.ft-file-drop--compact .ft-file-drop__cta{
  flex-direction:row;
  gap:0.5rem;
}

.ft-file-drop__progress{
  width:100%;
  display:flex;
  flex-direction:column;
  gap:0.35rem;
  align-items:center;
}
.ft-file-drop__progress[hidden]{
  display:none!important;
}

.ft-file-drop__progress-track{
  width:100%;
  height:8px;
  background:var(--color-bg-alt);
  border-radius:999px;
  overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--color-surface-alt);
}

.ft-file-drop__progress-bar{
  height:100%;
  width:0%;
  background:linear-gradient(90deg, var(--color-primary), var(--color-text-muted));
  transition:width 160ms ease;
}

.ft-file-drop__progress-label{
  margin:0;
  font-weight:700;
  font-size:0.9rem;
  color:var(--color-text);
}

.ft-file-drop__status{
  margin-left:0.5rem;
  color:var(--color-text-muted);
  font-weight:800;
  font-size:0.95rem;
  vertical-align:middle;
}

.ft-file-drop.is-ready .ft-file-drop__filename{
  color:var(--color-text);
  font-weight:700;
}

.ft-file-drop__button{
  pointer-events:none;
}

.ft-file-drop__hint{
  color:var(--color-text);
  font-weight:800;
  letter-spacing:0.05em;
  text-transform:uppercase;
  font-size:0.9rem;
}

.ft-file-drop--compact .ft-file-drop__hint{
  font-size:0.85rem;
}

.ft-file-drop__filename{
  margin:0;
  color:var(--color-text-muted);
  font-size:0.95rem;
  text-align:center;
}

.ft-file-drop__error{
  margin:0;
  color:var(--color-danger);
  font-size:0.9rem;
  font-weight:700;
}
/* 18) Media galleries, upload controls, and viewer overlays */
.ft-photo-list{display:flex;flex-direction:column;gap:12px;}
.ft-photo-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:stretch;width:100%;}
.ft-photo-card{border:none;border-radius:12px;background:transparent;overflow:hidden;position:relative;box-shadow:var(--shadow-sm);margin:0;}
.ft-photo-card__image{background:var(--color-bg-alt);display:block;position:relative;aspect-ratio:1/1;border:0;padding:2px;cursor:pointer;width:100%;height:100%;border-radius:12px;overflow:hidden;}
.ft-photo-card__image img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block;}
.ft-photo-card__image .ft-logo-spinner img{width:36px;height:36px;object-fit:contain;padding:8px;border-radius:999px;background:var(--ft-header-solid);box-shadow:var(--shadow-sm);}
.ft-file-card .ft-photo-card__image{padding:0;border:1px solid var(--color-border);}
.ft-photo-card__image:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px;}
.ft-photo-card--pending .ft-photo-card__image{display:flex;align-items:center;justify-content:center;border:2px dashed var(--color-border-strong);padding:16px;cursor:default;}
.ft-photo-card__image--pending .ft-file-drop__progress{width:100%;}
.ft-photo-card__image--pending .ft-file-drop__progress-label{color:var(--color-text-muted);font-weight:700;}
.ft-photo-card--capture{min-height:160px;}
.ft-photo-card__capture{width:100%;height:100%;border:2px dashed var(--color-border-strong);border-radius:12px;background:var(--color-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:22px;cursor:pointer;transition:background 120ms ease,border-color 120ms ease,transform 120ms ease;box-shadow:var(--shadow-xs);position:relative;}
.ft-photo-card__capture:hover,.ft-photo-card__capture:focus-visible{outline:none;border-color:var(--color-primary);background:var(--color-bg-alt);transform:translateY(-1px);box-shadow:var(--shadow-sm);}
.ft-photo-card__capture-icon{color:var(--color-primary);line-height:0;display:inline-flex;align-items:center;justify-content:center;}
.ft-photo-card__capture-icon--desktop{display:none;}
.ft-photo-card__capture-label{font-weight:800;color:var(--color-text);text-transform:uppercase;letter-spacing:0.06em;font-size:0.85rem;display:flex;flex-direction:column;gap:2px;text-align:center;}
.ft-photo-card__capture-label-text--desktop{display:none;}
.ft-photo-card--gallery{background:var(--color-surface);border:1px solid var(--color-border-strong);display:flex;flex-direction:column;gap:0;box-shadow:var(--shadow-xs);width:100%;}
.ft-photo-card--gallery .ft-photo-card__image{aspect-ratio:4/3;}
.ft-photo-card__meta{display:flex;flex-direction:column;gap:8px;padding:12px 12px 14px;}
.ft-photo-card__meta-header{display:flex;flex-direction:column;gap:4px;}
.ft-photo-card__title{font-weight:800;font-size:1rem;}
.ft-photo-card__subtitle{margin:0;color:var(--color-text-muted);font-weight:600;font-size:0.95rem;}
.ft-photo-card__description{margin:0;color:var(--color-text-muted);}
.ft-photo-card__details{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 12px;margin:0;}
.ft-photo-card__detail{display:flex;flex-direction:column;gap:2px;}
.ft-photo-card__detail dt{margin:0;font-size:0.8rem;letter-spacing:0.04em;text-transform:uppercase;color:var(--color-text-muted);}
.ft-photo-card__detail dd{margin:0;font-weight:700;word-break:break-word;}
.ft-file-upload-card{background:transparent;border:none;box-shadow:none;display:flex;flex-direction:column;height:100%;}
.ft-file-upload-card .ft-file-drop.ft-photo-card__capture{width:100%;height:100%;border:2px dashed var(--color-border-strong);border-radius:12px;background:var(--color-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:22px;cursor:pointer;transition:background 120ms ease,border-color 120ms ease,transform 120ms ease;box-shadow:var(--shadow-xs);text-align:center;}
.ft-file-upload-card .ft-file-drop.ft-photo-card__capture:hover,.ft-file-upload-card .ft-file-drop.ft-photo-card__capture:focus-visible{outline:none;border-color:var(--color-primary);background:var(--color-bg-alt);transform:translateY(-1px);box-shadow:var(--shadow-sm);}
.ft-file-upload-card .ft-photo-card__capture-label{font-size:0.85rem;}
.ft-file-upload-card .ft-file-drop__progress{width:100%;}
.ft-file-upload-card .ft-file-drop__filename{width:100%;justify-content:center;}
.ft-file-upload-card .ft-file-drop__progress,.ft-file-upload-card .ft-file-drop__filename{display:none!important;}
.ft-file-drop__submit{margin-top:4px;}
.ft-file-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-xs);overflow:hidden;display:flex;flex-direction:column;}
.ft-file-card__labels{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;}
.ft-file-card__category{background:var(--color-surface);color:var(--color-text);border-radius:999px;font-weight:800;font-size:.85rem;padding:4px 8px;box-shadow:var(--shadow-xs);}
.ft-file-card__size{background:rgba(0,0,0,0.75);color:var(--color-surface);border-radius:999px;font-weight:700;font-size:.78rem;padding:2px 8px;box-shadow:var(--shadow-xs);line-height:1.3;}
.ft-file-card__actions{position:absolute;top:6px;right:6px;display:flex;gap:6px;}
.ft-file-card__actions .ft-btn{--btn-padding-y:0.25rem;--btn-padding-x:0.25rem;--btn-min-height:2rem;border-radius:10px;}
.ft-file-card__overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:10px;background:linear-gradient(180deg, rgba(6,17,33,0.05) 10%, rgba(6,17,33,0.55) 90%);color:var(--color-surface);pointer-events:none;}
.ft-file-card__overlay-title{font-weight:800;font-size:0.98rem;line-height:1.25;word-break:break-word;}
.ft-file-card__overlay-desc{margin:0;font-size:0.86rem;color:rgba(255,255,255,0.86);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ft-file-card__meta{display:flex;flex-direction:column;gap:8px;padding:12px;}
.ft-file-card__meta-header{display:flex;flex-direction:column;gap:4px;}
.ft-file-card__fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0.65rem 0.8rem;}
.ft-file-card__image-link{display:block;width:100%;height:100%;}
.ft-file-card__image-link img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block;}
.ft-file-card__image-link--placeholder{display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);background:var(--color-bg-alt);width:100%;height:100%;}
.ft-file-card__form{display:flex;flex-direction:column;height:100%;}
.ft-file-card--editing .ft-photo-card__image{border:2px dashed var(--color-border-strong);background:var(--color-bg-alt);}
@media (min-width: 640px){
  .ft-photo-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
  .ft-photo-card__capture{padding:26px;}
}
@media (min-width: 960px){
  .ft-photo-grid--gallery{grid-template-columns:repeat(6,minmax(0,1fr));justify-content:flex-start;justify-items:flex-start;}
  .ft-photo-card__details{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));}
}
@media (min-width: 768px){
  .ft-photo-card__capture-icon--mobile,.ft-photo-card__capture-label-text--mobile{display:none;}
  .ft-photo-card__capture-icon--desktop,.ft-photo-card__capture-label-text--desktop{display:inline-flex;}
}

 
.ft-photo-viewer{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(6,17,33,.55);backdrop-filter:blur(4px);z-index:1200;}
.ft-photo-viewer[hidden]{display:none;}
.ft-photo-viewer__dialog{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:960px;width:100%;display:flex;flex-direction:column;gap:12px;overflow:hidden;position:relative;max-height:calc(100vh - 48px);}
.ft-photo-viewer__close{position:absolute;top:12px;right:12px;border:0;background:rgba(7,23,43,.7);color:var(--color-surface);border-radius:50%;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm);}
.ft-photo-viewer__close:focus-visible{outline:2px solid var(--blue-500);outline-offset:2px;}
.ft-photo-viewer__body{display:flex;flex-direction:column;gap:12px;flex:1;overflow:hidden;}
.ft-photo-viewer__image-frame{width:100%;background:var(--color-bg-alt);display:flex;align-items:center;justify-content:center;min-height:320px;max-height:62vh;}
.ft-photo-viewer__image-frame img{width:100%;height:100%;object-fit:contain;background:var(--color-text);border-radius:var(--radius-md);}
.ft-photo-viewer__footer{display:flex;flex-direction:column;gap:12px;padding:0 16px 16px;border-top:1px solid var(--border-color);background:var(--color-surface);}
.ft-photo-viewer__meta{display:flex;flex-direction:column;gap:6px;}
.ft-photo-viewer__title{font-weight:700;font-size:1.1rem;}
.ft-photo-viewer__desc{margin:0;}
.ft-photo-viewer__details{display:flex;flex-wrap:wrap;gap:6px;color:var(--color-text-muted);font-size:.95rem;}
.ft-photo-viewer__actions{display:flex;gap:8px;flex-wrap:wrap;}
.ft-photo-viewer__actions .ft-btn{min-width:0;}
.ft-file-upload__fields{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:0.75rem 1rem;
}

.ft-file-upload__text-fields{
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}

.ft-file-actions{
  display:flex;
  align-items:center;
  gap:0.5rem;
  flex-wrap:wrap;
  margin-top:0.5rem;
  justify-content:flex-end;
}


.ft-file-list__items{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.ft-file-list__item{
  border:1px solid var(--color-border);
  border-left:4px solid var(--color-primary);
  border-radius:var(--radius);
  padding:12px 14px;
  background:var(--color-surface);
  box-shadow:var(--shadow-xs);
}
.ft-file-list__item:nth-child(even){
  background:var(--color-surface);
}
.ft-file-list__item:last-child{border-bottom:0;}

.ft-file-row{
  position:relative;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
  flex-wrap:wrap;
  padding-right:4.25rem;
}

.ft-file-text{
  display:flex;
  flex-direction:column;
  gap:0.25rem;
  width:100%;
  padding-right:4.25rem;
}

.ft-file-link{
  --ft-icon-link-hover: var(--tint-primary);
  --ft-icon-link-border-hover: var(--color-primary-hover);
  --ft-icon-link-icon: var(--color-primary-hover);

  align-self:flex-start;
}

.ft-file-meta{
  display:flex;
  gap:0.75rem;
  flex-wrap:wrap;
  color:var(--color-text-muted);
  font-size:.9rem;
}

.ft-file-description{
  margin:0;
  color:var(--color-text);
}

.ft-file-row-actions{
  position:absolute;
  top:10px;
  right:10px;
  display:flex;
  align-items:center;
  gap:0.3rem;
}

.ft-file-row-actions .ft-btn{
  --btn-padding-y:0.25rem;
  --btn-padding-x:0.25rem;
  --btn-min-height:2rem;
  border-radius:var(--radius-sm);
}

.ft-file-row-actions .ft-btn.icon-only{
  width:28px;
  height:28px;
  padding:0;
}

.ft-file-edit{
  display:flex;
  flex-direction:column;
  gap:0.75rem;
}

.ft-file-edit__fields{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:0.75rem 1rem;
}

.ft-input-help{
  margin:4px 0 0;
  font-size:.85rem;
  color:var(--color-text-muted);
}

.ft-dashboard-row-tags{
  margin-top:0.35rem;
  padding-top:0.3rem;
  border-top:1px dashed var(--color-border);
  align-self:stretch;
  width:100%;
}

.ft-dashboard-row-tags .ft-tag-list{
  margin-top:0.15rem;
  width:100%;
}


/* 17) Status chips, badges, and inline tags */
.ft-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:4px 12px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.03em;
  text-transform:uppercase;
  background:var(--color-surface-alt);
  color:var(--color-text);
  position:relative;
}

.ft-chip--day{
  min-width:82px;
  padding:10px 12px;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  border-radius:10px;
  background:var(--color-surface-alt);
  white-space:normal;
  line-height:1.15;
}

.ft-chip__day{
  display:block;
  font-weight:800;
  letter-spacing:.08em;
}

.ft-chip__date{
  display:block;
  font-size:1.05rem;
  font-weight:800;
}


.ft-chip.ft-addjobs-chip,
.ft-chip--day.ft-addjobs-chip{
  min-width:auto;
  margin-left:0;
  padding:2px 6px;
  font-size:.95rem;
  letter-spacing:0;
  text-transform:none;
  line-height:1;
}

.ft-chip__badge{
  position:absolute;
  top:-6px;
  right:-6px;
  min-width:18px;
  height:18px;
  border-radius:999px;
  background:var(--color-primary);
  color:var(--color-surface);
  font-size:.65rem;
  font-weight:700;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 4px;
  box-shadow:var(--shadow-sm);
}

.ft-schedule__details{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
}



.ft-schedule__headline{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0.25rem;
}

.ft-schedule__address-group{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}

.ft-icon-link{
  --ft-icon-link-color: var(--color-text);
  --ft-icon-link-strong: var(--color-text);
  --ft-icon-link-icon: var(--color-primary);
  --ft-icon-link-hover: var(--color-bg-alt);
  --ft-icon-link-border: var(--color-border);
  --ft-icon-link-border-hover: var(--color-border-strong);

  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:4px 8px 4px 6px;
  color:var(--ft-icon-link-color);
  border-radius:var(--radius-sm);
  border-bottom:1.5px dotted var(--ft-icon-link-border);
  text-decoration:none;
  transition:color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.ft-icon-link__icon{
  display:flex;
  align-items:center;
  color:var(--ft-icon-link-icon);
  flex-shrink:0;
}

.ft-icon-link__text{
  display:block;
  color:var(--ft-icon-link-strong);
  font-weight:700;
  font-size:1rem;
  line-height:1.2;
  word-break:break-word;
}

.ft-icon-link:hover{
  color:var(--ft-icon-link-strong);
  background-color:var(--ft-icon-link-hover);
  border-bottom-color:var(--ft-icon-link-border-hover);
}

.ft-icon-link:hover .ft-icon-link__icon{
  color:var(--ft-icon-link-strong);
}

.ft-icon-link:hover .ft-icon-link__text{
  color:var(--ft-icon-link-strong);
}

.ft-icon-link:focus-visible{
  outline:2px solid var(--ft-icon-link-border);
  outline-offset:2px;
}

.ft-schedule__map-link{
  --ft-icon-link-color: var(--color-text);
  --ft-icon-link-strong: var(--color-text);
  --ft-icon-link-icon: var(--color-primary);
  --ft-icon-link-hover: var(--color-bg-alt);
  --ft-icon-link-border: var(--color-border);
  --ft-icon-link-border-hover: var(--color-border-strong);
}

.ft-schedule__map-link-icon{
  color:var(--ft-icon-link-icon);
}


.ft-schedule__address{
  font-weight:800;
  color:var(--color-text);
  font-size:var(--ft-type-hero-subtitle);
  word-break:break-word;
  display:block;
  line-height:1.2;
  letter-spacing:.01em;
}

.ft-schedule__job{
  font-weight:700;
  color:var(--color-text);
  font-size:var(--ft-type-hero-subtitle);
  display:block;
  line-height:1.2;
}

.ft-schedule__description{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:normal;
  display:block;
  line-height:1.2;
  color:var(--color-text-muted);
}

.ft-schedule__po{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 10px;
  border-radius:999px;
  background:var(--color-bg-alt);
  color:var(--color-text-muted);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  white-space:nowrap;
}


.ft-detail-grid--schedule .ft-schedule__headline{
  align-items:flex-start;
  gap:0.35rem;
  flex-direction:column;
  min-width:0;
  width:100%;
  padding-right:0;
}
 
.ft-detail-grid--schedule .ft-schedule__mainline{
  display:flex;
  flex-direction:column;
  gap:0.15rem;
  flex:1 1 100%;
  min-width:0;
}

.ft-detail-grid--schedule :is(.ft-schedule__address, .ft-schedule__job, .ft-schedule__description){
  min-width:0;
  white-space:normal;
  overflow:visible;
  display:block;
}

.ft-detail-grid--schedule .ft-schedule__address{
  font-size:var(--ft-type-hero-subtitle);
  line-height:1.15;
  font-weight:800;
  color:var(--color-text);
  letter-spacing:.01em;
}

.ft-detail-grid--schedule .ft-schedule__job{
  font-size:var(--ft-type-hero-subtitle);
  color:var(--color-text);
  line-height:1.15;
  font-weight:700;
}

.ft-detail-grid--schedule .ft-schedule__description{
  color:var(--color-text-muted);
  line-height:1.15;
}

  .ft-detail-grid--schedule .ft-schedule__address-group{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
  }

  .ft-schedule__favorite{
    position:absolute;
    top:10px;
    left:10px;
    z-index:2;
  }

  .ft-schedule__favorite + .ft-schedule__link,
  .ft-schedule__favorite + .ft-schedule__details{
    padding-left:54px;
  }

  .ft-favorite-btn{
    --btn-padding-y:.32rem;
    --btn-padding-x:.32rem;
    --btn-min-height:2.2rem;
    min-width:2.2rem;
    align-self:flex-start;
  }

  .ft-detail-grid--schedule .ft-schedule__favorite .ft-favorite-btn{
    --btn-bg:var(--color-surface);
    --btn-bg-hover:var(--color-surface);
    --btn-bg-active:var(--color-surface);
    --btn-radius:10px;
    box-shadow:var(--shadow-xs);
  }

.ft-schedule__action{
  position:absolute;
  top:10px;
  right:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--color-text-muted);
  transition:color .18s ease;
}

.ft-schedule__link:hover .ft-schedule__action{
  color:var(--color-primary);
}

.ft-schedule__link:focus-visible{
  outline:none;
  box-shadow:0 0 0 var(--ft-ring) color-mix(in srgb, var(--color-primary) 38%, transparent);
  border-color:var(--color-primary);
}

.ft-detail-grid--schedule .ft-schedule__po{
  flex:0 0 auto;
  white-space:nowrap;
  margin-left:0;
}

@media (max-width: 768px){
  .ft-detail-grid--schedule .ft-schedule__job{
    flex:1 1 100%;
  }
  .ft-detail-grid--schedule .ft-schedule__description{
    flex:1 1 100%;
    white-space:normal;
  }
}









.ft-detail-grid--schedule .ft-detail-item:hover {
  box-shadow: 0 10px 22px rgba(15,23,42,.10);
  transform: translateY(-1px);
  border-color: var(--color-border-strong);
}


.ft-chip.primary {
  background: rgba(49,87,255,.12);
  color: var(--color-primary);
  border: 1px solid rgba(49,87,255,.35);
}
.ft-chip.neutral { background: var(--color-surface-alt); color: var(--color-text);   border: 1px solid rgba(49,87,255,.35);
}
.ft-chip--po,
.ft-chip--po.primary,
.ft-chip--po.neutral {
  background: var(--tint-accent);
  color: var(--color-primary-active);
  border: 1px solid rgba(15,23,42,.14);
  box-shadow: var(--shadow-sm);
}
.ft-chip.success { background: rgba(34,197,94,.12); color: var(--color-success); border:1px solid rgba(34,197,94,.35); }












.tone-brand {
  background: linear-gradient(180deg, var(--color-surface), var(--tint-primary));
}





.ft-chip.info     {
  background: var(--tint-accent);
  color: var(--color-primary-active);
  border: 1px solid rgba(74,99,216,.25);
}
.ft-chip.ok       {
  background: var(--tint-success);
  color: var(--color-success);
  border: 1px solid rgba(34,197,94,.35);
}
.ft-chip.warn     {
  background: var(--tint-warn);
  color: var(--color-warn);
  border: 1px solid rgba(245,158,11,.35);
}
.ft-chip.danger   {
  background: var(--tint-danger);
  color: var(--color-danger);
  border: 1px solid rgba(239,68,68,.35);
}


.badge-po.accent {
  background: var(--tint-accent);
  color: var(--color-primary-active);
  border: 1px solid rgba(74,99,216,.25);
  font-size: 0.8rem;
  padding: 2px 6px;
  border-radius: 6px;
}




/* 21) Directory, roster, and announcement browsing */
.ft-directory-modal,
.ft-announcement-modal {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}

.ft-modal-head--flush {
  margin-bottom: 0;
}

.ft-directory-panel {
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.ft-directory-search {
  padding: .5rem .75rem;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface);
}
.ft-directory-search--full {
  padding: .65rem .9rem;
}

.ft-search-field {
  display: flex;
  align-items: center;
  gap: .4rem;
  padding: .4rem .65rem;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: 6px;
}
.ft-directory-search--full .ft-search-field {
  width: 100%;
  max-width: 100%;
}
.ft-search-field input {
  flex: 1 1 auto;
  min-width: 0;
  border: none;
  background: transparent;
  font-size: 1rem;
}
.ft-search-field .ft-search-clear {
  display: none;
  align-items: center;
  justify-content: center;
  width: 1.9rem;
  height: 1.9rem;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: var(--color-surface);
  color: var(--muted-700);
  padding: 0;
  flex: 0 0 auto;
  cursor: pointer;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
  touch-action: manipulation;
}
.ft-search-field .ft-search-clear:hover {
  color: var(--color-text);
  border-color: var(--line-dark);
  background: var(--color-bg-alt);
}
.ft-search-field .ft-search-clear:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}
.ft-search-field .ft-search-clear.is-visible {
  display: inline-flex;
}
.ft-search-field input:focus {
  outline: none;
}
.ft-directory-filters {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  padding: .5rem .75rem;
  background: var(--color-bg);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}
.ft-directory-filters .ft-chip {
  border: 1px solid transparent;
  background: var(--color-bg-alt);
  color: var(--color-text);
  padding: .35rem .75rem;
  border-radius: 999px;
  cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease;
}
.ft-directory-filters .ft-chip:hover {
  background: var(--color-surface-alt);
}
.ft-directory-filters .ft-chip.active {
  background: rgba(49,87,255,.12);
  color: var(--color-primary);
  border-color: rgba(49,87,255,.25);
}
.ft-directory-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.ft-directory-panel .ft-alert {
  margin: 0;
  border-radius: 0;
}
.ft-card--directory {
  padding: .85rem 1rem;
  border: 1px solid var(--color-border);
  border-left: 6px solid var(--group-accent, var(--color-border));
  border-radius: 0;
  box-shadow: none;
}
.ft-directory-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  gap: 0.75rem 1rem;
}
.ft-directory-entry__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .6rem;
}
.ft-directory-entry__headline {
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.ft-directory-entry__nameblock {
  display: flex;
  flex-direction: column;
  gap: .1rem;
}
.ft-directory-entry__name {
  font-weight: 600;
  font-size: 1rem;
}
.ft-directory-entry__company {
  font-size: .9rem;
}
.ft-directory-entry__description {
  font-size: .92rem;
  color: var(--color-text-muted);
  max-width: 56ch;
}
.ft-directory-entry__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.ft-directory-entry__aside {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  align-items: flex-end;
  justify-content: space-between;
  align-self: stretch;
  justify-self: end;
  min-width: 200px;
}
.ft-directory-entry__phone {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .4rem .7rem;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  text-decoration: none;
  font-weight: 700;
  color: inherit;
  white-space: nowrap;
}
.ft-directory-entry__phone svg {
  color: var(--color-primary);
}
.ft-directory-entry__admin-actions {
  display: flex;
  gap: .35rem;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin-top: auto;
}
.ft-directory-list .ft-card--directory {
  border-right: 0;
  border-left-width: 5px;
}

.ft-directory-list .ft-card--directory + .ft-card--directory {
  border-top: 0;
}

.ft-directory-list .ft-card--directory {
  border-radius: 0;
  box-shadow: none;
}

.ft-directory-list .ft-card--directory:first-child {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.ft-directory-list .ft-card--directory:last-child {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  box-shadow: none;
}

@media (max-width: 768px) {
  .ft-directory-entry {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.65rem 0.75rem;
  }

  .ft-directory-entry__aside {
    min-width: 0;
  }
}
.ft-directory-admin-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.ft-directory-admin-card {
  padding: 0.9rem 1rem 1.05rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  border-radius: 0;
  background: var(--color-bg-alt);
  border-color: var(--color-border);
  box-shadow: none;
}

.ft-directory-admin-card--create {
  background: linear-gradient(180deg, var(--color-surface) 0%, var(--tint-primary));
  border-color: var(--color-primary-hover);
}

.ft-directory-admin-card--edit {
  background: linear-gradient(180deg, var(--color-surface) 0%, rgba(42, 58, 86, 0.08));
  border-color: var(--color-border-strong);
}
.ft-directory-card-divider {
  height: 1px;
  background: var(--color-border);
  width: 100%;
}
.ft-directory-admin-subtitle {
  font-weight: 600;
  font-size: .9rem;
}
.ft-admin-panel-toggle.active {
  box-shadow: 0 0 0 1px var(--color-border) inset;
}
.ft-inline-group {
  display: flex;
  gap: .5rem;
  align-items: center;
  margin-top: .35rem;
}
.ft-inline-group input {
  flex: 1 1 auto;
  min-width: 0;
}
.ft-groups-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
}
.ft-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.ft-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: .75rem;
  margin-top: .35rem;
  align-items: start;
}
.ft-form-grid label,
.ft-form-grid .ft-form-actions {
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.ft-form-grid label { font-weight: 600; }
.ft-form-grid .ft-form-actions {
  flex-direction: row;
  justify-content: flex-end;
  grid-column: 1 / -1;
}
.ft-form-grid label span {
  font-size: .85rem;
  color: var(--color-text-muted);
}
.ft-form-grid .ft-form-wide {
  grid-column: 1 / -1;
}
.ft-directory-admin-card .ft-card-title {
  padding: 12px 12px 10px;
/*   border-bottom: 1px solid var(--color-border);
 */}




.ft-card-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  color: var(--card-accent-strong, var(--color-text-muted));
  padding: 20px;
/*   border-bottom: 1px solid var(--color-border);
 */  background: none;
}
.ft-card-title .ft-icon {
  width: 18px;
  height: 18px;
  color: var(--card-accent, var(--color-primary));
}

.ft-card--lane .ft-card-title {
  padding: 16px 18px;
  text-transform: uppercase;
  letter-spacing: 0.015em;
  font-size: 0.95rem;
}

  .ft-card--accent .ft-card-title {
    color: var(--card-header-text, color-mix(in srgb, var(--color-text) 90%, var(--card-accent) 10%));
  }

  .ft-card--accent .ft-card-title .ft-icon {
    color: color-mix(in srgb, var(--color-text) 80%, var(--card-accent) 20%);
  }

[data-switcher-card] .ft-card-title {
  position: relative;
}

[data-switcher-card] [data-switcher-label] {
  display: inline-flex;
  align-items: center;
  text-transform: inherit;
  letter-spacing: inherit;
  font-weight: inherit;
  line-height: inherit;
}

[data-switcher-toggle] {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 0;
  margin: 0;
  background: none;
  border: none;
  color: inherit;
  font: inherit;
  font-size: inherit;
  line-height: inherit;
  text-align: left;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
}

[data-switcher-toggle]:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

[data-switcher-card] [data-switcher-icon] {
  display: none;
  color: inherit;
}

[data-switcher-card][data-active-view="scheduled"] [data-switcher-icon="scheduled"],
[data-switcher-card][data-active-view="favorite"] [data-switcher-icon="favorite"],
[data-switcher-card][data-active-view="nearby"] [data-switcher-icon="nearby"] {
  display: inline-flex;
}

.ft-card-title__caret {
  align-self: center;
  width: 18px;
  height: 18px;
  margin-left: auto;
  color: var(--color-text-muted);
}

[data-switcher-menu] {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 14;
  margin-top: 4px;
  min-width: 220px;
  padding: 6px 0;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-lg);
}

[data-switcher-menu][hidden] {
  display: none;
}

.ft-menu__item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 14px;
  border: none;
  background: none;
  text-align: left;
  font: inherit;
  color: var(--color-text);
  cursor: pointer;
}

.ft-menu__item:hover {
  background: color-mix(in srgb, var(--color-primary) 6%, var(--color-surface));
}

.ft-menu__item[aria-selected="true"] {
  background: color-mix(in srgb, var(--color-primary) 12%, var(--color-surface));
  color: var(--color-primary);
  font-weight: 700;
}




.ft-detail-item:hover .ft-detail-term {
  background: linear-gradient(180deg, var(--color-surface), rgba(15,23,42,.05));
}
.ft-detail-item {
  transition: box-shadow .15s ease, border-color .15s ease, transform .04s ease;
}
.ft-detail-item:hover {
  box-shadow: 0 10px 22px rgba(15,23,42,.10);
  border-color: var(--color-border-strong);
  transform: translateY(-1px);
}
  .ft-announcement-panel{display:flex;flex-direction:column;gap:.5rem;padding:0;}
  .ft-announcement-panel__status{display:flex;justify-content:space-between;align-items:center;font-weight:600;}
  .ft-announcement-list{display:flex;flex-direction:column;gap:1rem;}

  .ft-announcement{border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;background:var(--color-surface);box-shadow:var(--shadow-sm);}
  .ft-announcement.is-unread{border-color:var(--tint-warn);background:var(--tint-warn);}
  .ft-announcement__title-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
  .ft-announcement__title{font-weight:700;font-size:1rem;color:var(--color-text);}
  .ft-announcement__chip{background:var(--color-primary);color:var(--color-surface);border-radius:var(--radius-sm);padding:0.1rem .4rem;font-size:.75rem;font-weight:600;}
  .ft-announcement__chip.attachment{background:var(--color-text-muted);}
  .ft-announcement__meta{margin-top:.25rem;font-size:.85rem;color:var(--color-text-muted);display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;}
  .ft-announcement__meta-pill{background:var(--color-surface-alt);color:var(--color-text-muted);padding:0.1rem .4rem;border-radius:var(--radius-sm);font-size:.75rem;}
  .ft-announcement__preview{margin:.75rem 0;color:var(--color-text-muted);}
  .ft-announcement__body{margin-top:.75rem;display:flex;flex-direction:column;gap:.75rem;}
  .ft-announcement__text{font-size:.95rem;line-height:1.5;color:var(--color-text);}
  .ft-announcement__attachment{display:inline-flex;align-items:center;gap:.35rem;color:var(--color-primary);font-weight:600;}
  .ft-announcement__unread{border-top:1px solid var(--color-border);padding-top:.75rem;}
  .ft-announcement__unread-title{font-weight:600;margin-bottom:.35rem;}
  .ft-announcement__unread-list{margin:0;font-size:.8rem;color:var(--color-text-muted);line-height:1.4;max-height:120px;overflow:auto;}
  .ft-announcement__actions{margin-top:.5rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap;}
  .ft-announcement__actions-main{display:flex;gap:.5rem;flex-wrap:wrap;}

  .ft-form{display:flex;flex-direction:column;gap:1rem;}
  .ft-form-field label{font-weight:600;display:block;margin-bottom:.35rem;}
  .ft-field-error{color:var(--color-danger);font-size:.85rem;margin-top:.25rem;}
  .ft-form-actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap;}

