/*
 * Kingfisher brand overlay
 * ────────────────────────
 * Injected into the Huly app shell by nginx `sub_filter` (see deploy-brand.sh).
 * This is how Kingfisher is branded WITHOUT forking Huly or rebuilding the
 * `hardcoreeng/front` image — proven in the Week 1 spike.
 *
 * RULES FOR EDITING THIS FILE
 *
 * 1. Never target `svelte-xxxxxxx` class hashes. They are build-generated and
 *    change on every Huly release, so anything relying on them breaks silently
 *    at the next version bump.
 * 2. Prefer semantic classes (`.datetime-button`, `.antiButton`) and
 *    `data-id` attributes, which are stable across builds.
 * 3. Re-verify this file whenever HULY_VERSION changes. It is presentation
 *    only — nothing here enforces a rule, it just hides or restyles.
 */

:root {
  --kingfisher-overlay: 1;

  /* Brand: clean, simple, black and white, per the client's direction.
     One accent is kept for alert states — the dashboard spec calls for
     stalled/blocked cards "flagged red", so the palette is monochrome
     PLUS a single alert colour, not pure monochrome. */
  --kf-black: #0a0a0a;
  --kf-white: #ffffff;
  --kf-grey-900: #1a1a1a;
  --kf-grey-500: #737373;
  --kf-grey-200: #e5e5e5;
  --kf-grey-100: #f5f5f5;
  --kf-alert: #dc2626; /* stalled / blocked only — use sparingly */
}

/* ── Typography ────────────────────────────────────────────────────────────
   Montserrat is the client's chosen typeface. Self-hosted rather than pulled
   from Google Fonts: the app must work without third-party requests, and a
   font CDN is an availability and privacy dependency we do not need.
   Font files go in infra/brand/fonts/ — see infra/README.md. */
   Montserrat ships as a VARIABLE font — one 37 KB file covers weights
   100–900, so declaring a weight range is both smaller and sharper than
   shipping separate cuts. (Google's css2 endpoint hands back the same file URL
   for every requested weight, which is the giveaway.) Latin subset only. */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/kingfisher/fonts/montserrat.woff2') format('woff2');
}

body,
button,
input,
textarea,
select {
  font-family: 'Montserrat', ui-sans-serif, system-ui, -apple-system, sans-serif !important;
}

/* ── No due dates ──────────────────────────────────────────────────────────
   A core product decision: Kingfisher measures velocity and stalled cards,
   never deadlines.

   NOTE: `.datetime-button` is the due-date control in the issue create/edit
   surfaces, but the same class renders Milestone target dates elsewhere.
   Milestones are how Phase Gates are modelled, and those DO have dates — so
   this must stay scoped and must never become a blanket rule.

   Verified in the spike: hides the "Due date" control in the create-issue
   modal with no other visible effect. */
.antiCard .datetime-button,
.antiPopup .datetime-button,
#new-issue .datetime-button {
  display: none !important;
}

/* ── Alert state ───────────────────────────────────────────────────────────
   Reserved for stalled (>3 days untouched) and blocked cards. Applied by
   kingfisher.js once the metrics engine lands in Week 3. */
.kf-stalled {
  box-shadow: inset 3px 0 0 var(--kf-alert) !important;
}

.kf-stalled-badge {
  color: var(--kf-alert);
  font-weight: 500;
  font-size: 0.75rem;
  letter-spacing: 0.02em;
}

/* ── Hidden modules ────────────────────────────────────────────────────────
   Huly ships far more than Kingfisher needs. Hiding the unused apps keeps the
   product focused and avoids supporting features that are not part of the
   offer. Driven by data-id, which is stable.

   Kept: tracker (the board), document, chunter (chat), contact, settings. */
[data-id='app-hr'],
[data-id='app-recruit'],
[data-id='app-lead'],
[data-id='app-inventory'],
[data-id='app-love'],
[data-id='app-drive'],
[data-id='app-testManagement'],
[data-id='app-products'],
[data-id='app-bitrix'],
[data-id='app-telegram'],
[data-id='app-gmail'],
[data-id='app-process'],
[data-id='app-training'] {
  display: none !important;
}

/* Huly's own community link has no place in a commercial product. */
a[href*='link.huly.io'] {
  display: none !important;
}
