/* ==========================================================================
   FDE.AUTOS 飞野达 — Brand Identity Override
   Based on brand manual: deep black #0B0F14, neon green #C7FF3D,
   future blue #3582F6, Inter / Noto Sans SC.
   Loaded after site.css to apply the brand visual system.
   ========================================================================== */

/* ---------- Tokens ------------------------------------------------------- */
:root{
  /* Brand palette */
  --fde-black:#0B0F14;
  --fde-white:#F7F8FA;
  --fde-green:#C7FF3D;
  --fde-green-dark:#9AD60F;
  --fde-grey:#6B7280;
  --fde-blue:#3582F6;

  /* Ink scale re-mapped for dark-first UI (darkest → lightest) */
  --ink-950:#05070A;
  --ink-900:#0B0F14;
  --ink-850:#11151B;
  --ink-800:#181D25;
  --ink-700:#242B35;
  --ink-600:#3B4450;
  --ink-500:#5B6675;
  --ink-400:#818C9A;
  --ink-300:#AAB3BE;
  --ink-200:#CFD5DB;
  --ink-150:#E1E5E9;
  --ink-100:#EDEFF2;
  --ink-50:#F7F8FA;

  /* Surfaces */
  --canvas:#0B0F14;
  --surface:#11151B;
  --surface-2:#181D25;
  --line:#242B35;
  --line-strong:#3B4450;

  /* Accent */
  --accent:#C7FF3D;
  --accent-ink:#9AD60F;
  --accent-soft:rgba(199,255,61,.12);

  /* Secondary accent */
  --accent-2:#3582F6;

  /* Semantics */
  --ok:#4ADE80;
  --ok-soft:rgba(74,222,128,.12);
  --warn:#FBBF24;
  --warn-soft:rgba(251,191,36,.12);
  --danger:#F87171;
  --danger-soft:rgba(248,113,113,.12);
  --neutral-soft:rgba(255,255,255,.06);

  /* Type */
  --font-sans:"Inter","Noto Sans SC",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Roboto,sans-serif;

  /* Glows */
  --glow-green:0 0 28px rgba(199,255,61,.22);
  --glow-blue:0 0 28px rgba(53,130,246,.22);
}

/* ---------- Base --------------------------------------------------------- */
html{scroll-behavior:smooth}
body{
  background:var(--canvas);
  color:var(--fde-white);
}
::selection{background:var(--fde-green);color:var(--fde-black)}
:focus-visible{outline:2px solid var(--fde-green);outline-offset:2px}

/* ---------- Typography --------------------------------------------------- */
.h-display,.h1,.h2,.h3,.h4,.strong{color:var(--fde-white)}
.lede{color:var(--ink-300)}
.body{color:var(--ink-300)}
.body--tight{color:var(--ink-300)}
.muted{color:var(--ink-400)}
.dim{color:var(--ink-500)}
.small{color:var(--ink-300)}
.tiny{color:var(--ink-400)}
.en{color:var(--ink-400)}
.underline-link{border-color:var(--ink-500)}
.underline-link:hover{border-color:var(--fde-green)}

/* ---------- Sections ----------------------------------------------------- */
.section{
  background:var(--canvas);
  color:var(--fde-white);
  border-top-color:var(--line);
}
.section--dark{background:var(--ink-950);border-top-color:var(--ink-800)}
.section--paper{
  background:var(--surface-2);
  color:var(--fde-white);
  border-top-color:var(--line);
}
.section--paper .h-display,.section--paper .h1,.section--paper .h2,
.section--paper .h3,.section--paper .h4{color:var(--fde-white)}

/* ---------- Buttons ------------------------------------------------------ */
.btn{
  --btn-bg:var(--fde-green);--btn-fg:var(--fde-black);--btn-bd:var(--fde-green);
  font-weight:600;
}
.btn:hover{box-shadow:var(--glow-green)}
.btn--secondary{--btn-bg:transparent;--btn-fg:var(--fde-white);--btn-bd:var(--line-strong)}
.btn--secondary:hover{--btn-bd:var(--fde-white);background:var(--surface-2);box-shadow:none}
.btn--ghost{--btn-bg:transparent;--btn-fg:var(--ink-300);--btn-bd:transparent}
.btn--ghost:hover{background:var(--surface-2);box-shadow:none;color:var(--fde-white)}
.btn--text{--btn-fg:var(--fde-green)}
.btn--text:hover{box-shadow:none;color:var(--fde-white)}
.btn--destructive{--btn-bg:var(--danger);--btn-fg:var(--fde-black);--btn-bd:var(--danger)}
.btn--inverse{--btn-bg:var(--fde-white);--btn-fg:var(--fde-black);--btn-bd:var(--fde-white)}
.btn--inverse-outline{--btn-bg:transparent;--btn-fg:var(--fde-white);--btn-bd:var(--ink-600)}
.btn--inverse-outline:hover{--btn-bd:var(--fde-green);--btn-fg:var(--fde-green)}

