/**
 * Nighthawk Casting — front-end styles.
 * Editorial, cinematic, restrained. Matches nighthawk.productions brand:
 * Manrope type, warm near-black, brand orange accent, sharp CTAs, rounded media.
 * Scoped under .nhc-wrap so it won't fight the theme.
 */

.nhc-wrap {
	/* Read from the site-wide theme tokens (class-nighthawk-sitetheme.php) so the
	   board/admin panel flip with the global light/dark toggle. Fallbacks keep this
	   file self-sufficient if site-theme.css isn't loaded for any reason. */
	--nhc-bg: var(--nh-bg, #0a0a0b);
	--nhc-surface: var(--nh-surface, #131315);
	--nhc-surface-2: var(--nh-surface-2, #1c1c1f);
	--nhc-line: var(--nh-line, #2b2b2f);
	--nhc-text: var(--nh-text, #f6f5f3);
	--nhc-muted: var(--nh-muted, #9c9a97);
	--nhc-accent: var(--nh-accent, #d8741a);      /* nighthawk brand orange */
	--nhc-accent-2: var(--nh-accent-2, #b8630f);
	--nhc-accent-soft: var(--nh-accent-soft, rgba(216,116,26,.13));
	--nhc-radius: 18px;         /* generous, editorial — matches brand card imagery */
	--nhc-radius-sm: 8px;       /* crisp, matches brand's sharp-cornered CTAs */
	--nhc-shadow: var(--nh-shadow, 0 24px 60px -16px rgba(0,0,0,.6));
	color: var(--nhc-text);
	font-family: 'Manrope', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	line-height: 1.6;
	box-sizing: border-box;
	max-width: 1200px;
	width: auto;
	margin: 14px auto;
	padding: clamp(12px, 2.2vw, 22px);
	background: var(--nhc-bg);
	border-radius: var(--nhc-radius);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden; /* safety net: no child should ever push the page wider */
}
@media (max-width: 640px) {
	/* .nhc-wrap itself stays chrome-free on mobile — no padding/margin/background
	   of its own. The actual outer inset comes from the theme's root-padding
	   variable below, which we shrink on casting pages (body.nhc-tight) so
	   public pages get the SAME tight, edge-hugging feel as the admin
	   app-shell, instead of the theme's much wider default gutter. */
	.nhc-wrap { margin: 6px 0; padding: 0; border-radius: 0; background: transparent; }

	/* Twenty Twenty-Five (or any theme using the same var) applies its root
	   padding via .has-global-padding{padding-left/right:var(--wp--style--root--padding-*)}.
	   Overriding the variable itself re-themes EVERYTHING that reads it on this
	   page — page title, our content, anything else — so they all move in
	   lockstep at one small, consistent, admin-panel-matching inset. */
	body.nhc-tight {
		--wp--style--root--padding-left: 16px;
		--wp--style--root--padding-right: 16px;
	}
}
.nhc-wrap *, .nhc-wrap *::before, .nhc-wrap *::after { box-sizing: border-box; }
.nhc-wrap h1, .nhc-wrap h2, .nhc-wrap h3 { font-weight: 800; letter-spacing: -.01em; }

/* Buttons — sharp corners, uppercase, letter-spaced (matches "BOOK CONSULTATION") */
.nhc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 26px;
	border-radius: var(--nhc-radius-sm);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: .8px;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	border: 1px solid transparent;
	transition: transform .15s cubic-bezier(.2,.8,.2,1), background .2s ease, box-shadow .2s ease, border-color .2s ease, color .2s ease;
}
.nhc-btn:hover { transform: translateY(-1px); }
.nhc-btn-primary { background: var(--nhc-accent); color: #fff; box-shadow: 0 10px 28px -6px rgba(216,116,26,.45); }
.nhc-btn-primary:hover { background: var(--nhc-accent-2); box-shadow: 0 14px 34px -6px rgba(216,116,26,.55); }
.nhc-btn-outline { background: transparent; color: var(--nhc-text); border-color: var(--nhc-line); }
.nhc-btn-outline:hover { border-color: var(--nhc-accent); color: var(--nhc-accent); }

/* ---------- Directory ---------- */
.nhc-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 16px; }
.nhc-chip {
	background: var(--nhc-surface);
	border: 1px solid var(--nhc-line);
	color: var(--nhc-muted);
	padding: 9px 18px;
	border-radius: var(--nhc-radius-sm);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .3px;
	text-transform: uppercase;
	cursor: pointer;
	transition: all .18s ease;
}
.nhc-chip:hover { color: var(--nhc-text); border-color: var(--nhc-accent); }
.nhc-chip.is-active { background: var(--nhc-accent); color: #fff; border-color: var(--nhc-accent); }

.nhc-grid { display: grid; gap: 16px; }
.nhc-cols-2 { grid-template-columns: repeat(2, 1fr); }
.nhc-cols-3 { grid-template-columns: repeat(3, 1fr); }
.nhc-cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .nhc-cols-3, .nhc-cols-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .nhc-grid { grid-template-columns: 1fr; } }

.nhc-card {
	background: var(--nhc-surface);
	border: 1px solid var(--nhc-line);
	border-radius: var(--nhc-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform .3s cubic-bezier(.2,.8,.2,1), border-color .25s ease, box-shadow .3s ease;
}
.nhc-card:hover { transform: translateY(-5px); border-color: var(--nhc-accent); box-shadow: var(--nhc-shadow); }
.nhc-card-media { position: relative; display: block; aspect-ratio: 4/3; background: var(--nhc-surface-2); overflow: hidden; }
.nhc-card-media img {
	width: 100%; height: 100%; object-fit: cover;
	filter: saturate(.94) contrast(1.02);
	transition: transform .6s cubic-bezier(.2,.8,.2,1), filter .5s ease;
}
.nhc-card:hover .nhc-card-media img { transform: scale(1.045); filter: saturate(1.06) contrast(1.04); }
.nhc-card-noimg {
	position: absolute; inset: 0; display: grid; place-items: center;
	color: #45454a; font-weight: 800; letter-spacing: 4px; font-size: 14px;
}
.nhc-badge {
	position: absolute; top: 14px; left: 14px;
	background: var(--nhc-accent); color: #fff;
	font-size: 11px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase;
	padding: 6px 12px; border-radius: 6px;
}
.nhc-card-body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.nhc-card-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.nhc-tag {
	background: var(--nhc-surface-2); border: 1px solid var(--nhc-line);
	color: var(--nhc-muted); font-size: 11px; font-weight: 700;
	padding: 4px 10px; border-radius: 5px; text-transform: uppercase; letter-spacing: .5px;
}
.nhc-card-title { margin: 4px 0 0; font-size: 19px; line-height: 1.3; letter-spacing: -.01em; }
.nhc-card-title a { color: var(--nhc-text); text-decoration: none; transition: color .2s ease; }
.nhc-card-title a:hover { color: var(--nhc-accent); }
.nhc-card-excerpt { margin: 0; color: var(--nhc-muted); font-size: 14px; }
.nhc-card-meta { display: flex; flex-wrap: wrap; gap: 12px; color: var(--nhc-muted); font-size: 12.5px; letter-spacing: .2px; margin-top: auto; }
.nhc-card-body .nhc-btn { margin-top: 8px; }
.nhc-empty { color: var(--nhc-muted); grid-column: 1/-1; text-align: center; padding: 36px 20px; font-size: 15px; }

/* ---------- Single ---------- */
/* The theme's generic single-post template renders its own Post Title,
   Featured Image, and author/terms blocks before our content — all fully
   duplicated by our own [nighthawk_callout] hero below them. Hide the
   theme's copies on single-callout pages only (body.nhc-callout-single). */
body.nhc-callout-single .wp-block-post-title,
body.nhc-callout-single .wp-block-post-featured-image,
body.nhc-callout-single .wp-block-post-featured-image + .wp-block-group {
	display: none !important;
}
/* Same reasoning, for the homepage: the Cover-block hero already carries the
   headline, so hide the theme's own auto Post Title ("Home") above it. */
body.nhc-home .wp-block-post-title {
	display: none !important;
}
.nhc-single { padding: 0; }
.nhc-hero {
	position: relative; border-radius: 22px; overflow: hidden;
	min-height: 340px; display: flex; align-items: flex-end;
	background: var(--nhc-surface); border: 1px solid var(--nhc-line);
}
.nhc-hero-media, .nhc-hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nhc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,6,7,.1) 0%, rgba(6,6,7,.58) 55%, rgba(6,6,7,.97) 100%); }
.nhc-hero-inner { position: relative; padding: 30px; max-width: 800px; }
.nhc-eyebrow { color: var(--nhc-accent); font-weight: 800; letter-spacing: 3.5px; font-size: 12px; text-transform: uppercase; margin-bottom: 14px; }
.nhc-hero-title { font-size: clamp(30px, 5vw, 54px); line-height: 1.04; margin: 0 0 16px; font-weight: 900; letter-spacing: -.02em; }
.nhc-hero-tags { margin-bottom: 12px; }
.nhc-hero-meta { display: flex; flex-wrap: wrap; gap: 16px; color: #d9d7d3; font-size: 14.5px; margin-bottom: 18px; }
.nhc-closed-note {
	display: inline-block; background: var(--nhc-accent-soft); border: 1px solid var(--nhc-accent);
	color: var(--nhc-accent); padding: 11px 20px; border-radius: var(--nhc-radius-sm); font-weight: 700; font-size: 13.5px;
}
.nhc-single-body { display: block; padding: 22px 4px; }
.nhc-single-content { font-size: 17px; color: var(--nhc-text); max-width: 780px; }
.nhc-single-content p { margin: 0 0 16px; }
.nhc-refs { margin-top: 26px; }
.nhc-refs h3 { font-size: 19px; margin: 0 0 12px; text-transform: uppercase; letter-spacing: .5px; font-weight: 800; }
.nhc-ref-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px; }
.nhc-ref-img img { width: 100%; height: 160px; object-fit: cover; border-radius: 12px; border: 1px solid var(--nhc-line); }
.nhc-ref-link { color: var(--nhc-accent); word-break: break-all; }

/* ---------- Apply form ---------- */
.nhc-apply {
	background: var(--nhc-surface);
	border: 1px solid var(--nhc-line);
	border-radius: 22px;
	padding: 24px;
	margin-top: 20px;
}
.nhc-form-head h2 { margin: 0 0 4px; font-size: 25px; letter-spacing: -.01em; }
.nhc-form-sub { color: var(--nhc-muted); margin: 0 0 16px; }
.nhc-form { display: flex; flex-direction: column; gap: 12px; }
.nhc-hp { position: absolute !important; left: -9999px !important; height: 0; width: 0; opacity: 0; }
.nhc-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 620px) { .nhc-grid-2 { grid-template-columns: 1fr; } }
.nhc-field { display: flex; flex-direction: column; gap: 7px; }
.nhc-field > span { font-size: 12.5px; font-weight: 700; letter-spacing: .3px; text-transform: uppercase; color: var(--nhc-muted); }
.nhc-field input, .nhc-field select, .nhc-field textarea {
	background: var(--nhc-bg);
	border: 1px solid var(--nhc-line);
	border-radius: var(--nhc-radius-sm);
	padding: 13px 15px;
	color: var(--nhc-text);
	font-size: 15px;
	font-family: inherit;
	width: 100%;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.nhc-field input:focus, .nhc-field select:focus, .nhc-field textarea:focus {
	outline: none; border-color: var(--nhc-accent); box-shadow: 0 0 0 3px var(--nhc-accent-soft);
}
.nhc-field.nhc-filled input, .nhc-field.nhc-filled textarea, .nhc-field.nhc-filled select {
	border-color: rgba(216,116,26,.55); background: rgba(216,116,26,.05);
}
.nhc-socials { border: 1px solid var(--nhc-line); border-radius: 12px; padding: 18px; margin: 4px 0; }
.nhc-socials legend { padding: 0 8px; color: var(--nhc-muted); font-weight: 700; font-size: 12.5px; text-transform: uppercase; letter-spacing: .3px; }

/* CV drop zone */
.nhc-cv-drop {
	position: relative;
	border: 2px dashed var(--nhc-line);
	border-radius: 14px;
	padding: 24px;
	background: var(--nhc-surface-2);
	cursor: pointer;
	transition: border-color .2s ease, background .2s ease;
}
.nhc-cv-drop:hover, .nhc-cv-drop.is-drag { border-color: var(--nhc-accent); background: var(--nhc-accent-soft); }
.nhc-cv-inner { display: flex; align-items: center; gap: 16px; }
.nhc-cv-icon { font-size: 30px; }
.nhc-cv-text { display: flex; flex-direction: column; }
.nhc-cv-text strong { font-size: 16px; font-weight: 700; }
.nhc-cv-text span { color: var(--nhc-muted); font-size: 13.5px; }
.nhc-cv-status { margin-top: 14px; font-size: 14px; font-weight: 600; }
.nhc-cv-status.is-loading { color: var(--nhc-accent); }
.nhc-cv-status.is-ok { color: #5fce8f; }
.nhc-cv-status.is-error { color: #ff8f80; }
.nhc-spinner {
	display: inline-block; width: 15px; height: 15px; vertical-align: -2px; margin-right: 8px;
	border: 2px solid rgba(216,116,26,.3); border-top-color: var(--nhc-accent);
	border-radius: 50%; animation: nhc-spin .8s linear infinite;
}
@keyframes nhc-spin { to { transform: rotate(360deg); } }

/* Photo drop */
.nhc-photo-drop {
	border: 2px dashed var(--nhc-line);
	border-radius: 14px;
	padding: 20px;
	background: var(--nhc-bg);
	cursor: pointer;
	transition: border-color .2s ease, background .2s ease;
}
.nhc-photo-drop:hover, .nhc-photo-drop.is-drag { border-color: var(--nhc-accent); background: var(--nhc-accent-soft); }
.nhc-photo-hint { color: var(--nhc-muted); font-size: 14px; text-align: center; }
.nhc-photo-previews { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.nhc-photo-previews:empty { margin-top: 0; }
.nhc-thumb { position: relative; width: 84px; height: 84px; border-radius: 10px; overflow: hidden; border: 1px solid var(--nhc-line); }
.nhc-thumb img { width: 100%; height: 100%; object-fit: cover; }
.nhc-thumb button {
	position: absolute; top: 3px; right: 3px; width: 22px; height: 22px; border-radius: 50%;
	border: none; background: rgba(0,0,0,.75); color: #fff; cursor: pointer; font-size: 14px; line-height: 1;
}

.nhc-submit-row { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 8px; }
.nhc-submit[disabled] { opacity: .55; cursor: default; transform: none; }
.nhc-form-msg { font-size: 14px; font-weight: 600; }
.nhc-form-msg.is-ok { color: #5fce8f; }
.nhc-form-msg.is-error { color: #ff8f80; }

.nhc-success {
	text-align: center; padding: 46px 20px;
}
.nhc-success .nhc-success-icon { font-size: 44px; margin-bottom: 14px; }
.nhc-success h2 { margin: 0 0 8px; font-size: 24px; }
.nhc-success p { color: var(--nhc-muted); margin: 0; }

/* ---------- Two-column job board ([nighthawk_board]) ---------- */
.nhc-board-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.nhc-board-heading{font-size:clamp(24px,3.4vw,34px);font-weight:900;letter-spacing:-.02em;margin:0}
.nhc-board-search{flex:0 1 320px}
.nhc-board-q{width:100%;background:var(--nhc-surface);border:1px solid var(--nhc-line);border-radius:var(--nhc-radius-sm);color:var(--nhc-text);padding:12px 15px;font-size:15px;font-family:inherit}
.nhc-board-q:focus{outline:none;border-color:var(--nhc-accent);box-shadow:0 0 0 3px var(--nhc-accent-soft)}
.nhc-board-toggle{display:none}
.nhc-board-body{display:grid;grid-template-columns:230px 1fr;gap:18px;align-items:start}
.nhc-board-nav{position:sticky;top:20px;display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 40px);overflow:auto;padding-right:4px}
.nhc-navgroup{margin-top:10px}
.nhc-navitem{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;background:transparent;border:0;color:var(--nhc-muted);padding:9px 12px;border-radius:var(--nhc-radius-sm);font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}
.nhc-navitem:hover{background:var(--nhc-surface);color:var(--nhc-text)}
.nhc-navitem.is-active{background:var(--nhc-accent);color:#fff}
.nhc-navitem.is-active .nhc-navcount{background:rgba(255,255,255,.25);color:#fff}
.nhc-navparent{font-weight:800;text-transform:uppercase;letter-spacing:.4px;font-size:12px;color:var(--nhc-text)}
.nhc-navchildren{display:flex;flex-direction:column;gap:1px;margin-top:2px}
.nhc-navchild{padding-left:20px;font-weight:600}
.nhc-navchild.is-empty{opacity:.45}
.nhc-navparent.is-empty{opacity:.5}
.nhc-navcount{background:var(--nhc-surface-2);color:var(--nhc-muted);font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;min-width:22px;text-align:center}
.nhc-board-list{display:flex;flex-direction:column;gap:12px}
.nhc-job{display:flex;gap:14px;background:var(--nhc-surface);border:1px solid var(--nhc-line);border-radius:var(--nhc-radius);padding:14px;transition:border-color .2s,box-shadow .25s,transform .2s}
.nhc-job:hover{border-color:var(--nhc-accent);box-shadow:var(--nhc-shadow);transform:translateY(-2px)}
.nhc-job-media{flex:0 0 168px;align-self:stretch;border-radius:12px;overflow:hidden;background:var(--nhc-surface-2);max-height:190px}
.nhc-job-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.94) contrast(1.02)}
.nhc-job-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px}
.nhc-job-tags{display:flex;flex-wrap:wrap;gap:6px}
.nhc-job-title{margin:2px 0 0;font-size:21px;line-height:1.25;letter-spacing:-.01em}
.nhc-job-title a{color:var(--nhc-text);text-decoration:none}
.nhc-job-title a:hover{color:var(--nhc-accent)}
.nhc-job-meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--nhc-muted);font-size:13px}
.nhc-job-meta .nhc-dot{opacity:.5}
.nhc-job-desc{margin:0;color:var(--nhc-muted);font-size:14.5px;line-height:1.55}
.nhc-job-apply{align-self:flex-start;margin-top:6px}
.nhc-board-empty{color:var(--nhc-muted);text-align:center;padding:32px 20px;font-size:15px}
@media(max-width:820px){
  .nhc-board-body{grid-template-columns:1fr}
  .nhc-board-toggle{display:inline-flex;align-items:center;justify-content:center;background:var(--nhc-surface);border:1px solid var(--nhc-line);color:var(--nhc-text);border-radius:var(--nhc-radius-sm);padding:11px 16px;font-family:inherit;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;margin-bottom:14px;width:100%}
  .nhc-board-nav{position:static;max-height:0;overflow:hidden;transition:max-height .3s ease}
  .nhc-board-nav.is-open{max-height:1400px;margin-bottom:16px}
  .nhc-job{flex-direction:column}
  .nhc-job-media{flex:none;width:100%;max-height:210px}
}

/* ---------- Front-end admin panel ([nighthawk_admin]) ---------- */
.nhc-adminpanel{max-width:1240px}
.nhc-ap-lock{background:var(--nhc-surface);border:1px solid var(--nhc-line);border-radius:var(--nhc-radius);padding:28px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;color:var(--nhc-muted)}
.nhc-ap-lock p{margin:0}
.nhc-ap-appbar{display:none}
.nhc-ap-scrim{position:fixed;inset:0;background:rgba(0,0,0,.55);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:99905}
.nhc-ap-scrim.is-open{opacity:1;pointer-events:auto}
.nhc-ap-home{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:var(--nhc-surface-2);color:var(--nhc-text);text-decoration:none;flex:0 0 auto}
.nhc-ap-home .dashicons{font-size:19px;width:19px;height:19px}
.nhc-ap-burger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:38px;height:38px;border-radius:10px;background:var(--nhc-surface-2);border:0;cursor:pointer;flex:0 0 auto}
.nhc-ap-burger span{display:block;width:16px;height:2px;background:var(--nhc-text);border-radius:2px}
.nhc-ap-appbar-title{font-weight:800;font-size:15px;margin-left:6px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nhc-ap-navclose{display:none}
.nhc-ap-shell{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:start}
.nhc-ap-nav{position:sticky;top:20px;background:var(--nhc-surface);border:1px solid var(--nhc-line);border-radius:var(--nhc-radius);padding:12px;display:flex;flex-direction:column;gap:2px}
.nhc-ap-brand{display:flex;align-items:center;gap:8px;font-weight:900;letter-spacing:-.01em;padding:8px 10px 12px;border-bottom:1px solid var(--nhc-line);margin-bottom:8px;font-size:15px}
.nhc-ap-navitem{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--nhc-radius-sm);color:var(--nhc-muted);text-decoration:none;font-weight:700;font-size:14px;transition:background .15s,color .15s}
.nhc-ap-navitem .dashicons{font-size:18px;width:18px;height:18px}
.nhc-ap-navitem:hover{background:var(--nhc-surface-2);color:var(--nhc-text)}
.nhc-ap-navitem.is-active{background:var(--nhc-accent);color:#fff}
.nhc-ap-navout{margin-top:8px;border-top:1px solid var(--nhc-line);border-radius:0 0 var(--nhc-radius-sm) var(--nhc-radius-sm);color:var(--nhc-muted);opacity:.8}
.nhc-ap-main{min-width:0}
.nhc-ap-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.nhc-ap-head h1{font-size:clamp(22px,3vw,30px);font-weight:900;letter-spacing:-.02em;margin:0}
.nhc-ap-flash{background:var(--nhc-accent-soft);border:1px solid var(--nhc-accent);color:var(--nhc-accent);padding:12px 16px;border-radius:var(--nhc-radius-sm);font-weight:700;margin-bottom:18px}
.nhc-ap-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.nhc-ap-kpi{display:flex;flex-direction:column;gap:3px;background:var(--nhc-surface);border:1px solid var(--nhc-line);border-radius:var(--nhc-radius);padding:14px 16px;text-decoration:none;transition:border-color .2s,transform .2s}
a.nhc-ap-kpi:hover{border-color:var(--nhc-accent);transform:translateY(-2px)}
.nhc-ap-kpi-val{font-size:30px;font-weight:900;color:var(--nhc-text);line-height:1.05}
.nhc-ap-kpi-label{color:var(--nhc-muted);font-size:13px}
.nhc-ap-panel{background:var(--nhc-surface);border:1px solid var(--nhc-line);border-radius:var(--nhc-radius);padding:16px 18px;margin-bottom:14px;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.nhc-ap-panel h2{margin:0 0 10px;font-size:15px;text-transform:uppercase;letter-spacing:.5px}
.nhc-ap-muted{color:var(--nhc-muted)}
.nhc-ap-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.nhc-ap-filters input[type=search],.nhc-ap-filters select{background:var(--nhc-surface);border:1px solid var(--nhc-line);color:var(--nhc-text);border-radius:var(--nhc-radius-sm);padding:10px 13px;font-size:14px;font-family:inherit}
.nhc-ap-filters input[type=search]{min-width:200px}
.nhc-ap-table{width:100%;min-width:560px;border-collapse:collapse;font-size:14px}
.nhc-ap-table th,.nhc-ap-table td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--nhc-line);vertical-align:middle}
.nhc-ap-table thead th{color:var(--nhc-muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px;font-weight:700}
.nhc-ap-table td a{color:var(--nhc-text)}
.nhc-ap-table td a:hover{color:var(--nhc-accent)}
.nhc-ap-table tr:last-child td{border-bottom:0}
.nhc-ap-detail th{width:150px;color:var(--nhc-muted);font-weight:700;vertical-align:top}
.nhc-ap-mini{font-size:12px;font-weight:700;color:var(--nhc-accent) !important}
.nhc-ap-activity{list-style:none;margin:0;padding:0}
.nhc-ap-activity li{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--nhc-line);color:var(--nhc-text);font-size:14px}
.nhc-ap-activity li:last-child{border-bottom:0}
.nhc-ap-activity time{margin-left:auto;color:var(--nhc-muted);font-size:12px;white-space:nowrap}
.nhc-ap-photos{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.nhc-ap-photos img{width:96px;height:96px;object-fit:cover;border-radius:10px;border:1px solid var(--nhc-line)}
.nhc-ap-form{display:flex;flex-direction:column;gap:12px;max-width:720px}
.nhc-ap-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px}
.nhc-ap-check{display:flex;align-items:center;gap:8px;color:var(--nhc-text);font-size:14px}
.nhc-ap-inline{flex-direction:row;align-items:center;gap:10px}
.nhc-ap-pager{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.nhc-ap-pager a{padding:7px 12px;border:1px solid var(--nhc-line);border-radius:var(--nhc-radius-sm);color:var(--nhc-muted);text-decoration:none;font-size:13px;font-weight:700}
.nhc-ap-pager a.is-active,.nhc-ap-pager a:hover{background:var(--nhc-accent);color:#fff;border-color:var(--nhc-accent)}
@media(max-width:900px){
  .nhc-ap-shell{grid-template-columns:1fr;gap:14px}
  .nhc-ap-nav{position:static;flex-direction:row;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;gap:6px;padding:8px;margin:0 -4px}
  .nhc-ap-brand{display:none}
  .nhc-ap-navitem{white-space:nowrap;flex:0 0 auto;scroll-snap-align:start;background:var(--nhc-surface-2);padding:9px 14px;font-size:13px}
  .nhc-ap-navitem .dashicons{display:none}
  .nhc-ap-navout{border-top:0;border-radius:var(--nhc-radius-sm)}
  .nhc-ap-kpis{grid-template-columns:repeat(2,1fr);gap:10px}
  .nhc-ap-kpi{padding:14px 16px}
  .nhc-ap-kpi-val{font-size:24px}
  .nhc-ap-panel{padding:16px}
  .nhc-ap-filters{flex-direction:column;align-items:stretch}
  .nhc-ap-filters input[type=search],.nhc-ap-filters select,.nhc-ap-filters .nhc-btn{width:100%;min-width:0}
  .nhc-ap-head{gap:10px}
  .nhc-ap-head h1{font-size:22px}
  .nhc-ap-checks{grid-template-columns:1fr 1fr}
  .nhc-adminpanel{padding-bottom:76px}
}
@media(max-width:480px){
  .nhc-ap-checks{grid-template-columns:1fr}
}

/* ---------- Admin tables -> stacked cards on mobile (Callouts, Applications, Log) ---------- */
@media(max-width:640px){
  .nhc-ap-panel{overflow-x:visible}
  .nhc-ap-table:not(.nhc-ap-detail){min-width:0}
  .nhc-ap-table:not(.nhc-ap-detail) thead{display:none}
  .nhc-ap-table:not(.nhc-ap-detail),
  .nhc-ap-table:not(.nhc-ap-detail) tbody,
  .nhc-ap-table:not(.nhc-ap-detail) tr,
  .nhc-ap-table:not(.nhc-ap-detail) td{display:block;width:100%}
  .nhc-ap-table:not(.nhc-ap-detail) tr{border:1px solid var(--nhc-line);border-radius:10px;margin-bottom:10px;padding:4px 12px;background:var(--nhc-surface-2)}
  .nhc-ap-table:not(.nhc-ap-detail) td{border-bottom:1px solid var(--nhc-line);padding:8px 0;display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:right}
  .nhc-ap-table:not(.nhc-ap-detail) td:last-child{border-bottom:0}
  .nhc-ap-table:not(.nhc-ap-detail) td[data-label]:not([data-label=""])::before{content:attr(data-label);color:var(--nhc-muted);font-size:11px;text-transform:uppercase;font-weight:700;letter-spacing:.4px;text-align:left;flex:0 0 auto}
  .nhc-ap-table:not(.nhc-ap-detail) td[data-label=""]{justify-content:flex-end}

  /* Key/value detail table (single application view) stacks label above value instead. */
  .nhc-ap-detail, .nhc-ap-detail tbody, .nhc-ap-detail tr, .nhc-ap-detail th, .nhc-ap-detail td{display:block;width:100%}
  .nhc-ap-detail{min-width:0}
  .nhc-ap-detail tr{padding:8px 0}
  .nhc-ap-detail th{width:auto;padding:0 0 2px;border-bottom:0}
  .nhc-ap-detail td{padding:0 0 8px}
}

/* ---------- Mobile app shell: full-screen takeover of the front-end admin panel ---------- */
@media(max-width:900px){
  body.nhc-app-mode{overflow:hidden}
  body.nhc-app-mode.admin-bar{margin-top:0 !important}
  body.nhc-app-mode #wpadminbar{display:none !important}
  body.nhc-app-mode > header,
  body.nhc-app-mode header.site-header,
  body.nhc-app-mode #masthead,
  body.nhc-app-mode .site-header,
  body.nhc-app-mode > footer,
  body.nhc-app-mode #colophon,
  body.nhc-app-mode .site-footer{display:none !important}
  body.nhc-app-mode #nhc-launcher{display:none}

  body.nhc-app-mode .nhc-adminpanel{
    position:fixed;inset:0;z-index:99900;width:100vw;height:100vh;height:100dvh;
    margin:0;padding:0;border-radius:0;max-width:none;
    display:flex;flex-direction:column;overflow:hidden;background:var(--nhc-bg);
  }
  body.nhc-app-mode .nhc-ap-lock{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:32px;position:relative;border:0;border-radius:0}
  body.nhc-app-mode .nhc-ap-lock .nhc-ap-home{position:absolute;top:calc(env(safe-area-inset-top) + 14px);left:16px}

  .nhc-ap-appbar{
    display:flex;align-items:center;gap:8px;flex:0 0 auto;
    padding:calc(env(safe-area-inset-top) + 12px) 12px 12px;
    background:var(--nhc-surface);border-bottom:1px solid var(--nhc-line);
  }
  .nhc-ap-burger{display:flex}
  /* .nhc-ap-nav is position:fixed — the scroll container must NOT be its ancestor
     (iOS Safari fails to deliver touch events to fixed elements nested inside an
     -webkit-overflow-scrolling:touch ancestor). Scroll .nhc-ap-main instead; shell
     stays a plain non-scrolling flex column so nav (out-of-flow) never sits inside it. */
  body.nhc-app-mode .nhc-ap-shell{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:visible;padding:0}
  body.nhc-app-mode .nhc-ap-main{min-width:0;flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px;padding-bottom:calc(20px + env(safe-area-inset-bottom))}

  /* Off-canvas nav drawer — overrides the horizontal-pill layout above */
  .nhc-ap-nav{
    position:fixed;top:0;left:0;bottom:0;z-index:99920;
    width:82vw;max-width:300px;height:100vh;height:100dvh;
    flex-direction:column;flex-wrap:nowrap;
    background:var(--nhc-surface);border-right:1px solid var(--nhc-line);border-radius:0;
    padding:calc(env(safe-area-inset-top) + 14px) 14px 14px;
    transform:translateX(-105%);transition:transform .28s cubic-bezier(.2,.8,.2,1);
    overflow-y:auto;-webkit-overflow-scrolling:touch;
  }
  .nhc-ap-nav.is-open{transform:translateX(0)}
  .nhc-ap-nav,.nhc-ap-nav a{touch-action:manipulation;pointer-events:auto}
  body:has(.nhc-ap-nav.is-open) #nh-theme-toggle{display:none}
  .nhc-ap-brand{display:flex;align-items:center;justify-content:space-between}
  .nhc-ap-navclose{display:block;background:none;border:0;color:var(--nhc-muted);font-size:22px;line-height:1;cursor:pointer;padding:4px 8px}
  .nhc-ap-navitem{font-size:15px;padding:12px;background:transparent}
  .nhc-ap-navitem .dashicons{display:inline-block}
  .nhc-ap-navhome{border-bottom:1px solid var(--nhc-line);border-radius:0;margin-bottom:6px;padding-bottom:14px;color:var(--nhc-muted)}
}
