:root{
  --bg: #0b1130;
  --bg-soft: #10173f;
  --panel: #131b4a;
  --panel-2: #0e1440;
  --border: rgba(125, 216, 255, 0.16);
  --text: #eaf2ff;
  --muted: #93a1c9;
  --accent: #38f0e8;
  --accent-2: #7dd8ff;
  --accent-3: #ffb454;
  --danger: #ff6b6b;
  --good: #52e0a1;
  --radius: 16px;
  --maxw: 1120px;
  font-size: 16px;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background: radial-gradient(1200px 600px at 15% -10%, #17204f 0%, var(--bg) 55%) fixed;
  color: var(--text);
  font-family: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", -apple-system, BlinkMacSystemFont, sans-serif;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

a{color: var(--accent-2); text-decoration: none;}
a:hover{text-decoration: underline;}

.container{max-width: var(--maxw); margin: 0 auto; padding: 0 24px;}

.nav{
  position: sticky; top:0; z-index: 40;
  backdrop-filter: blur(10px);
  background: rgba(11,17,48,0.75);
  border-bottom: 1px solid var(--border);
}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding: 14px 24px; max-width: var(--maxw); margin: 0 auto;
}
.brand{display:flex; align-items:center; gap:10px; font-weight:700; letter-spacing:.02em; color:var(--text);}
.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--accent); box-shadow: 0 0 12px 2px var(--accent);}
.nav-links{display:flex; gap:22px; font-size:.92rem;}
.nav-links a{color: var(--muted);}
.nav-links a.active, .nav-links a:hover{color: var(--text); text-decoration:none;}

.mobile-banner{
  display:none;
  background: linear-gradient(90deg, rgba(56,240,232,.14), rgba(125,216,255,.08));
  border-bottom: 1px solid var(--border);
  color: var(--text);
  font-size: .9rem;
  padding: 10px 16px;
  text-align: center;
}
.mobile-banner a{font-weight:700; color: var(--accent);}
body.is-mobile .mobile-banner{display:block;}

.hero{padding: 72px 0 40px;}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.8rem; color:var(--accent-2); letter-spacing:.08em;
  border:1px solid var(--border); padding:6px 14px; border-radius:999px;
  background: rgba(56,240,232,.06);
}
h1{font-size: clamp(2rem, 4vw, 2.8rem); margin: 18px 0 12px; line-height:1.3;}
.lede{color: var(--muted); font-size: 1.05rem; max-width: 640px;}

