/* 龙虎斗官网 - Carbon Intelligence Control Room / Green Factory Operations Lab */
:root{
  --bg:#f4f2ee;
  --bg-2:#ebe8e2;
  --paper:#fffdf9;
  --ink:#1c2128;
  --ink-2:#414a55;
  --muted:#6b7480;
  --line:#d9d4cb;
  --graphite:#1e232a;
  --graphite-2:#262d36;
  --slate:#2b3644;
  --carbon:#0f6e63;
  --carbon-2:#0a4f47;
  --carbon-soft:#d9efeb;
  --energy:#1f5fbf;
  --energy-soft:#dce8fa;
  --supplier:#5a4fcf;
  --supplier-soft:#e6e3f8;
  --warn:#d9781e;
  --warn-soft:#fbe9d6;
  --emission:#c8452b;
  --emission-soft:#f8ddd6;
  --water:#1a8fa8;
  --water-soft:#d6eef3;
  --radius:10px;
  --max:1180px;
  --font:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC","Hiragino Sans GB",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.8;font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--carbon);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.35;margin:0 0 .6em;font-weight:700;color:var(--ink)}
h1{font-size:clamp(1.5rem,3.2vw,2.35rem)}
h2{font-size:clamp(1.3rem,2.4vw,1.8rem)}
h3{font-size:1.15rem}
h4{font-size:1rem}
p{margin:0 0 1em}
ul,ol{padding-left:1.4em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* header */
.site-header{background:var(--graphite);color:#e8ecf1;position:sticky;top:0;z-index:50;border-bottom:1px solid #313a45}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;min-height:64px;gap:16px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:1.15rem;letter-spacing:.02em}
.brand:hover{text-decoration:none}
.brand-mark{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,var(--carbon),var(--energy));display:grid;place-items:center;font-size:.8rem;color:#fff;font-family:var(--mono)}
.brand small{display:block;font-size:.68rem;font-weight:400;color:#9aa6b5;letter-spacing:.06em}
.nav{display:flex;gap:2px;flex-wrap:wrap}
.nav a{color:#c9d2dd;padding:8px 11px;border-radius:6px;font-size:.92rem;white-space:nowrap}
.nav a:hover,.nav a.active{background:var(--graphite-2);color:#fff;text-decoration:none}
.nav a.active{box-shadow:inset 0 -2px 0 var(--carbon)}
.nav-toggle{display:none;background:none;border:1px solid #4a5563;color:#fff;border-radius:6px;padding:6px 10px;font-size:1rem;cursor:pointer}

/* hero */
.hero{background:radial-gradient(1200px 500px at 15% -10%,#1f3a4a 0%,var(--graphite) 55%),var(--graphite);color:#e6ebf0;padding:56px 0 48px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:36px 36px;pointer-events:none}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center}
.hero h1{color:#fff;font-size:clamp(1.35rem,2.6vw,2rem)}
.hero .kicker{display:inline-block;font-family:var(--mono);font-size:.75rem;letter-spacing:.14em;color:#7fd3c6;border:1px solid #2f5d57;padding:4px 10px;border-radius:4px;margin-bottom:14px}
.hero .lead{color:#b9c4d0;font-size:1.02rem}
.hero .lead strong{color:#fff;font-weight:600}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.btn{display:inline-block;padding:10px 18px;border-radius:7px;font-weight:600;font-size:.95rem;border:1px solid transparent}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--carbon);color:#fff}
.btn-primary:hover{background:var(--carbon-2)}
.btn-ghost{border-color:#56667a;color:#e6ebf0}
.btn-ghost:hover{border-color:#fff}
.hero-figure{background:#151a20;border:1px solid #313a45;border-radius:14px;padding:12px}
.hero-figure figcaption{font-size:.78rem;color:#8d99a8;margin-top:8px;font-family:var(--mono)}
.page-hero{padding:44px 0 36px}
.page-hero .wrap{grid-template-columns:1fr}
.page-hero .lead{max-width:860px}

/* sections */
.section{padding:56px 0}
.section-alt{background:var(--bg-2)}
.section-dark{background:var(--slate);color:#dfe6ee}
.section-dark h2,.section-dark h3{color:#fff}
.section-dark p{color:#c2ccd8}
.section-head{max-width:820px;margin-bottom:28px}
.section-head .eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;color:var(--carbon);text-transform:uppercase;margin-bottom:6px}
.section-dark .eyebrow{color:#7fd3c6}
.section-head p{color:var(--ink-2)}

/* loop / flow */
.loop-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.flow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-family:var(--mono);font-size:.8rem;margin:10px 0 18px}
.flow span{background:var(--paper);border:1px solid var(--line);padding:5px 10px;border-radius:5px;color:var(--ink-2)}
.flow i{color:var(--muted);font-style:normal}
.flow .c{border-color:var(--carbon);color:var(--carbon-2);background:var(--carbon-soft)}
.flow .e{border-color:var(--energy);color:var(--energy);background:var(--energy-soft)}
.flow .s{border-color:var(--supplier);color:var(--supplier);background:var(--supplier-soft)}
.flow .w{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}
.flow .r{border-color:var(--emission);color:var(--emission);background:var(--emission-soft)}
.flow .b{border-color:var(--water);color:var(--water);background:var(--water-soft)}
.section-dark .flow span{background:#1f2933;border-color:#3b4a5a;color:#d7e0ea}

.callout{border-left:4px solid var(--carbon);background:var(--paper);padding:16px 20px;border-radius:0 var(--radius) var(--radius) 0;margin:20px 0}
.callout.warn{border-color:var(--warn)}
.callout.energy{border-color:var(--energy)}
.callout.emission{border-color:var(--emission)}
.callout p:last-child{margin:0}
.note{font-size:.82rem;color:var(--muted);font-family:var(--mono)}

/* lifecycle tabs */
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.tabs button{border:1px solid var(--line);background:var(--paper);padding:7px 13px;border-radius:6px;cursor:pointer;font:inherit;font-size:.9rem;color:var(--ink-2)}
.tabs button[aria-selected="true"]{background:var(--carbon);color:#fff;border-color:var(--carbon)}
.tab-panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px}
.tab-panel[hidden]{display:none}
.boundary-table{width:100%;border-collapse:collapse;font-size:.9rem;margin:12px 0}
.boundary-table th,.boundary-table td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.boundary-table th{background:var(--bg-2);font-weight:600}
.tag{display:inline-block;font-family:var(--mono);font-size:.72rem;padding:2px 8px;border-radius:4px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink-2)}
.tag.in{background:var(--carbon-soft);color:var(--carbon-2);border-color:#9fd3c9}
.tag.out{background:var(--bg-2);color:var(--muted)}
.tag.cond{background:var(--warn-soft);color:var(--warn);border-color:#f0c79a}
.tag.est{background:var(--supplier-soft);color:var(--supplier);border-color:#bdb6ec}
.tag.pri{background:var(--energy-soft);color:var(--energy);border-color:#a9c3ef}
.tag.miss{background:var(--emission-soft);color:var(--emission);border-color:#eeb3a6}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* articles */
.article-list{display:grid;gap:26px}
.article{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:28px 30px;position:relative}
.article-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-family:var(--mono);font-size:.74rem;color:var(--muted);margin-bottom:10px}
.article-meta .cat{color:var(--carbon-2);background:var(--carbon-soft);padding:2px 8px;border-radius:4px}
.article-meta .cat.energy{color:var(--energy);background:var(--energy-soft)}
.article-meta .cat.supplier{color:var(--supplier);background:var(--supplier-soft)}
.article-meta .cat.emission{color:var(--emission);background:var(--emission-soft)}
.article-meta .cat.warn{color:var(--warn);background:var(--warn-soft)}
.article h3{font-size:1.22rem;margin-bottom:12px}
.article h2{font-size:1.32rem;margin-bottom:12px}
.article .lead-text{color:var(--ink);font-size:1.02rem}
.article p{color:var(--ink-2)}
.article figure{margin:18px 0;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px}
.article figcaption{font-size:.8rem;color:var(--muted);margin-top:6px}
.article details{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px}
.article summary{cursor:pointer;color:var(--carbon);font-weight:600;list-style:none;display:inline-flex;align-items:center;gap:6px}
.article summary::-webkit-details-marker{display:none}
.article summary::before{content:"+";display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--carbon);font-size:.85rem}
.article details[open] summary::before{content:"−"}
.article details > *:not(summary){margin-top:12px}
.article .structure{background:var(--bg-2);border-radius:8px;padding:14px 16px;font-size:.92rem;margin:14px 0}
.article .structure strong{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;color:var(--carbon-2);display:block;margin-bottom:6px}
.article .structure ol,.article .structure ul{margin:0}

/* ladder / ledger / matrix visual blocks */
.ladder{list-style:none;padding:0;margin:14px 0;display:grid;gap:4px}
.ladder li{padding:8px 14px;border-radius:6px;font-size:.9rem;display:flex;justify-content:space-between;gap:10px;align-items:center}
.ladder li:nth-child(1){background:#c7e8e1}
.ladder li:nth-child(2){background:#d9efeb}
.ladder li:nth-child(3){background:#e6e3f8}
.ladder li:nth-child(4){background:#efeef6}
.ladder li:nth-child(5){background:#fbe9d6}
.ladder li:nth-child(6){background:#f8ddd6}
.ledger{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:.78rem}
.ledger th,.ledger td{border-bottom:1px solid var(--line);padding:7px 8px;text-align:left;white-space:nowrap}
.ledger th{background:var(--bg-2)}
.matrix{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:14px 0}
.matrix > div{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:10px;font-size:.82rem}
.matrix > div b{display:block;font-family:var(--mono);font-size:.72rem;margin-bottom:4px}
.matrix .m-ghg b{color:var(--carbon-2)}
.matrix .m-air b{color:var(--emission)}
.matrix .m-water b{color:var(--water)}
.matrix .m-ww b{color:var(--water)}
.matrix .m-waste b{color:var(--warn)}
.gate{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px;margin:14px 0}
.gate div{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px;font-size:.8rem;text-align:center;font-family:var(--mono)}
.gate div.human{background:var(--warn-soft);border-color:var(--warn);color:var(--warn);font-weight:700}
.timeline{list-style:none;padding:0;margin:14px 0;border-left:2px solid var(--line)}
.timeline li{padding:4px 0 4px 16px;position:relative;font-size:.92rem}
.timeline li::before{content:"";position:absolute;left:-6px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--carbon)}
.timeline li.e::before{background:var(--energy)}
.timeline li.s::before{background:var(--supplier)}
.timeline li.w::before{background:var(--warn)}

/* trends */
.trend-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.trend{background:#1f2933;border:1px solid #3b4a5a;border-radius:12px;padding:20px 22px}
.trend .num{font-family:var(--mono);color:#7fd3c6;font-size:.75rem;letter-spacing:.12em}
.trend h3{font-size:1.02rem;margin:6px 0 8px;color:#fff}
.trend p{font-size:.93rem;margin:0;color:#c2ccd8}
.trend .from-to{font-family:var(--mono);font-size:.74rem;color:#9fb0c2;margin-bottom:6px}

/* observations */
.obs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.obs{background:var(--paper);border-top:4px solid var(--supplier);border-radius:0 0 12px 12px;padding:22px 22px 18px;box-shadow:0 1px 0 var(--line)}
.obs h3{font-size:1.05rem}
.obs p{font-size:.94rem;color:var(--ink-2)}

/* capability map */
.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.cap{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:20px 22px}
.cap h3{display:flex;align-items:center;gap:8px;font-size:1.05rem}
.cap h3 i{width:10px;height:10px;border-radius:2px;display:inline-block}
.cap ul{margin:0;padding-left:1.2em;font-size:.92rem;color:var(--ink-2)}
.cap .more{display:inline-block;margin-top:10px;font-size:.9rem;font-weight:600}

/* latest content sections */
.latest{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.latest .item{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:20px 22px;display:flex;flex-direction:column}
.latest .item h3{font-size:1.02rem}
.latest .item p{font-size:.92rem;color:var(--ink-2);flex:1}
.latest .item a.more{font-weight:600;font-size:.9rem}
.latest.four{grid-template-columns:repeat(2,1fr)}

/* faq */
.faq{display:grid;gap:8px}
.faq details{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:0}
.faq summary{cursor:pointer;padding:14px 18px;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);color:var(--carbon)}
.faq details[open] summary::after{content:"−"}
.faq .a{padding:0 18px 16px;color:var(--ink-2);font-size:.95rem}
.faq .a p{margin:0}

/* about */
.about{display:grid;grid-template-columns:1.2fr .8fr;gap:30px;align-items:start}
.about .disclaimer{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:18px 20px;font-size:.86rem;color:var(--muted)}
.about .disclaimer h3{font-size:.95rem;color:var(--ink-2)}

/* demo widgets */
.demo{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:20px 22px;margin:18px 0}
.demo h3{font-size:1rem}
.demo .controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:12px 0}
.demo label{font-size:.85rem;color:var(--ink-2);display:block}
.demo select,.demo input[type=range]{width:100%;margin-top:4px;font:inherit}
.demo .bars{display:grid;gap:6px;margin-top:10px}
.demo .bar{display:grid;grid-template-columns:120px 1fr 90px;align-items:center;gap:8px;font-size:.84rem;font-family:var(--mono)}
.demo .bar .track{height:14px;background:var(--bg-2);border-radius:4px;overflow:hidden}
.demo .bar .fill{height:100%;background:var(--carbon);transition:width .4s}
.demo .bar.energy .fill{background:var(--energy)}
.demo .bar.transport .fill{background:var(--supplier)}
.demo .bar.use .fill{background:var(--water)}
.demo .bar.pack .fill{background:var(--warn)}
.demo .result{font-family:var(--mono);font-size:.9rem;margin-top:10px;padding:10px 12px;background:var(--bg-2);border-radius:6px}
.demo .result .scenario{color:var(--warn);font-weight:700}
.demo .badge{display:inline-block;font-family:var(--mono);font-size:.7rem;padding:2px 7px;border-radius:4px;background:var(--warn-soft);color:var(--warn);margin-left:6px;vertical-align:middle}

/* qa blocks on sub pages */
.qa-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.qa{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:16px 18px}
.qa h3{font-size:1rem;margin-bottom:6px}
.qa p{font-size:.92rem;color:var(--ink-2);margin:0}

/* app features */
.features{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.feature{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:16px}
.feature .n{font-family:var(--mono);font-size:.72rem;color:var(--carbon)}
.feature h3{font-size:1rem;margin:4px 0 6px}
.feature p{font-size:.88rem;color:var(--ink-2);margin:0}
.download{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.download div{background:var(--paper);border:1px dashed var(--line);border-radius:10px;padding:18px;text-align:center}
.download b{display:block;margin-bottom:6px}
.download span{font-size:.86rem;color:var(--muted)}

/* breadcrumb */
.crumb{font-size:.82rem;color:#9aa6b5;margin-bottom:10px;font-family:var(--mono)}
.crumb a{color:#9aa6b5}

/* footer */
.site-footer{background:var(--graphite);color:#9aa6b5;padding:40px 0 24px;font-size:.88rem;margin-top:40px}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:28px;margin-bottom:24px}
.site-footer h4{color:#fff;font-size:.95rem}
.site-footer a{color:#c9d2dd}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:4px}
.site-footer .legal{border-top:1px solid #313a45;padding-top:16px;font-size:.8rem;line-height:1.7}
.site-footer .legal p{margin:0 0 6px}

/* responsive */
@media (max-width:1024px){
  .obs-grid,.cap-grid,.latest{grid-template-columns:repeat(2,1fr)}
  .features{grid-template-columns:repeat(2,1fr)}
  .matrix{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:860px){
  .hero .wrap,.loop-grid,.about,.trend-grid,.qa-grid{grid-template-columns:1fr}
  .site-footer .cols{grid-template-columns:1fr}
  .nav{display:none;width:100%;flex-direction:column;padding-bottom:10px}
  .nav.open{display:flex}
  .nav-toggle{display:block}
  .site-header .wrap{flex-wrap:wrap}
  .nav a{padding:10px 8px;border-bottom:1px solid #2b333d;white-space:normal}
}
@media (max-width:640px){
  .obs-grid,.cap-grid,.latest,.latest.four,.features,.download{grid-template-columns:1fr}
  .article{padding:20px 18px}
  .section{padding:40px 0}
  .matrix{grid-template-columns:1fr 1fr}
  .demo .bar{grid-template-columns:90px 1fr 70px}
  .hero{padding:36px 0 32px}
}
@media (max-width:430px){
  body{font-size:15px}
  .matrix{grid-template-columns:1fr}
  .demo .bar{grid-template-columns:1fr;gap:2px}
}
