/* main.css — consolidated component styles for every page.
 *
 * Each page's rules are scoped under a root ID set on its <body>:
 *   #home (index.html) · #projects (projects.html) · #crew (app.html)
 *   #admin (admin.html) · #invite (accept-invitation.html) · #delivery (delivery.html)
 *
 * Scoping under the page ID lets all pages share this one file without class collisions
 * (e.g. .card / .btn-primary are defined differently per page). Design tokens live in tokens.css.
 * Global helpers and @keyframes (which cannot be ID-scoped) live at the top; where two pages
 * defined the same keyframe name differently, the copy is renamed (shimmer -> shimmer-crew).
 *
 * This file is a faithful relocation of the pages' original <style> blocks — appearance is
 * unchanged. Converging the duplicated per-page classes onto the shared tokens is the follow-on. */

/* ============================================================
   GLOBAL (page-agnostic)
   ============================================================ */
[x-cloak] { display: none !important; }

/* ============================================================
   SHARED COMPONENTS — the "change it once" layer
   ------------------------------------------------------------
   Tailwind gives you atoms (px-4), not components, so nothing ever forced the buttons to agree —
   the app had EIGHT different button paddings, some in CSS and some as px-/py- classes in the
   markup. These rules are the standard. Change --btn-pad in tokens.css and every default button
   on every page moves; --btn-pad-sm moves every small button.

   Selectors are grouped per page-ID rather than hoisted to a bare `.btn-primary` ON PURPOSE:
   an unscoped class (0,1,0) would lose the cascade to Tailwind utilities on the same element,
   whereas `#page .btn-primary` (1,1,0) keeps the specificity these rules have always had.
   ============================================================ */
#projects .btn-primary, #crew .btn-primary, #admin .btn-primary, #home .btn-primary,
#projects .btn-ghost,   #home .btn-ghost {
  padding: var(--btn-pad);
  font-size: var(--btn-fs);
  font-weight: var(--btn-weight);
  cursor: pointer;
  border: none;
}
/* Size variants. .btn-sm is the small button — one place, every page. */
#projects .btn-sm, #crew .btn-sm, #admin .btn-sm, #home .btn-sm {
  padding: var(--btn-pad-sm);
  font-size: var(--btn-fs-sm);
}
#projects .btn-lg, #crew .btn-lg, #admin .btn-lg, #home .btn-lg, #invite .btn-lg {
  padding: var(--btn-pad-lg);
}

/* Pure duplicates — these were defined identically on two pages each. One definition now. */
#projects .chip, #delivery .chip {
  display: inline-flex; align-items: center; padding: var(--chip-pad);
  border-radius: var(--radius-sm); font-size: var(--text-xs); font-weight: 600; letter-spacing: 0.02em;
}
#crew .label-teal, #admin .label-teal { color: var(--accent-bright); font-size: var(--text-sm); }
#crew .modal-overlay, #home .modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.85);
  display: flex; align-items: center; justify-content: center; z-index: 50; padding: 16px;
}
#crew .modal, #home .modal {
  background: var(--surface-raised); border: 1px solid var(--border);
  border-radius: var(--radius-xl); width: 100%; overflow-y: auto;
}
/* .tag-verified was three near-identical copies; only the size differed. */
#crew .tag-verified, #admin .tag-verified, #home .tag-verified {
  background: var(--accent-wash); color: var(--accent); border: 1px solid var(--accent);
  border-radius: var(--radius-pill); padding: var(--tag-pad); font-size: var(--text-xs);
}

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.4} }
@keyframes shimmer { 0%{background-position:-800px 0} 100%{background-position:800px 0} }
@keyframes shimmer-crew { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
@keyframes toast-in { from{transform:translateY(12px);opacity:0} to{transform:translateY(0);opacity:1} }
@keyframes tab-fade-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@keyframes thinking-pulse { 0%,100%{opacity:0.2;transform:scale(0.85)} 50%{opacity:1;transform:scale(1)} }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes floatOrb1 { 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(-50px,30px) scale(1.08);} }
@keyframes floatOrb2 { 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(35px,-25px) scale(0.92);} }
@keyframes floatOrb3 { 0%,100%{transform:translate(0,0);} 33%{transform:translate(25px,35px);} 66%{transform:translate(-20px,15px);} }

/* ============================================================
   #projects  (projects.html — the ProductionHero app)
   ============================================================ */
