/* ABNVerify — Styles
 * constructtrackpro.com/abnverify/
 */

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

:root {
  --carbon:      #1D1D1F;
  --carbon-2:    #2C2C2E;
  --chalk:       #F5F5F7;
  --white:       #FFFFFF;
  --mid:         #86868B;
  --light:       #E8E8ED;
  --orange:      #FF6B35;
  --orange-dim:  rgba(255,107,53,0.10);
  --blue:        #0071E3;
  --green:       #34C759;
  --green-dim:   rgba(52,199,89,0.08);
  --red:         #FF3B30;
  --red-dim:     rgba(255,59,48,0.08);
  --yellow:      #FF9F0A;
  --yellow-dim:  rgba(255,159,10,0.08);
  --radius-card: 16px;
  --radius-pill: 980px;
}

html { scroll-behavior: smooth; }
body { font-family: 'DM Sans', sans-serif; background: var(--chalk); color: var(--carbon); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
h1 { font-size: clamp(28px,4.5vw,52px); font-weight: 200; letter-spacing: -0.03em; line-height: 1.1; }
h2 { font-size: clamp(22px,3vw,36px); font-weight: 200; letter-spacing: -0.025em; line-height: 1.15; }
h3 { font-size: clamp(16px,2vw,22px); font-weight: 400; letter-spacing: -0.02em; }
p  { line-height: 1.65; }

/* ─── NAV ─── */
.av-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  height: 52px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 40px;
  background: rgba(29,29,31,0.92);
  backdrop-filter: saturate(180%) blur(24px);
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
.nav-brand { display:flex; align-items:center; gap:10px; font-size:13px; font-weight:400; letter-spacing:-0.01em; color:rgba(255,255,255,0.9); text-decoration:none; }
.nav-brand svg { width:22px; height:22px; flex-shrink:0; }
.nav-brand .sep { color:rgba(255,255,255,0.2); margin:0 4px; }
.nav-brand .hub { color:var(--orange); font-weight:500; }
.nav-links { display:flex; align-items:center; gap:20px; }
.nav-links a { font-size:12px; color:rgba(255,255,255,0.5); text-decoration:none; transition:color 0.2s; }
.nav-links a:hover { color:rgba(255,255,255,0.9); }
.nav-links a.active { color:var(--orange); }
.nav-cta { height:30px; padding:0 14px; background:var(--orange); color:white; border-radius:var(--radius-pill); font-size:11px; font-weight:500; text-decoration:none; display:flex; align-items:center; transition:opacity 0.2s; }
.nav-cta:hover { opacity:0.88; }

/* ─── BREADCRUMB ─── */
.breadcrumb { padding:68px 0 0; }
.breadcrumb-inner { max-width:1000px; margin:0 auto; padding:16px 40px 0; display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:12px; color:var(--mid); font-family:'DM Mono',monospace; }
.breadcrumb-inner a { color:var(--mid); text-decoration:none; transition:color 0.2s; }
.breadcrumb-inner a:hover { color:var(--carbon); }

/* ─── HERO ─── */
.page-hero { background:var(--carbon); padding:64px 40px 56px; text-align:center; position:relative; overflow:hidden; }
.page-hero::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,0.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.025) 1px,transparent 1px); background-size:48px 48px; }
.page-hero::after { content:''; position:absolute; width:500px; height:500px; border-radius:50%; background:radial-gradient(ellipse,rgba(255,107,53,0.12) 0%,transparent 70%); top:50%; left:50%; transform:translate(-50%,-60%); }
.page-hero > * { position:relative; z-index:1; }
.hero-eyebrow { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color:var(--orange); margin-bottom:16px; }
.hero-title { color:white; margin-bottom:16px; }
.hero-title strong { font-weight:500; }
.hero-sub { font-size:clamp(14px,1.8vw,17px); font-weight:300; color:rgba(255,255,255,0.45); line-height:1.6; max-width:620px; margin:0 auto 28px; }
.hero-pills { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.hero-pill { height:32px; padding:0 16px; border-radius:var(--radius-pill); font-size:12px; font-weight:400; text-decoration:none; display:inline-flex; align-items:center; gap:6px; transition:all 0.2s; cursor:pointer; font-family:'DM Sans',sans-serif; border:none; }
.hero-pill.primary { background:var(--orange); color:white; }
.hero-pill.primary:hover { background:#ff7a48; transform:translateY(-1px); }
.hero-pill.ghost { background:transparent; color:rgba(255,255,255,0.6); border:1px solid rgba(255,255,255,0.15); cursor:default; }

/* ─── STATS ─── */
.stats-row { display:flex; background:var(--white); border-top:1px solid var(--light); border-bottom:1px solid var(--light); flex-wrap:wrap; }
.stat-item { padding:18px 28px; text-align:center; border-right:1px solid var(--light); flex:1; min-width:100px; }
.stat-item:last-child { border-right:none; }
.stat-num { font-size:22px; font-weight:200; letter-spacing:-0.03em; color:var(--orange); display:block; margin-bottom:2px; }
.stat-label { font-size:10px; color:var(--mid); font-family:'DM Mono',monospace; letter-spacing:0.04em; }

/* ─── AD ─── */
.ad-unit { display:flex; align-items:center; justify-content:center; min-height:90px; padding:16px; background:var(--white); border-top:1px solid var(--light); border-bottom:1px solid var(--light); }

/* ─── CHECKER WRAP ─── */
.checker-wrap { max-width:680px; margin:0 auto; padding:40px 40px 64px; }

/* ─── SEARCH BOX ─── */
.search-card { background:var(--white); border:1.5px solid var(--light); border-radius:var(--radius-card); padding:28px; margin-bottom:20px; }
.search-label { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--mid); margin-bottom:10px; display:block; }
.search-row { display:flex; gap:10px; align-items:stretch; }
.abn-input {
  flex:1; height:52px; padding:0 18px;
  border:1.5px solid var(--light); border-radius:12px;
  font-family:'DM Mono',monospace; font-size:16px; letter-spacing:0.08em;
  color:var(--carbon); background:var(--chalk);
  transition:border-color 0.2s, background 0.2s;
  outline:none;
}
.abn-input::placeholder { color:var(--mid); letter-spacing:0.05em; }
.abn-input:focus { border-color:var(--orange); background:var(--white); }
.abn-input.error { border-color:var(--red); }
.btn-search {
  height:52px; padding:0 24px; background:var(--orange); color:white;
  border:none; border-radius:12px; font-family:'DM Sans',sans-serif;
  font-size:14px; font-weight:500; cursor:pointer; transition:all 0.2s;
  display:flex; align-items:center; gap:8px; white-space:nowrap;
}
.btn-search:hover { background:#ff7a48; transform:translateY(-1px); box-shadow:0 6px 20px rgba(255,107,53,0.3); }
.btn-search:disabled { opacity:0.5; cursor:not-allowed; transform:none; box-shadow:none; }
.input-hint { font-size:11px; color:var(--mid); margin-top:8px; font-weight:300; }
.input-error { font-size:11px; color:var(--red); margin-top:8px; display:none; }

/* ─── LOADING SPINNER ─── */
.loading-state { display:none; text-align:center; padding:32px; }
.spinner { width:32px; height:32px; border:2px solid var(--light); border-top-color:var(--orange); border-radius:50%; animation:spin 0.7s linear infinite; margin:0 auto 12px; }
@keyframes spin { to { transform:rotate(360deg); } }
.loading-state p { font-size:13px; color:var(--mid); font-weight:300; }

/* ─── API PENDING NOTICE ─── */
.api-pending { background:var(--yellow-dim); border:1px solid rgba(255,159,10,0.25); border-radius:12px; padding:16px 20px; margin-bottom:20px; }
.api-pending p { font-size:13px; color:#9a6000; font-weight:300; line-height:1.6; }
.api-pending strong { font-weight:500; }

/* ─── RESULT CARD ─── */
#resultSection { display:none; }

.result-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px; flex-wrap:wrap; }
.result-biz-name { font-size:22px; font-weight:400; letter-spacing:-0.02em; color:var(--carbon); }
.result-entity-type { font-size:12px; color:var(--mid); font-weight:300; margin-top:4px; }

/* Status badge */
.status-pill { height:28px; padding:0 14px; border-radius:var(--radius-pill); font-size:12px; font-weight:500; display:inline-flex; align-items:center; gap:6px; flex-shrink:0; }
.status-pill .dot { width:7px; height:7px; border-radius:50%; }
.status-active { background:var(--green-dim); color:#1d8a3c; }
.status-active .dot { background:var(--green); }
.status-cancelled { background:var(--red-dim); color:#c0241a; }
.status-cancelled .dot { background:var(--red); }
.status-unknown { background:var(--yellow-dim); color:#9a6000; }
.status-unknown .dot { background:var(--yellow); }

/* Detail rows */
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:20px; }
.detail-item { background:var(--chalk); border-radius:10px; padding:14px 16px; }
.detail-item-label { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:0.1em; text-transform:uppercase; color:var(--mid); margin-bottom:4px; }
.detail-item-value { font-size:14px; font-weight:400; color:var(--carbon); letter-spacing:-0.01em; }
.detail-item-value.gst-yes { color:#1d8a3c; }
.detail-item-value.gst-no  { color:#9a6000; }

/* ─── ATO WITHHOLDING ALERT ─── */
.withholding-alert { background:var(--red-dim); border:1.5px solid rgba(255,59,48,0.2); border-radius:var(--radius-card); padding:20px 22px; margin-bottom:20px; }
.withholding-alert-top { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.withholding-alert-top svg { flex-shrink:0; }
.withholding-alert-top strong { font-size:15px; font-weight:500; color:#c0241a; letter-spacing:-0.01em; }
.withholding-alert p { font-size:13px; color:#c0241a; font-weight:300; line-height:1.6; }
.withholding-alert a { color:#c0241a; }

/* ─── GST CONTEXT ─── */
.gst-context { background:var(--yellow-dim); border:1px solid rgba(255,159,10,0.2); border-radius:var(--radius-card); padding:16px 20px; margin-bottom:20px; }
.gst-context p { font-size:13px; color:#9a6000; font-weight:300; line-height:1.6; }
.gst-context strong { font-weight:500; }

/* ─── PRE-ENGAGEMENT CHECKLIST ─── */
.checklist-card { background:var(--white); border:1.5px solid var(--light); border-radius:var(--radius-card); padding:22px; margin-bottom:20px; }
.checklist-heading { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--orange); margin-bottom:14px; }
.checklist-rows { display:flex; flex-direction:column; gap:8px; }
.checklist-row { display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:8px; background:var(--chalk); }
.checklist-row.auto-checked { background:var(--green-dim); }
.checklist-row.auto-failed  { background:var(--red-dim); }
.checklist-check { width:20px; height:20px; border-radius:5px; border:1.5px solid var(--light); flex-shrink:0; display:flex; align-items:center; justify-content:center; cursor:pointer; background:white; transition:all 0.15s; }
.checklist-check.checked { background:var(--green); border-color:var(--green); }
.checklist-check.failed  { background:var(--red); border-color:var(--red); }
.checklist-check svg { display:none; }
.checklist-check.checked svg, .checklist-check.failed svg { display:block; }
.checklist-row-text { flex:1; }
.checklist-row-label { font-size:13px; font-weight:400; color:var(--carbon); letter-spacing:-0.01em; }
.checklist-row-sub   { font-size:11px; color:var(--mid); font-weight:300; margin-top:1px; }
.checklist-row-badge { font-size:10px; font-family:'DM Mono',monospace; letter-spacing:0.06em; padding:2px 8px; border-radius:4px; }
.badge-auto-pass { background:var(--green-dim); color:#1d8a3c; }
.badge-auto-fail { background:var(--red-dim); color:#c0241a; }
.badge-manual     { background:var(--chalk); color:var(--mid); border:1px solid var(--light); }
.checklist-actions { display:flex; gap:8px; margin-top:14px; flex-wrap:wrap; }

/* ─── STATE LICENCE LINKS ─── */
.licence-card { background:var(--white); border:1.5px solid var(--light); border-radius:var(--radius-card); padding:22px; margin-bottom:20px; }
.licence-heading { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--orange); margin-bottom:6px; }
.licence-sub { font-size:12px; color:var(--mid); font-weight:300; margin-bottom:14px; }
.licence-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:8px; }
.licence-link {
  display:flex; align-items:center; gap:8px; padding:10px 12px;
  background:var(--chalk); border:1px solid var(--light); border-radius:10px;
  text-decoration:none; transition:all 0.15s; color:var(--carbon);
}
.licence-link:hover { background:var(--white); border-color:var(--orange); color:var(--orange); }
.licence-state { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:0.08em; font-weight:400; flex-shrink:0; background:var(--orange-dim); color:var(--orange); padding:2px 7px; border-radius:4px; }
.licence-board { font-size:12px; font-weight:400; flex:1; }
.licence-arrow { font-size:11px; color:var(--mid); }

/* ─── RESULT ACTIONS ─── */
.result-actions { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px; }
.btn { height:40px; padding:0 20px; border-radius:var(--radius-pill); font-family:'DM Sans',sans-serif; font-size:13px; font-weight:500; cursor:pointer; border:none; transition:all 0.2s; display:inline-flex; align-items:center; gap:7px; text-decoration:none; }
.btn-primary { background:var(--orange); color:white; }
.btn-primary:hover { background:#ff7a48; transform:translateY(-1px); box-shadow:0 6px 20px rgba(255,107,53,0.3); }
.btn-ghost { background:var(--chalk); color:var(--carbon); border:1px solid var(--light); }
.btn-ghost:hover { background:var(--light); }
.btn-sm { height:34px; padding:0 14px; font-size:12px; }

/* ─── BIZCOVER CTA ─── */
.insurance-cta { background:var(--carbon); border-radius:var(--radius-card); padding:22px 26px; margin-bottom:20px; display:flex; align-items:flex-start; gap:16px; flex-wrap:wrap; }
.insurance-cta-icon { width:44px; height:44px; border-radius:12px; background:rgba(255,107,53,0.15); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:20px; }
.insurance-cta-body { flex:1; min-width:180px; }
.insurance-cta-body p:first-child { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:0.1em; text-transform:uppercase; color:var(--orange); margin-bottom:4px; }
.insurance-cta-body h4 { font-size:14px; font-weight:400; letter-spacing:-0.01em; color:white; margin-bottom:4px; }
.insurance-cta-body p:last-child { font-size:12px; color:rgba(255,255,255,0.45); font-weight:300; line-height:1.5; }
.insurance-cta-actions { display:flex; flex-direction:column; justify-content:center; gap:8px; flex-shrink:0; }

/* ─── RECENT CHECKS ─── */
.recent-section { background:var(--white); border:1.5px solid var(--light); border-radius:var(--radius-card); padding:22px; margin-bottom:20px; }
.recent-heading { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:0.12em; text-transform:uppercase; color:var(--mid); margin-bottom:12px; display:flex; align-items:center; justify-content:space-between; }
.recent-clear { background:none; border:none; font-size:10px; color:var(--mid); cursor:pointer; font-family:'DM Mono',monospace; letter-spacing:0.06em; transition:color 0.2s; }
.recent-clear:hover { color:var(--red); }
.recent-list { display:flex; flex-direction:column; gap:6px; }
.recent-item { display:flex; align-items:center; gap:12px; padding:10px 12px; background:var(--chalk); border-radius:8px; cursor:pointer; transition:background 0.15s; border:none; width:100%; text-align:left; font-family:'DM Sans',sans-serif; }
.recent-item:hover { background:var(--light); }
.recent-item-abn  { font-family:'DM Mono',monospace; font-size:12px; color:var(--mid); letter-spacing:0.06em; flex-shrink:0; }
.recent-item-name { font-size:13px; font-weight:400; color:var(--carbon); flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.recent-item-date { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:0.04em; flex-shrink:0; }
.recent-item-date.stale { color:var(--yellow); }
.recent-item-date.ok    { color:var(--green); }
.recent-status { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.recent-status.active { background:var(--green); }
.recent-status.cancelled { background:var(--red); }
.recent-status.unknown { background:var(--mid); }
.no-recent { font-size:12px; color:var(--mid); font-weight:300; text-align:center; padding:8px 0; }

/* ─── EMAIL CAPTURE ─── */
.email-capture-wrap { background:var(--carbon); border-radius:var(--radius-card); padding:26px 30px; margin-bottom:20px; color:white; }
.email-capture-wrap p.ec-eyebrow { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:0.14em; text-transform:uppercase; color:var(--orange); margin-bottom:6px; }
.email-capture-wrap h3 { font-size:17px; font-weight:400; letter-spacing:-0.02em; color:white; margin-bottom:6px; }
.email-capture-wrap p.ec-sub { font-size:13px; color:rgba(255,255,255,0.45); font-weight:300; margin-bottom:18px; }

/* ─── DISCLAIMER ─── */
.disclaimer { background:rgba(255,107,53,0.05); border:1px solid rgba(255,107,53,0.15); border-radius:10px; padding:14px 18px; margin-bottom:20px; }
.disclaimer p { font-size:12px; color:var(--mid); line-height:1.6; font-weight:300; }
.disclaimer strong { color:var(--carbon); font-weight:500; }

/* ─── CROSS PROMO ─── */
.cross-promo { background:var(--carbon); border-radius:var(--radius-card); padding:22px 26px; margin-bottom:20px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.cross-promo-text p:first-child { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:0.12em; text-transform:uppercase; color:var(--orange); margin-bottom:4px; }
.cross-promo-text h3 { font-size:15px; font-weight:400; letter-spacing:-0.02em; color:white; }
.cross-promo-text p:last-child { font-size:12px; color:rgba(255,255,255,0.5); font-weight:300; margin-top:2px; }

/* ─── CONTENT SECTIONS ─── */
.content-section { max-width:1000px; margin:0 auto; padding:0 40px 48px; }
.content-section h2 { margin-bottom:16px; }
.content-section p { font-size:14px; color:var(--mid); font-weight:300; line-height:1.7; margin-bottom:12px; }
.content-section a { color:var(--blue); }
.content-section strong { color:var(--carbon); font-weight:500; }

/* ─── FAQ ─── */
.faq-section { max-width:1000px; margin:0 auto; padding:0 40px 64px; }
.faq-item { border-top:1px solid var(--light); }
.faq-q { width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:18px 0; display:flex; justify-content:space-between; align-items:center; font-family:'DM Sans',sans-serif; font-size:14px; font-weight:400; color:var(--carbon); letter-spacing:-0.01em; gap:16px; }
.faq-q svg { flex-shrink:0; transition:transform 0.3s; }
.faq-item.open .faq-q svg { transform:rotate(45deg); }
.faq-a { font-size:13px; color:var(--mid); line-height:1.7; font-weight:300; padding-bottom:18px; display:none; }
.faq-item.open .faq-a { display:block; }
.faq-a a { color:var(--blue); }
.faq-a strong { color:var(--carbon); font-weight:500; }

/* ─── FOOTER ─── */
.av-footer { background:var(--carbon); border-top:1px solid rgba(255,255,255,0.06); padding:40px 60px; }
.footer-inner { max-width:1000px; margin:0 auto; display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:24px; }
.footer-brand { display:flex; align-items:center; gap:8px; font-size:13px; color:rgba(255,255,255,0.5); text-decoration:none; }
.footer-brand svg { width:18px; height:18px; }
.footer-links { display:flex; gap:20px; flex-wrap:wrap; }
.footer-links a { font-size:12px; color:rgba(255,255,255,0.3); text-decoration:none; transition:color 0.2s; }
.footer-links a:hover { color:rgba(255,255,255,0.7); }
.footer-copy { font-family:'DM Mono',monospace; font-size:10px; color:rgba(255,255,255,0.2); letter-spacing:0.04em; line-height:1.7; width:100%; margin-top:8px; }

/* ─── PRINT ─── */
@media print {
  .av-nav, .breadcrumb, .page-hero, .stats-row, .ad-unit,
  .search-card, .api-pending, .recent-section, .result-actions,
  .insurance-cta, .email-capture-wrap, .cross-promo,
  .content-section, .faq-section, .av-footer { display:none !important; }
  body { background:white; }
  #resultSection { display:block !important; }
  .checker-wrap { padding:0; max-width:100%; }
  .result-header, .detail-grid, .checklist-card, .licence-card, .withholding-alert, .gst-context { page-break-inside:avoid; }
}

/* ─── RESPONSIVE ─── */
@media (max-width:768px) {
  .av-nav { padding:0 20px; }
  .nav-links .hide-mobile { display:none; }
  .page-hero { padding:64px 24px 40px; }
  .checker-wrap { padding:24px 20px 48px; }
  .content-section, .faq-section { padding-left:20px; padding-right:20px; }
  .av-footer { padding:32px 24px; }
  .stats-row .stat-item { min-width:50%; }
  .detail-grid { grid-template-columns:1fr; }
  .search-row { flex-direction:column; }
  .btn-search { justify-content:center; }
  .result-actions { flex-direction:column; }
  .result-actions .btn { justify-content:center; }
  .cross-promo { flex-direction:column; }
  .insurance-cta { flex-direction:column; }
}