/* ---------- Badges / status ---------------------------------------------- */
.badge{background:var(--surface-2);border-color:var(--line-strong);color:var(--ink-300)}
.badge--solid{background:var(--fde-green);border-color:var(--fde-green);color:var(--fde-black)}
.badge--accent{background:var(--accent-soft);border-color:transparent;color:var(--fde-green)}
.badge--ok{background:var(--ok-soft);border-color:transparent;color:var(--ok)}
.badge--warn{background:var(--warn-soft);border-color:transparent;color:var(--warn)}
.badge--danger{background:var(--danger-soft);border-color:transparent;color:var(--danger)}
.badge--neutral{background:var(--neutral-soft);border-color:var(--line);color:var(--ink-400)}
.status{color:var(--ink-300)}

/* ---------- Cards -------------------------------------------------------- */
.card{background:var(--surface);border-color:var(--line);color:var(--fde-white)}
.card--hover:hover{border-color:var(--ink-500);box-shadow:0 16px 40px -20px rgba(0,0,0,.45)}
.card--flat{background:var(--surface-2)}
.card--dark{background:var(--ink-900);border-color:var(--ink-700);color:var(--fde-white)}
.card--accent{border-left-color:var(--fde-green)}
.card__kicker{color:var(--fde-green)}
.card__title{color:var(--fde-white)}
a.card:hover .card__title{color:var(--fde-green)}
.card__meta{color:var(--ink-400)}
.card__foot{border-top-color:var(--line)}

/* ---------- Spec / lists ------------------------------------------------- */
.spec{border-top-color:var(--line)}
.spec__row{border-bottom-color:var(--line)}
.spec__key{color:var(--fde-green)}
.spec__val{color:var(--ink-200)}
.section--paper .spec__val{color:var(--ink-200)}
.list li{color:var(--ink-300)}
.list li::before{background:var(--ink-600)}
.list--check li::before{border-color:var(--fde-green)}

/* ---------- Stats / data ------------------------------------------------- */
.stat__num{color:var(--fde-white)}
.stat__label{color:var(--ink-400)}
.stat-row{border-color:var(--line)}
.progress{background:var(--ink-800)}
.progress__bar{background:var(--fde-white)}
.progress__bar--accent{background:var(--fde-green)}
.progress__bar--ok{background:var(--ok)}
.meter__k{color:var(--ink-400)}
.meter__n{color:var(--ink-500)}
.evidence__bar{background:var(--ink-700)}
.evidence__bar--on{background:var(--fde-white)}
.evidence--e3 .evidence__bar--on{background:var(--fde-green)}
.evidence--e4 .evidence__bar--on,.evidence--e5 .evidence__bar--on{background:var(--ok)}
.timeline::before{background:var(--line-strong)}
.timeline__item::before{background:var(--canvas);border-color:var(--ink-400)}
.timeline__item--now::before{background:var(--fde-green);border-color:var(--fde-green)}
.steps-flow__node{background:var(--surface);border-color:var(--line-strong);color:var(--ink-200)}
.steps-flow__node--on{background:var(--fde-green);border-color:var(--fde-green);color:var(--fde-black)}
.steps-flow__sep{background:var(--line)}
.section--dark .steps-flow__node{background:transparent;border-color:var(--ink-600);color:var(--ink-100)}
.section--dark .steps-flow__node--on{background:var(--fde-green);border-color:var(--fde-green);color:var(--fde-black)}