#projects { font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; }
#projects input, #projects textarea, #projects select, #projects button { font-family: inherit; }
#projects .font-display { font-family: 'Inter', sans-serif; letter-spacing: -0.02em; }
#projects { background: var(--bg); color: var(--text-primary); }
#projects ::-webkit-scrollbar { width: 4px; height: 4px; }
#projects ::-webkit-scrollbar-track { background: transparent; }
#projects ::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 2px; }
#projects .sidebar { width: 240px; min-width: 240px; background:var(--bg); border-right: 1px solid var(--border); }
#projects .nav-item { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius:var(--radius); font-size:var(--text-base); font-weight: 500; cursor: pointer; transition: all 0.12s; color: var(--text-tertiary); width: 100%; text-align: left; border: none; background: none; letter-spacing: -0.01em; }
#projects .nav-item:hover { background: var(--surface-hover); color: var(--text-primary); }
#projects .nav-item.active { background: var(--surface-hover); color: var(--text-primary); border-left: 2px solid var(--accent); padding-left: 8px; }
#projects .nav-item.active svg { stroke: var(--accent); }
#projects .card { background: var(--surface); border: 1px solid var(--border); border-radius:var(--radius-md); box-shadow: var(--shadow-sm); }
#projects .card-hover { transition: border-color 0.15s, box-shadow 0.15s; cursor: pointer; }
#projects .card-hover:hover { border-color: rgba(2,156,136,0.4); box-shadow: var(--shadow-md); }
#projects .crew-card { transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease; cursor: pointer; }
#projects .crew-card:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,0.6), 0 2px 8px rgba(0,0,0,0.4); }
#projects .data-table { width: 100%; border-collapse: collapse; font-size:var(--text-base); }
#projects .data-table th { padding: 8px 12px; text-align: left; font-size:var(--text-xs); font-weight: 600; color: var(--text-tertiary); text-transform: uppercase; letter-spacing: 0.06em; border-bottom: 1px solid var(--border); }
#projects .data-table td { padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,0.04); color: var(--text-secondary); vertical-align: middle; }
#projects .data-table tbody tr:hover td { background: var(--surface-hover); }
#projects .data-table tbody tr:last-child td { border-bottom: none; }
#projects .drawer { position: fixed; right: 0; top: 0; bottom: 0; width: 380px; background:var(--surface-sunken); border-left: 1px solid var(--border); z-index: 60; overflow-y: auto; box-shadow: 0 25px 64px rgba(0,0,0,0.8), 0 4px 16px rgba(0,0,0,0.5); }
#projects .upload-tray { position: fixed; bottom: 0; left: 240px; right: 0; background:var(--surface-sunken); border-top: 1px solid var(--border); z-index: 50; }
#projects .spinner { width: 14px; height: 14px; border: 2px solid rgba(255,255,255,0.08); border-top-color: var(--accent); border-radius:var(--radius-circle); animation: spin 0.7s linear infinite; display: inline-block; flex-shrink: 0; }
#projects .tab { padding: 8px 14px; font-size:var(--text-base); font-weight: 500; color: var(--text-tertiary); cursor: pointer; border-bottom: 2px solid transparent; transition: all 0.12s; white-space: nowrap; background: none; border-top: none; border-left: none; border-right: none; letter-spacing: -0.01em; }
#projects .tab:hover { color: var(--text-secondary); }
#projects .tab.active { color: var(--accent); border-bottom-color: var(--accent); }
#projects .ai-bar { background: var(--surface); border: 1px solid var(--border); border-radius:var(--radius-md); display: flex; align-items: center; gap: 8px; padding: 8px 10px; transition: border-color 0.15s; }
#projects .ai-bar:focus-within { border-color: var(--accent); }
#projects .ai-bar input { background: none; border: none; outline: none; font-size:var(--text-base); color:var(--text-secondary); flex: 1; min-width: 0; font-family: 'Inter', sans-serif; }
#projects .ai-bar input::placeholder { color: var(--text-tertiary); }
/* shared: padding / font-size / weight / border / cursor — see the components block at the top */
#projects .btn-primary { background: var(--accent); color:#000; border-radius:var(--radius); transition: background 0.12s; letter-spacing: -0.01em; }
#projects .btn-primary:hover { background: var(--accent-hover); }
#projects .btn-ghost { background: transparent; color: var(--text-tertiary); border: 1px solid var(--border); border-radius:var(--radius); transition: all 0.12s; letter-spacing: -0.01em; }
#projects .btn-ghost:hover { border-color: var(--border-strong); color: var(--text-secondary); }
#projects .thinking { animation: pulse 1.5s ease-in-out infinite; }
#projects .skeleton { background:linear-gradient(90deg,var(--surface-hover) 25%,var(--surface-raised) 50%,var(--surface-hover) 75%); background-size:800px 100%; animation:shimmer 1.6s infinite linear; border-radius:var(--radius); }
#projects .toast-enter { animation:toast-in 0.2s ease-out forwards; }
#projects .stat-card { background: var(--surface); border: 1px solid var(--border); border-radius:var(--radius-md); padding: 16px 20px; box-shadow: var(--shadow-sm); position: relative; overflow: hidden; }
#projects .stat-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(2,156,136,0.3), transparent); }
#projects .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 72px 32px; text-align: center; }
#projects .empty-state svg { opacity: 0.18; margin-bottom: 18px; }
#projects .empty-state .es-title { font-size:var(--text-md); font-weight: 600; color: var(--text-secondary); margin-bottom: 6px; letter-spacing: -0.01em; }
#projects .empty-state .es-sub { font-size:var(--text-sm); color: var(--text-tertiary); max-width: 260px; line-height: 1.65; margin-bottom: 20px; }
#projects .brief-body { font-size:var(--text-base); line-height:1.8; color:var(--text-secondary); }
#projects .brief-body strong { color:var(--text-primary); font-weight:600; }
#projects .brief-body em { color:var(--text-secondary); font-style:italic; }
#projects .brief-body p { margin-bottom:0.75em; }
#projects .brief-body p:last-child { margin-bottom:0; }
#projects .tab-fade { animation: tab-fade-in 120ms ease-out both; }
#projects .thinking-dot { width:7px;height:7px;border-radius:var(--radius-circle);background:var(--accent);display:inline-block; animation: thinking-pulse 1.4s ease-in-out infinite; }
#projects .thinking-dot:nth-child(2) { animation-delay: 0.2s; }
#projects .thinking-dot:nth-child(3) { animation-delay: 0.4s; }
#projects .prose-slate ul { list-style: disc; padding-left: 1.25rem; margin: 0.5rem 0; }
#projects .prose-slate ol { list-style: decimal; padding-left: 1.25rem; margin: 0.5rem 0; }
#projects .prose-slate li { margin: 0.2rem 0; }
#projects .prose-slate strong { color: var(--text-primary); font-weight: 600; }
#projects .prose-slate em { font-style: italic; }
#projects .prose-slate code { background:var(--surface-raised); border-radius: 3px; padding: 1px 5px; font-size:var(--text-sm); font-family: monospace; color:var(--accent); }
#projects .prose-slate p { margin: 0.4rem 0; }