.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding: 12px 22px; border-radius: 999px; font-weight:700; font-size:.95rem;
  border:1px solid transparent; cursor:pointer;
}
.btn-primary{background: linear-gradient(135deg, var(--accent), var(--accent-2)); color:#04222b;}
.btn-primary:hover{filter:brightness(1.08); text-decoration:none;}
.btn-ghost{border-color: var(--border); color: var(--text); background: rgba(255,255,255,.02);}
.btn-ghost:hover{border-color: var(--accent-2); text-decoration:none;}
.btn-row{display:flex; gap:14px; margin-top: 28px; flex-wrap:wrap;}

.grid{display:grid; gap:20px;}
.grid-3{grid-template-columns: repeat(3, 1fr);}
.grid-2{grid-template-columns: repeat(2, 1fr);}
@media (max-width: 860px){
  .grid-3{grid-template-columns: 1fr;}
  .grid-2{grid-template-columns: 1fr;}
}

.card{
  background: linear-gradient(180deg, var(--panel), var(--panel-2));
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 26px;
}
.card:hover{border-color: rgba(125,216,255,.35);}

.module-card{display:flex; flex-direction:column; gap:14px; height:100%;}
.module-card .tag{
  align-self:flex-start; font-size:.75rem; color:var(--accent);
  border:1px solid var(--border); padding:3px 10px; border-radius:999px;
}
.module-card h3{margin:0; font-size:1.25rem;}
.module-card p{color:var(--muted); margin:0; font-size:.94rem; flex:1;}
.module-card .go{font-size:.88rem; font-weight:700;}

section{padding: 46px 0;}
.section-head{max-width:640px; margin-bottom: 30px;}
.section-head .eyebrow{margin-bottom:14px;}
.section-head h2{font-size:1.8rem; margin:0 0 10px;}
.section-head p{color:var(--muted); margin:0;}

.kpi-grid{display:grid; grid-template-columns: repeat(4,1fr); gap:16px; margin: 26px 0;}
@media (max-width: 860px){.kpi-grid{grid-template-columns: repeat(2,1fr);}}
.kpi{
  background: var(--panel); border:1px solid var(--border); border-radius: 14px; padding: 18px 20px;
}
.kpi .label{color:var(--muted); font-size:.82rem;}
.kpi .value{font-size:1.6rem; font-weight:800; margin-top:6px;}
.kpi .value.good{color:var(--good);}
.kpi .value.bad{color:var(--danger);}
.kpi .delta{font-size:.8rem; margin-top:4px; color:var(--muted);}

.chart-panel{
  background: var(--panel); border:1px solid var(--border); border-radius: var(--radius);
  padding: 22px; margin-bottom: 22px;
}
.chart-panel h3{margin:0 0 4px; font-size:1.05rem;}
.chart-panel .sub{color:var(--muted); font-size:.85rem; margin-bottom:14px;}
.chart-wrap{position:relative; height: 320px;}
.chart-toggle{display:flex; gap:8px; margin-bottom:12px;}
.chip{
  font-size:.8rem; padding:6px 14px; border-radius:999px; border:1px solid var(--border);
  color:var(--muted); cursor:pointer; background:transparent;
}
.chip.active{color:#04222b; background: var(--accent-2); border-color:transparent; font-weight:700;}

table.data-table{width:100%; border-collapse: collapse; font-size:.9rem;}
table.data-table th, table.data-table td{
  text-align:left; padding:10px 12px; border-bottom:1px solid var(--border);
}
table.data-table th{color:var(--muted); font-weight:600; font-size:.8rem;}
table.data-table td.num{text-align:right; font-variant-numeric: tabular-nums;}

.badge{font-size:.72rem; padding:2px 8px; border-radius:999px;}
.badge.warn{background: rgba(255,180,84,.15); color: var(--accent-3);}
.badge.crit{background: rgba(255,107,107,.15); color: var(--danger);}

.compare{display:grid; grid-template-columns: 1fr auto 1fr; align-items:center; gap:18px;}
@media (max-width:700px){.compare{grid-template-columns:1fr;}}
.compare .box{background:var(--panel); border:1px solid var(--border); border-radius:14px; padding:20px; text-align:center;}
.compare .box .t{color:var(--muted); font-size:.82rem;}
.compare .box .v{font-size:1.8rem; font-weight:800; margin-top:8px;}
.compare .arrow{color:var(--accent); font-size:1.6rem; text-align:center;}

/* chat / conversation demo (workstation) */
.chat-shell{
  background: var(--panel); border:1px solid var(--border); border-radius: var(--radius);
  padding: 20px; max-width: 720px;
}
.chat-log{display:flex; flex-direction:column; gap:16px; min-height: 320px;}
.msg{max-width: 82%; padding:12px 16px; border-radius: 14px; font-size:.94rem; line-height:1.55;}
.msg.user{align-self:flex-end; background: linear-gradient(135deg, var(--accent), var(--accent-2)); color:#04222b; border-bottom-right-radius:4px;}
.msg.ai{align-self:flex-start; background: var(--panel-2); border:1px solid var(--border); border-bottom-left-radius:4px;}
.msg .who{font-size:.72rem; opacity:.75; margin-bottom:4px; font-weight:700;}
.typing{display:inline-flex; gap:4px; align-items:center;}
.typing span{width:6px;height:6px;border-radius:50%;background:var(--accent-2); animation: blink 1.2s infinite ease-in-out;}
.typing span:nth-child(2){animation-delay:.2s;} .typing span:nth-child(3){animation-delay:.4s;}
@keyframes blink{0%,80%,100%{opacity:.25;} 40%{opacity:1;}}
.chat-input{display:flex; gap:10px; margin-top:16px;}
.chat-input input{
  flex:1; background: var(--panel-2); border:1px solid var(--border); border-radius:999px;
  padding: 12px 18px; color:var(--text); font-size:.92rem;
}
.chat-input input::placeholder{color:var(--muted);}
.chat-input button{border:none;}

.prompt-suggestions{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px;}
.prompt-suggestions button{
  font-size:.82rem; padding:8px 14px; border-radius:999px; border:1px solid var(--border);
  background: rgba(255,255,255,.02); color: var(--muted); cursor:pointer;
}
.prompt-suggestions button:hover{color:var(--text); border-color:var(--accent-2);}

.pdf-card{
  display:flex; align-items:center; gap:14px; background: var(--panel-2); border:1px solid var(--border);
  border-radius: 12px; padding: 14px 18px; margin-top: 14px;
}
.pdf-card .icon{
  width:42px;height:42px;border-radius:10px;background: rgba(255,107,107,.15); color:var(--danger);
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.8rem;
}
.pdf-card .meta{flex:1;}
.pdf-card .meta .name{font-weight:700; font-size:.92rem;}
.pdf-card .meta .size{color:var(--muted); font-size:.78rem;}

.footer{border-top:1px solid var(--border); padding: 30px 0; color:var(--muted); font-size:.85rem; text-align:center;}
.footer a{color:var(--muted);}

.security-strip{
  display:flex; gap:14px; align-items:center; flex-wrap:wrap;
  background: rgba(56,240,232,.05); border:1px solid var(--border); border-radius:14px;
  padding:16px 20px; margin-top: 30px; font-size:.86rem; color:var(--muted);
}
.security-strip b{color:var(--accent-2);}

.qr-box{
  display:flex; align-items:center; gap:20px; flex-wrap:wrap;
}
.qr-box img{border-radius:12px; background:#fff; padding:10px;}

.disclaimer{
  font-size:.78rem; color: var(--muted); border-top:1px dashed var(--border); margin-top:40px; padding-top:16px;
}