/* ---------- Forms -------------------------------------------------------- */
.field__label{color:var(--ink-100)}
.field__label .req{color:var(--fde-green)}
.field__hint{color:var(--ink-500)}
.input,.select,.textarea{background:var(--surface);border-color:var(--line-strong);color:var(--fde-white)}
.input::placeholder,.textarea::placeholder{color:var(--ink-500)}
.input:focus,.select:focus,.textarea:focus{border-color:var(--fde-green);box-shadow:0 0 0 3px rgba(199,255,61,.15)}
.field--error .input,.field--error .select,.field--error .textarea{border-color:var(--danger)}
.choice{background:var(--surface);border-color:var(--line-strong)}
.choice:hover{border-color:var(--ink-400)}
.choice input{border-color:var(--ink-500);background:var(--surface)}
.choice input:checked{border-color:var(--fde-green);background:var(--fde-green)}
.choice input:checked::after{border-color:var(--fde-black)}
.choice input[type=radio]:checked::after{background:var(--fde-black)}
.choice:has(input:checked){border-color:var(--fde-green);background:var(--surface-2)}
.choice__t{color:var(--ink-100)}
.dropzone{background:var(--surface-2);border-color:var(--line-strong)}
.dropzone:hover{border-color:var(--ink-400);background:var(--surface)}
.filechip{background:var(--surface);border-color:var(--line);color:var(--ink-400)}
.stepper{background:var(--surface);border-color:var(--line)}
.stepper__step{border-right-color:var(--line)}
.stepper__step--on{background:var(--fde-green)}
.stepper__step--on .stepper__n{color:var(--fde-black)}
.stepper__step--on .stepper__t{color:var(--fde-black)}
.stepper__step--done .stepper__n{color:var(--fde-green)}
.formpanel{background:var(--surface);border-color:var(--line)}
.formpanel__head{border-bottom-color:var(--line)}
.form-actions{border-top-color:var(--line)}

/* ---------- Feedback ----------------------------------------------------- */
.toast{background:var(--surface-2);color:var(--fde-white);border:1px solid var(--line)}
.toast--ok{background:rgba(74,222,128,.12);border-color:rgba(74,222,128,.25);color:var(--ok)}
.toast--err{background:rgba(248,113,113,.12);border-color:rgba(248,113,113,.25);color:var(--danger)}
.empty{background:var(--surface-2);border-color:var(--line)}
.empty__k{color:var(--fde-green)}
.empty__t{color:var(--fde-white)}
.empty__d{color:var(--ink-400)}
.skeleton{background:linear-gradient(90deg,var(--ink-800) 25%,var(--ink-700) 37%,var(--ink-800) 63%);background-size:400% 100%}
.notice{background:var(--surface-2);border-color:var(--line);border-left-color:var(--fde-white)}
.notice--accent{border-left-color:var(--fde-green);background:var(--accent-soft)}
.notice--warn{border-left-color:var(--warn);background:var(--warn-soft)}
.notice__t{color:var(--fde-white)}

/* ---------- Header / Nav ------------------------------------------------- */
.topline{background:var(--ink-950);color:var(--ink-400)}
.topline__dot{background:var(--fde-green)}
.hdr{background:rgba(11,15,20,.92);border-bottom-color:var(--line)}
.brand__en{color:var(--fde-white)}
.brand__cn{color:var(--ink-400)}
.brand__mark{border:0;border-radius:0;background:none;display:flex;align-items:center;justify-content:center}
.brand__mark img{height:34px;width:auto;display:block}
.brand__mark i{display:none}
.nav__link{color:var(--ink-300)}
.nav__link:hover{color:var(--fde-white)}
.nav__link[aria-current=page]{color:var(--fde-green);border-bottom-color:var(--fde-green)}
.nav__panel{background:var(--surface);border-color:var(--line);border-top-color:var(--fde-green)}
.nav__group-t{color:var(--fde-green)}
.nav__mlink{color:var(--ink-200)}
.nav__mlink:hover{color:var(--fde-green)}
.burger{background:var(--surface);border-color:var(--line-strong)}
.burger span{background:var(--fde-white)}
.drawer__panel{background:var(--surface);border-left-color:var(--line)}
.drawer__t{color:var(--fde-green)}
.drawer__a{color:var(--ink-100)}
.drawer__a:hover{color:var(--fde-green)}