/* ============================================================
   #crew  (app.html — CrewOS: Find Crew / Job Board)
   ============================================================ */
#crew { font-family: 'Wix Madefor Text', sans-serif; }
#crew input, #crew textarea, #crew select, #crew button { font-family: inherit; }
#crew .font-display { font-family: 'Wix Madefor Display', 'Wix Madefor Text', sans-serif; }
#crew { background:var(--bg); color:var(--text-primary); }
#crew .sidebar { background:var(--bg); border-right:1px solid var(--border); }
#crew .nav-item { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius:var(--radius-md); font-size:var(--text-md); cursor: pointer; transition: background 0.15s; color:var(--text-tertiary); width: 100%; text-align: left; border: none; }
#crew .nav-item:hover { background:var(--surface-raised); color:var(--text-primary); }
#crew .nav-item:hover svg { stroke:var(--text-primary); }
#crew .nav-item.active { background:var(--surface-raised); color:var(--text-primary); border-left:2px solid var(--accent); padding-left: 10px; }
#crew .nav-item.active svg { stroke:var(--accent); }
#crew .card { background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-lg); transition: border-color 0.2s; }
#crew .card:hover { border-color:var(--accent); }
#crew .card-gradient { background: linear-gradient(0deg, rgb(0,125,97) 0%, rgb(0,0,0) 100%); border:1px solid var(--border); border-radius:var(--radius-lg); transition: border-color 0.2s; }
#crew .card-gradient:hover { border-color:var(--accent); }
#crew .stat-card { background:var(--surface-raised); border:1px solid var(--border); border-radius:var(--radius-lg); padding: 20px 24px; transition: border-color 0.2s; }
#crew .stat-card:hover { border-color:var(--accent); }
#crew .quick-action { background:var(--surface-raised); border:1px solid var(--border); border-radius:var(--radius-lg); padding: 20px; cursor: pointer; transition: all 0.2s; display: flex; flex-direction: column; gap: 8px; text-align: left; }
#crew .quick-action:hover { border-color:var(--accent); background:var(--surface); }
#crew .skill-chip { background:var(--bg); color:var(--text-primary); border:0.8px solid var(--accent); border-radius:var(--radius); font-size:var(--text-sm); padding: 2px 8px; display: inline-block; }
#crew .btn-primary { background:var(--accent); color:var(--text-primary); border-radius:var(--radius-pill); transition: background 0.2s; }
#crew .btn-primary:hover:not(:disabled) { background:var(--accent-deep); }
#crew .btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
#crew .input-dark { background:var(--surface-raised); border:1px solid var(--border); color:var(--text-primary); border-radius:var(--radius-md); padding: 8px 12px; width: 100%; outline: none; font-size:var(--text-md); transition: border-color 0.2s; font-family: 'Wix Madefor Text', sans-serif; }
#crew .input-dark:focus { border-color:var(--accent); }
#crew .tag-open { background: rgba(87,192,158,0.1); color:var(--accent-soft); border:1px solid var(--accent-soft); border-radius:var(--radius-pill); font-size:var(--text-xs); padding: 2px 10px; white-space: nowrap; }
#crew .modal { padding: 28px; }
#crew .category-chip { font-size:var(--text-sm); padding: 4px 12px; border-radius:var(--radius-pill); cursor: pointer; transition: all 0.15s; border: none; }
#crew select.input-dark option { background:var(--surface-raised); }
#crew .skeleton { background:linear-gradient(90deg, var(--surface-raised) 25%, #252525 50%, var(--surface-raised) 75%); background-size: 200% 100%; animation: shimmer-crew 1.6s infinite; border-radius:var(--radius-md); }
#crew .avatar { width: 44px; height: 44px; border-radius:var(--radius-circle); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size:var(--text-lg); flex-shrink: 0; overflow: hidden; }
#crew .avatar-gradient { background:linear-gradient(135deg, #018166, var(--accent)); }
#crew .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 48px 24px; color:var(--text-muted); text-align: center; }

