/* crew-yard admin — mobile-first, adapts up to desktop.
   Relies on the site design tokens from /assets/css/styles.css (--slate-*, --blue-*, --ink). */

:root { --cy-navy:#0a1424; --cy-max:980px; }

* { box-sizing: border-box; }
body { margin: 0; -webkit-text-size-adjust: 100%; background-color: #e9eef4; }
/* Subdued construction backdrop (homepage hero — drill rig + mountains) so the
   white cards pop. Fixed layer, heavy light scrim so text stays fully readable. */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -1;
  background:
    linear-gradient(180deg, rgba(233,238,244,.88), rgba(233,238,244,.93)),
    url('/images/backgrounds/front_auger_3.png') center / cover no-repeat;
}

/* ---------- Login ---------- */
.cy-auth { min-height: 100dvh; display: grid; place-items: center; padding: 20px; }
.cy-card { width: 100%; max-width: 400px; background: #fff; border: 1px solid var(--slate-200);
  border-radius: 16px; box-shadow: 0 10px 40px rgba(8,15,28,.12); padding: 28px 24px; }
.cy-card h1 { font-size: 1.3rem; margin: 0 0 2px; }
.cy-card .sub { color: var(--slate-500); font-size: .9rem; margin: 0 0 20px; }

.cy-field { margin-bottom: 14px; }
.cy-field label { display: block; font-size: .82rem; font-weight: 600; margin-bottom: 6px; color: var(--slate-700); }
/* 16px inputs prevent iOS zoom-on-focus; 48px min height = comfortable tap target */
.cy-input { width: 100%; font-size: 16px; padding: 13px 14px; min-height: 48px;
  border: 1px solid var(--slate-300); border-radius: 10px; background: #fff; font-family: inherit; }
.cy-input:focus { outline: none; border-color: var(--blue-400); box-shadow: 0 0 0 3px rgba(59,130,246,.15); }

.cy-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%;
  min-height: 48px; font-size: 1rem; font-weight: 700; border: 0; border-radius: 10px;
  background: var(--blue-500); color: #fff; cursor: pointer; font-family: inherit; text-decoration: none; }
.cy-btn:active { transform: translateY(1px); }
.cy-btn--ghost { background: #fff; color: var(--ink); border: 1px solid var(--slate-300); }
.cy-btn--sm { width: auto; min-height: 40px; padding: 0 16px; font-size: .9rem; }

.cy-alt { text-align: center; color: var(--slate-400); font-size: .78rem; margin: 16px 0; }
.cy-error { background: #fdecec; color: #a11; border: 1px solid #f3c2c2; border-radius: 10px;
  padding: 11px 13px; font-size: .88rem; margin-bottom: 16px; }
.cf-turnstile { margin: 4px 0 16px; }

/* ---------- App shell ---------- */
.cy-top { position: sticky; top: 0; z-index: 20; background: var(--cy-navy); color: #fff;
  display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; }
.cy-top .cy-brand { font-weight: 800; letter-spacing: .02em; font-size: 1.05rem; }
.cy-top .cy-right { display: flex; align-items: center; gap: 12px; }
.cy-top .cy-who { font-size: .8rem; color: #9fb3d1; }
.cy-top form { margin: 0; }
@media (max-width: 480px) { .cy-top .cy-who { display: none; } }

.cy-main { max-width: var(--cy-max); margin: 0 auto; padding: 18px 16px 64px; }
@media (min-width: 768px) { .cy-main { padding: 28px 24px 72px; } }

.cy-h1 { font-size: 1.4rem; margin: 4px 0 4px; }
.cy-lead { color: var(--slate-500); margin: 0 0 22px; }

/* Responsive tile grid: 1 col phone, 2 col tablet, 3 col desktop */
.cy-cards { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 560px) { .cy-cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .cy-cards { grid-template-columns: repeat(3, 1fr); } }

.cy-tile { display: block; background: #fff; border: 1px solid var(--slate-200); border-radius: 14px;
  padding: 18px; text-decoration: none; color: inherit; box-shadow: 0 1px 3px rgba(8,15,28,.06);
  transition: transform .15s, box-shadow .15s, border-color .15s; }
.cy-tile:active { transform: scale(.99); }
@media (hover: hover) { .cy-tile:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(8,15,28,.1); border-color: var(--blue-300); } }
.cy-tile h3 { margin: 0 0 6px; font-size: 1.02rem; }
.cy-tile p { margin: 0; font-size: .86rem; color: var(--slate-500); }
.cy-soon { display: inline-block; margin-top: 10px; font-size: .68rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .05em; color: var(--blue-500);
  background: rgba(37,99,235,.1); padding: 3px 8px; border-radius: 999px; }

.cy-muted { color: var(--slate-500); }

/* ---------- Dashboard (app-style home) ---------- */
.cy-dash { max-width: 520px; margin: 0 auto; }

.cy-hello { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 2px 0 20px; }
.cy-hello__hi { font-size: 1.35rem; font-weight: 800; letter-spacing: -.01em; color: var(--ink); margin: 0; }
.cy-hello__sub { font-size: .8rem; color: var(--slate-500); margin: 2px 0 0; }
.cy-avatar { flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
  font-weight: 800; font-size: .95rem; color: #fff; background: linear-gradient(135deg, #2563eb, #1e3a8a);
  box-shadow: 0 4px 12px rgba(37,99,235,.35); }

.cy-cta { display: flex; align-items: center; gap: 12px; text-decoration: none; color: #fff;
  background: linear-gradient(135deg, #2563eb, #1d4ed8); border-radius: 14px; padding: 14px 16px;
  box-shadow: 0 8px 20px rgba(37,99,235,.3); margin-bottom: 16px; transition: transform .15s, box-shadow .15s; }
.cy-cta:active { transform: scale(.99); }
@media (hover: hover) { .cy-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(37,99,235,.4); } }
.cy-cta svg { width: 24px; height: 24px; flex: none; }
.cy-cta__t { font-weight: 700; font-size: 1.05rem; flex: 1; }
.cy-cta__arrow { font-size: 1.2rem; opacity: .85; }

.cy-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 24px; }
.cy-stat { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; text-decoration: none;
  background: #fff; border: 1px solid var(--slate-200); border-radius: 14px; padding: 12px 12px 11px 15px;
  position: relative; overflow: hidden; transition: transform .15s, box-shadow .15s; }
.cy-stat:active { transform: scale(.98); }
@media (hover: hover) { .cy-stat:hover { box-shadow: 0 6px 16px rgba(8,15,28,.08); } }
.cy-stat__n { font-size: 1.35rem; font-weight: 800; line-height: 1; color: var(--ink); }
.cy-stat__l { font-size: .66rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--slate-500); }
.cy-stat::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.cy-stat--amber::before { background: #f59e0b; } .cy-stat--amber .cy-stat__n { color: #b45309; }
.cy-stat--blue::before  { background: #2563eb; } .cy-stat--blue .cy-stat__n  { color: #1d4ed8; }
.cy-stat--green::before { background: #10b981; } .cy-stat--green .cy-stat__n { color: #047857; }

.cy-dash__label { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--slate-400); margin: 0 0 10px 2px; }

.cy-apps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
@media (min-width: 460px) { .cy-apps { grid-template-columns: repeat(4, 1fr); } }
.cy-app { position: relative; display: flex; flex-direction: column; align-items: center; gap: 7px; text-decoration: none;
  background: #fff; border: 1px solid var(--slate-200); border-radius: 14px; padding: 13px 8px;
  color: var(--slate-700); font-size: .74rem; font-weight: 600; text-align: center;
  transition: transform .15s, box-shadow .15s, border-color .15s; }
.cy-app__badge { position: absolute; top: 7px; right: 7px; background: #e11d48; color: #fff; font-size: .62rem;
  font-weight: 800; min-width: 17px; height: 17px; padding: 0 5px; border-radius: 999px; display: inline-flex;
  align-items: center; justify-content: center; }
.cy-app:active { transform: scale(.97); }
@media (hover: hover) { .cy-app:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(8,15,28,.1); border-color: var(--blue-300); } }
.cy-app__ic { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; }
.cy-app__ic svg { width: 20px; height: 20px; }
.cy-i-board { background: rgba(37,99,235,.12); color: #2563eb; }
.cy-i-wins  { background: rgba(16,185,129,.14); color: #059669; }
.cy-i-users { background: rgba(139,92,246,.14); color: #7c3aed; }
.cy-i-bell  { background: rgba(245,158,11,.15); color: #d97706; }
.cy-i-acct  { background: rgba(100,116,139,.14); color: #475569; }
.cy-i-lists { background: rgba(13,148,136,.14); color: #0d9488; }
.cy-i-cards { background: rgba(37,99,235,.12); color: #2563eb; }
.cy-i-custs { background: rgba(217,119,6,.14); color: #b45309; }
.cy-i-equip { background: rgba(100,116,139,.14); color: #475569; }
.cy-i-svcs { background: rgba(5,150,105,.14); color: #059669; }
.cy-i-team { background: rgba(139,92,246,.14); color: #7c3aed; }
.cy-i-safety { background: rgba(220,38,38,.12); color: #dc2626; }
.cy-h2 { font-size: 1rem; margin: 0 0 10px; }
.cy-back { font-size: .85rem; color: var(--blue-500); text-decoration: none; }
.cy-ok { background: #eafaf0; color: #12633a; border: 1px solid #bde9cd; border-radius: 10px; padding: 11px 13px; font-size: .9rem; margin-bottom: 16px; }

/* ---------- Forms ---------- */
.cy-form { max-width: 560px; }
.cy-field select.cy-input { min-height: 48px; }
textarea.cy-input { min-height: auto; line-height: 1.5; }
.cy-file { padding: 10px; font-size: .9rem; }
.cy-hint { font-size: .78rem; color: var(--slate-400); margin: 6px 0 0; }
.cy-grid2 { display: grid; grid-template-columns: 1fr; gap: 0 14px; }
@media (min-width: 560px) { .cy-grid2 { grid-template-columns: 1fr 1fr; } }

/* Capture form */
.cy-formwrap { max-width: 560px; margin: 0 auto; }
.cy-formhead { display: flex; align-items: center; gap: 12px; margin: 2px 0 18px; }
.cy-formhead__ic { flex: none; width: 46px; height: 46px; border-radius: 14px; background: rgba(37,99,235,.12);
  color: #2563eb; display: grid; place-items: center; }
.cy-formhead h1 { margin: 0; font-size: 1.35rem; }
.cy-formhead p { margin: 2px 0 0; font-size: .85rem; color: var(--slate-500); }
.cy-form .cy-field:last-of-type { margin-bottom: 18px; }

/* Win-type chips (radio) */
.cy-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cy-chip { position: relative; cursor: pointer; }
.cy-chip input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.cy-chip span { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 999px;
  border: 1.5px solid var(--slate-300); background: #fff; font-size: .85rem; font-weight: 600; color: var(--slate-600);
  transition: background .12s, border-color .12s, color .12s; }
.cy-chip input:checked + span { border-color: var(--blue-500); background: var(--blue-500); color: #fff; }
.cy-chip input:focus-visible + span { box-shadow: 0 0 0 3px rgba(59,130,246,.3); }

/* ---------- Win-type badges ---------- */
.cy-badge--awarded   { background:#dcfce7; color:#15803d; }
.cy-badge--completed { background:#dbeafe; color:#1d4ed8; }
.cy-badge--hire      { background:#ede9fe; color:#6d28d9; }
.cy-badge--equipment { background:#ffedd5; color:#c2410c; }
.cy-badge--service   { background:#ccfbf1; color:#0f766e; }
.cy-badge--safety    { background:#fee2e2; color:#b91c1c; }

/* Ticket number */
.cy-cardtop { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cy-ticket { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .66rem;
  font-weight: 700; letter-spacing: .03em; color: var(--slate-500); background: var(--slate-100);
  border: 1px solid var(--slate-200); padding: 2px 7px; border-radius: 6px; white-space: nowrap; }
.cy-ref { display: inline-block; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .64rem; font-weight: 800; letter-spacing: .03em; color: var(--blue-600);
  background: rgba(37,99,235,.08); border: 1px solid rgba(37,99,235,.18); padding: 1px 6px;
  border-radius: 6px; white-space: nowrap; margin-right: 7px; vertical-align: middle; }

/* ---------- Board ---------- */
.cy-board-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.cy-board-actions { display: flex; gap: 8px; align-items: center; }
.cy-board { display: flex; flex-direction: column; gap: 12px; }
@media (min-width: 900px) { .cy-board { flex-direction: row; align-items: flex-start; overflow-x: auto; padding-bottom: 10px; gap: 10px; } }
.cy-col { background: rgba(241,245,249,.85); border: 1px solid var(--slate-200); border-radius: 12px; padding: 8px; }
@media (min-width: 900px) { .cy-col { flex: 0 0 clamp(240px, 22vw, 300px); } }
.cy-col--archived { display: none; }
.cy-board.cy-show-arch .cy-col--archived { display: block; }
.cy-col__head { display: flex; justify-content: space-between; align-items: center; padding: 4px 6px 10px; }
.cy-col__label { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--slate-500); }
.cy-col__count { background: #fff; border-radius: 999px; padding: 1px 9px; font-size: .72rem; font-weight: 700; color: var(--slate-500); }
.cy-col__drop { min-height: 44px; display: flex; flex-direction: column; gap: 8px; border-radius: 10px; }
.cy-col__drop.cy-over { outline: 2px dashed var(--blue-400); outline-offset: 2px; }
.cy-col__empty { text-align: center; color: var(--slate-400); font-size: .85rem; padding: 6px 0; margin: 0; }

/* Pipeline stat bar + column icons */
.cy-pipebar { display: flex; flex-wrap: wrap; gap: 7px; margin: 2px 0 16px; }
.cy-pipe { display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border-radius: 999px;
  background: #fff; border: 1px solid var(--slate-200); box-shadow: 0 1px 2px rgba(8,15,28,.05); }
.cy-pipe__n { font-size: .82rem; font-weight: 800; color: var(--slate-700); }
.cy-col__label { display: inline-flex; align-items: center; gap: 6px; }
.cy-col__ic { display: inline-flex; }
.cy-i--todo { color: #64748b; } .cy-i--captured { color: #2563eb; } .cy-i--review { color: #d97706; }
.cy-i--approved { color: #0d9488; } .cy-i--published { color: #059669; } .cy-i--archived { color: #94a3b8; }

.cy-wincard { background: #fff; border: 1px solid var(--slate-200); border-radius: 12px; box-shadow: 0 1px 3px rgba(8,15,28,.06); overflow: hidden; }
.cy-wincard.cy-drag { opacity: .4; }
@media (min-width: 900px) { .cy-wincard { cursor: grab; } }
.cy-wincard__main { display: block; padding: 9px 10px; text-decoration: none; color: inherit; }
.cy-wincard__title { display: block; font-weight: 700; font-size: .84rem; line-height: 1.25; color: var(--ink); margin: 5px 0 0; }
.cy-wincard__row { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: 6px; }
.cy-wincard__who { font-size: .68rem; color: var(--slate-500); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cy-wincard__who strong { color: var(--slate-700); font-weight: 700; }
.cy-wincard__stats { font-size: .68rem; color: var(--slate-400); white-space: nowrap; flex: none; }
.cy-move__sel { flex: 1; min-width: 0; font-size: 12px; min-height: 30px; border: 1px solid var(--slate-300); border-radius: 7px; padding: 0 6px; background: #fff; font-family: inherit; color: var(--slate-700); }
.cy-move__go { min-height: 30px; padding: 0 9px; border: 0; border-radius: 7px; background: var(--blue-500); color: #fff; font-weight: 600; font-size: .78rem; cursor: pointer; }
.cy-move--js .cy-move__go { display: none; }

/* ---------- Detail ---------- */
.cy-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 14px; }
.cy-actions form { margin: 0; }
.cy-detail-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 820px) { .cy-detail-grid { grid-template-columns: 1fr 1fr; } }
.cy-panel { background: #fff; border: 1px solid var(--slate-200); border-radius: 12px; padding: 14px; }
.cy-photos { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }

/* Photo dropzone — click, drag-drop, or paste. */
.cy-dropform { margin-top: 12px; }
.cy-drop { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 3px; text-align: center; padding: 15px 12px; border: 1.5px dashed var(--slate-300); border-radius: 12px;
  background: #f8fafc; cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.cy-drop:hover, .cy-drop:focus-visible { border-color: var(--blue-400); background: #eff6ff; outline: none; }
.cy-drop.is-over { border-color: #3b82f6; background: #dbeafe; }
.cy-drop svg { color: var(--slate-400); }
.cy-drop:hover svg, .cy-drop.is-over svg { color: var(--blue-600); }
.cy-drop__input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.cy-drop__t { font-weight: 700; font-size: .9rem; color: var(--slate-700); }
.cy-drop__s { font-size: .74rem; color: var(--slate-400); }
.cy-drop__go { margin-top: 8px; }

/* Pick-list manager rows */
.cy-listrow { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; }
.cy-listrow__edit { display: flex; gap: 6px; flex: 1; margin: 0; min-width: 0; }
.cy-listrow__edit .cy-input { flex: 1; min-width: 0; min-height: 38px; padding: 7px 10px; font-size: .9rem; }
.cy-listrow .cy-mini { min-height: 38px; }
.cy-listrow .cy-mini--del { font-size: 1rem; line-height: 1; padding: 4px 10px; }
.cy-listadd { display: flex; gap: 6px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--slate-100); }
.cy-listadd .cy-input { flex: 1; min-width: 0; min-height: 40px; }
.cy-listadd .cy-btn { flex: none; }

/* Customers manager */
.cy-check { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; font-weight: 600; color: var(--slate-600); }
.cy-check input { width: 16px; height: 16px; }
.cy-custadd { display: flex; gap: 6px; flex-wrap: wrap; margin: 0; }
.cy-custadd .cy-input { flex: 1; min-width: 140px; min-height: 40px; }
.cy-custadd select.cy-input { flex: 0 0 auto; min-width: 150px; }
.cy-custrow { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; }
.cy-custrow__edit { display: flex; gap: 6px; flex: 1; margin: 0; align-items: center; flex-wrap: wrap; min-width: 0; }
.cy-custrow__edit .cy-input { min-height: 36px; padding: 6px 9px; font-size: .88rem; }
.cy-custrow__edit input[name="name"] { flex: 1; min-width: 130px; }
.cy-custrow__edit select { flex: 0 0 auto; min-width: 120px; }
.cy-custrow__n { font-size: .72rem; white-space: nowrap; }

/* Cards manager */
.cy-cardlist { display: flex; flex-direction: column; gap: 7px; }
.cy-cardrow { display: flex; gap: 8px; align-items: center; background: #fff; border: 1px solid var(--slate-200);
  border-left: 3px solid var(--slate-300); border-radius: 10px; padding: 9px 11px; }
.cy-cardrow--published { border-left-color: #059669; }
.cy-cardrow--draft { border-left-color: #d97706; }
.cy-cardrow--archived { border-left-color: var(--slate-300); opacity: .7; }
.cy-cardrow__main { flex: 1; min-width: 0; }
.cy-cardrow__title { display: block; font-weight: 700; font-size: .9rem; color: var(--ink); text-decoration: none;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cy-cardrow__meta { display: block; font-size: .76rem; color: var(--slate-500); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cy-cardrow__status { margin: 0; flex: none; }
.cy-cardrow__status .cy-move__sel { min-height: 34px; }
.cy-cardrow .cy-mini { flex: none; min-height: 34px; text-decoration: none; display: inline-flex; align-items: center; }
.cy-star { color: #f59e0b; margin-right: 3px; }

/* Card image editor */
.cy-imgedit { display: flex; gap: 10px; align-items: stretch; }
.cy-imgprev { width: 120px; height: 90px; object-fit: cover; border-radius: 10px; border: 1px solid var(--slate-200); flex: none; background: #f1f5f9; }
.cy-imgprev[hidden] { display: none; }
.cy-imgedit .cy-drop { flex: 1; }
.cy-drop.is-set { border-style: solid; border-color: var(--blue-400); background: #eff6ff; }
@media (max-width: 480px) { .cy-imgedit { flex-direction: column; } .cy-imgprev { width: 100%; height: 150px; } }
@media (min-width: 560px) { .cy-photos { grid-template-columns: repeat(3, 1fr); } }
.cy-photo { margin: 0; border: 1px solid var(--slate-200); border-radius: 10px; overflow: hidden; }
.cy-photo--hero { border-color: var(--blue-400); box-shadow: 0 0 0 2px rgba(59,130,246,.25); }
.cy-photo img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.cy-photo figcaption { display: flex; justify-content: space-between; gap: 6px; padding: 6px; }
.cy-photo figcaption form { margin: 0; }
.cy-mini { border: 1px solid var(--slate-300); background: #fff; border-radius: 7px; padding: 4px 8px; font-size: .72rem; font-weight: 600; color: var(--slate-600); cursor: pointer; }
.cy-mini--on { border-color: var(--blue-400); color: var(--blue-600); }
.cy-mini--del { color: #b91c1c; border-color: #f3c2c2; }
.cy-notes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.cy-notes li { border: 1px solid var(--slate-100); border-radius: 10px; padding: 9px 11px; }
.cy-notes__meta { font-size: .72rem; color: var(--slate-400); margin-bottom: 3px; }
.cy-notes__body { font-size: .9rem; color: var(--slate-700); }

/* ---------- Modal + lightbox ---------- */
.cy-modal[hidden], .cy-lightbox[hidden] { display: none; }
.cy-modal { position: fixed; inset: 0; z-index: 50; display: flex; align-items: flex-start; justify-content: center; padding: 16px; overflow-y: auto; }
.cy-modal__backdrop { position: fixed; inset: 0; background: rgba(8,15,28,.5); backdrop-filter: blur(2px); }
.cy-modal__panel { position: relative; z-index: 1; width: 100%; max-width: 520px; margin: auto; background: #fff; border-radius: 18px; box-shadow: 0 24px 60px rgba(8,15,28,.35); padding: 22px; }
.cy-modal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.cy-modal__x { border: 0; background: none; font-size: 1.6rem; line-height: 1; color: var(--slate-400); cursor: pointer; padding: 2px 8px; border-radius: 8px; }
.cy-modal__x:hover { background: var(--slate-100); color: var(--slate-700); }
.cy-modal__foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 6px; }

.cy-lightbox { position: fixed; inset: 0; z-index: 60; background: rgba(8,15,28,.85); display: flex; align-items: center; justify-content: center; padding: 20px; cursor: zoom-out; }
.cy-lightbox img { max-width: 95vw; max-height: 90vh; border-radius: 10px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }

/* ---------- Assignee / creator ---------- */
.cy-wincard__foot { display: flex; flex-direction: row; gap: 6px; border-top: 1px solid rgba(8,15,28,.07); padding: 6px 8px; }
.cy-move, .cy-assign { display: flex; gap: 4px; border: 0; padding: 0; margin: 0; flex: 1; min-width: 0; }
.cy-assignbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; }
.cy-assignbar label { font-size: .8rem; font-weight: 600; color: var(--slate-600); }
.cy-assignbar select { max-width: 260px; min-height: 44px; }

/* ---------- Notifications ---------- */
.cy-bell { position: relative; text-decoration: none; font-size: 1.15rem; line-height: 1; }
.cy-bell__n { position: absolute; top: -7px; right: -9px; background: #e11d48; color: #fff; font-size: .6rem; font-weight: 700; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; }
.cy-notif { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cy-notif li { border: 1px solid var(--slate-200); border-radius: 10px; padding: 12px 14px; background: #fff; }
.cy-notif li.unread { border-color: var(--blue-300); background: #f5f9ff; }
.cy-notif li a { color: var(--ink); text-decoration: none; font-weight: 600; }
.cy-notif__meta { font-size: .72rem; color: var(--slate-400); margin-top: 4px; }

/* ---------- Misc: brand link, send-back, tighter columns ---------- */
.cy-top .cy-brand { color: #fff; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
.cy-hardhat { color: #fbbf24; flex: none; }
.cy-sendback { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 0 0 14px; }
.cy-sendback .cy-input { flex: 1; min-width: 200px; }
@media (min-width: 900px) { .cy-col { flex-basis: clamp(198px, 16vw, 236px); } }
.cy-col__drop { gap: 7px; }
.cy-col__head { padding: 3px 5px 7px; }

/* ---------- User management ---------- */
.cy-users { display: flex; flex-direction: column; gap: 10px; }
.cy-user { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; border: 1px solid var(--slate-200); border-radius: 10px; padding: 12px 14px; }
.cy-user--off { opacity: .55; }
.cy-user__id strong { font-size: .95rem; }
.cy-user__ctrls { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cy-user__ctrls form { margin: 0; }
.cy-user__ctrls .cy-move__sel { min-height: 36px; }
.cy-mini[disabled] { opacity: .4; cursor: not-allowed; }