/* ---------- Hero --------------------------------------------------------- */
.hero{background:var(--canvas);border-bottom-color:var(--line)}
.hero__bg{
  background-image:
    linear-gradient(var(--line) 1px,transparent 1px),
    linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:radial-gradient(130% 100% at 78% 0%,#000 18%,transparent 70%);
  opacity:.35;
}
.net .node-box{fill:var(--surface);stroke:var(--line-strong)}
.net .node-box--core{fill:var(--fde-green);stroke:var(--fde-green)}
.net .node-t{fill:var(--ink-300)}
.net .node-t--core{fill:var(--fde-black)}
.net .link{stroke:var(--line-strong)}
.net .flow{stroke:var(--fde-green)}
.net .pulse{fill:var(--fde-green)}
.net pattern path{stroke:var(--line)}

/* ---------- Home blocks -------------------------------------------------- */
.domains{background:var(--line);border-color:var(--line)}
.domain{background:var(--surface)}
.domain:hover{background:var(--surface-2)}
.domain__n{color:var(--fde-green)}
.domain__t{color:var(--fde-white)}
.domain__d{color:var(--ink-400)}
.problemmap{background:var(--line);border-color:var(--line)}
.pm-row{background:var(--surface)}
.pm-row--head{background:var(--ink-900);color:var(--ink-300)}
.pm-row--head .pm-cell{color:var(--ink-300)}
.pm-cell{color:var(--ink-300)}
.pm-cell--k{color:var(--fde-green)}
.compare__col{background:var(--surface);border-color:var(--line)}
.compare__col--on{border-color:var(--fde-green);box-shadow:var(--glow-green)}
.compare__hd{border-bottom-color:var(--line)}
.compare__t{color:var(--fde-white)}
.flow-track{background:var(--line);border-color:var(--line)}
.flow-step{background:var(--ink-900)}
.flow-step__n{color:var(--fde-green)}
.flow-step__t{color:var(--fde-white)}
.flow-step__d{color:var(--ink-400)}
.principles{background:var(--line);border-color:var(--line)}
.principle{background:var(--ink-900)}
.principle__en{color:var(--fde-white)}
.principle__cn{color:var(--ink-400)}
.trust-grid{}
.cta-band{background:var(--surface-2)}
.cta-band::after{border-color:var(--line)}

/* ---------- Directory / filters ------------------------------------------ */
.toolbar{border-color:var(--line)}
.chip{background:var(--surface-2);border-color:var(--line-strong);color:var(--ink-300)}
.chip:hover{border-color:var(--ink-400);color:var(--fde-white)}
.chip[aria-pressed=true]{background:var(--fde-green);border-color:var(--fde-green);color:var(--fde-black)}
.search svg{opacity:.5}
.count{color:var(--ink-400)}
.fde-card__id{color:var(--fde-green)}
.fde-card__name{color:var(--fde-white)}
.fde-card__title{color:var(--ink-400)}
.avatar{background:var(--ink-800);border-color:var(--line);color:var(--ink-300)}
.tag{background:var(--surface-2);border-color:var(--line);color:var(--ink-400)}

/* ---------- Tables / admin ----------------------------------------------- */
.table-wrap{background:var(--surface);border-color:var(--line)}
table.tbl th{background:var(--surface-2);color:var(--fde-green);border-bottom-color:var(--line)}
table.tbl td{border-bottom-color:var(--line);color:var(--ink-200)}
table.tbl tbody tr:hover{background:var(--surface-2)}
.admin-side{background:var(--ink-900);border-right-color:var(--line)}
.admin-main{background:var(--canvas)}
.admin-top{background:var(--surface);border-bottom-color:var(--line)}
.admin-nav a:hover{background:var(--ink-800);color:var(--fde-white)}
.kpi{background:var(--surface);border-color:var(--line)}
.kpi__v{color:var(--fde-white)}
.kpi__l{color:var(--fde-green)}
.gate{background:var(--surface);border-color:var(--line)}
.gate__logo{border-color:var(--fde-green)}

/* ---------- Detail pages ------------------------------------------------- */
.doc h2,.doc h3{color:var(--fde-white)}
.doc p,.doc li{color:var(--ink-300)}
.doc ul li::before{background:var(--ink-600)}
.crumb{color:var(--ink-400)}
.crumb a:hover{color:var(--fde-green)}
.pagehead{border-bottom-color:var(--line)}

/* ---------- Footer ------------------------------------------------------- */
.ftr{background:var(--ink-950);color:var(--ink-400)}
.ftr__tag{color:var(--ink-400)}
.ftr__col-t{color:var(--fde-green)}
.ftr__link{color:var(--ink-300)}
.ftr__link:hover{color:var(--fde-white)}
.ftr__bottom{border-top-color:var(--line);color:var(--ink-500)}

/* ---------- Utilities ---------------------------------------------------- */
.reveal{opacity:0;transform:translateY(16px)}
.reveal--in{opacity:1;transform:none}

/* ---------- Admin gate --------------------------------------------------- */
.admin-body-root{background:var(--canvas)}
.gate{background:var(--surface);border-color:var(--line)}
.gate__logo{border:0;background:none;display:flex;justify-content:center}
.gate__logo img{width:38px;height:auto;display:block}

/* ---------- Mobile tweaks ------------------------------------------------ */
@media(max-width:520px){
  .brand__mark img{height:30px}
}