/* ============================================================
   #admin  (admin.html — platform admin)
   ============================================================ */
#admin { font-family: 'Wix Madefor Text', sans-serif; }
#admin input, #admin textarea, #admin select, #admin button { font-family: inherit; }
#admin .font-display { font-family: 'Wix Madefor Display', sans-serif; }
#admin { background:var(--bg); color:var(--text-primary); }
#admin .sidebar { background:var(--bg); border-right:1px solid var(--border); }
#admin .nav-item { display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-md);font-size:var(--text-md);cursor:pointer;transition:background 0.15s;color:var(--text-tertiary);width:100%;text-align:left; }
#admin .nav-item:hover { background:var(--surface-raised);color:var(--text-primary); }
#admin .nav-item.active { background:var(--surface-raised);color:var(--text-primary);border-left:2px solid var(--accent); }
#admin .input-dark { background:var(--surface-raised);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-md);padding:10px 16px;width:100%;outline:none;transition:border-color 0.2s; }
#admin .input-dark:focus { border-color:var(--accent); }
#admin .btn-primary { background:var(--accent);color:var(--text-primary);border-radius:var(--radius-pill);transition:background 0.2s; }
#admin .btn-primary:hover { background:var(--accent-deep); }
#admin .stat-card { background:linear-gradient(0deg,rgb(0,125,97) 0%,rgb(0,0,0) 100%);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px; }
#admin .table-row { border-bottom:1px solid var(--border); }
#admin .table-row:hover { background:var(--surface-raised); }
#admin .tag-active { background:rgba(87,192,158,0.1);color:var(--accent-soft);border:1px solid var(--accent-soft);border-radius:var(--radius-pill);font-size:var(--text-xs);padding:2px 8px; }
#admin .tag-inactive { background:rgba(255,100,100,0.1);color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-pill);font-size:var(--text-xs);padding:2px 8px; }
#admin .action-btn { font-size:var(--text-xs);padding:3px 10px;border-radius:var(--radius-pill);cursor:pointer;transition:all 0.15s; }

/* ============================================================
   #home  (index.html — marketing / login)
   ============================================================ */
#home { font-family: 'Wix Madefor Text', sans-serif; }
#home input, #home textarea, #home select, #home button { font-family: inherit; }
#home .font-display { font-family: 'Wix Madefor Display', sans-serif; }
#home { background:var(--bg); color:var(--text-primary); margin: 0; }
#home .btn-primary { background:var(--accent); color:var(--text-primary); border-radius:var(--radius-pill); transition: background 0.2s; }
#home .btn-primary:hover { background:var(--accent-deep); }
#home .btn-ghost { background: transparent; color:var(--text-primary); border:1px solid var(--accent); border-radius:var(--radius-pill); transition: all 0.2s; }
#home .btn-ghost:hover { background: var(--accent-wash); }
#home .teal { color:var(--accent-bright); }
#home .teal-mid { color:var(--accent); }
#home .text-muted { color:var(--text-tertiary); }
#home .text-light { color:var(--text-secondary); }
#home .hero-gradient { background:radial-gradient(ellipse at 50% 0%, #018166 0%, #003228 45%, var(--bg) 100%); }
#home .section-gradient { background:radial-gradient(ellipse at center, #018166 0%, #003228 60%, var(--bg) 100%); }
#home .card-gradient { background: linear-gradient(0deg, rgb(0,125,97) 0%, rgb(0,0,0) 100%); }
#home .card { background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-lg); transition: border-color 0.2s; }
#home .card:hover { border-color:var(--accent); }
#home .card-dark { background:var(--surface-raised); border:1px solid var(--border); border-radius:var(--radius-lg); }
#home .input-dark { background:var(--surface-raised); border:1px solid var(--border); color:var(--text-primary); border-radius:var(--radius-md); padding: 10px 16px; width: 100%; outline: none; transition: border-color 0.2s; font-family: 'Wix Madefor Text', sans-serif; font-size:var(--text-md); }
#home .input-dark:focus { border-color:var(--accent); }
#home .nav-link { color:var(--accent-bright); font-size:var(--text-md); transition: color 0.2s; text-decoration: none; cursor: pointer; background: none; border: none; }
#home .nav-link:hover { color:#01F6C5; }
#home .nav-link-white { color:var(--text-primary); font-size:var(--text-md); transition: color 0.2s; text-decoration: none; cursor: pointer; background: none; border: none; }
#home .nav-link-white:hover { color:var(--accent-bright); }
#home .marquee-wrapper { overflow: hidden; background:var(--bg); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding: 24px 0; }
#home .marquee-track { display: flex; gap: 14px; animation: marquee 50s linear infinite; width: max-content; }
#home .marquee-wrapper:hover .marquee-track { animation-play-state: paused; }
#home .talent-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); width: 230px; flex-shrink: 0; overflow: hidden; transition: border-color 0.2s, transform 0.15s, box-shadow 0.15s; }
#home .talent-card:hover { border-color: rgba(2,156,136,0.5); transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,0.6); }
#home .skill-chip { background:var(--bg); color:var(--text-primary); border:0.8px solid var(--accent); border-radius:var(--radius); font-size:var(--text-xs); padding: 2px 6px; display: inline-block; }
#home .section-divider { border: none; border-top:1px solid var(--border); margin: 0; }
#home .modal { padding: 32px; max-height: 90vh; }
#home .orb { position: absolute; border-radius:var(--radius-circle); filter: blur(90px); pointer-events: none; }

/* ============================================================
   #invite  (accept-invitation.html — crew invite acceptance)
   ============================================================ */
#invite { background:var(--bg); color:var(--text-secondary); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
#invite .input-field {
  width: 100%; background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-md);
  padding: 10px 14px; font-size:var(--text-md); color: white; outline: none; transition: border-color 0.15s;
}
#invite .input-field:focus { border-color:var(--accent); }
#invite .btn-primary {
  background:var(--accent); color:#000; font-weight: 700; font-size:var(--text-md);
  padding: 10px 24px; border-radius:var(--radius-md); border: none; cursor: pointer;
  transition: opacity 0.15s; width: 100%;
}
#invite .btn-primary:disabled { opacity: 0.4; cursor: not-allowed; }
#invite .btn-primary:not(:disabled):hover { opacity: 0.85; }
#invite .spinner {
  display: inline-block; width: 14px; height: 14px;
  border: 2px solid rgba(0,0,0,0.2); border-top-color:#000;
  border-radius:var(--radius-circle); animation: spin 0.7s linear infinite;
}

/* ============================================================
   #delivery  (delivery.html — client deliverable download)
   ============================================================ */
#delivery { background:var(--bg); color:var(--text-secondary); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
#delivery .chip { display: inline-flex; align-items: center; padding: 2px 8px; border-radius:var(--radius-sm); font-size:var(--text-xs); font-weight: 600; letter-spacing: 0.02em; }
#delivery .spinner { display: inline-block; width: 20px; height: 20px; border: 2px solid rgba(255,255,255,0.1); border-top-color:var(--accent); border-radius:var(--radius-circle); animation: spin 0.7s linear infinite; }
