/* ==========================================================================
   艾科智能 / AIKOTEK — 统一门户 home.aikotek.ai
   设计语言: 与官网 v2「深色赛博光效」一致 — 深色 + 品牌蓝光效 + 发光卡片
   色板来源: docs/brand/brand-tokens.json(v0.3-w0d3),深色专用 token 见
             docs/brand/website-hifi-v2/README.md §3
   作者: 范琳 (ux / frontend, Phase 0 品牌 + SSO 门户 B)
   说明: 纯静态导航聚合页,不代理、不聚合数据。深色默认,浅色经 data-theme 切换。
   ========================================================================== */

/* ---------- 0. 自托管字体(WOFF2,OFL,不依赖外网 CDN) ---------- */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/inter-400.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/inter-500.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/inter-600.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/inter-700.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:swap;src:url('fonts/inter-800.woff2') format('woff2')}
@font-face{font-family:'Source Han Sans SC';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/noto-sans-sc-400.woff2') format('woff2')}
@font-face{font-family:'Source Han Sans SC';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/noto-sans-sc-500.woff2') format('woff2')}
@font-face{font-family:'Source Han Sans SC';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/noto-sans-sc-700.woff2') format('woff2')}
@font-face{font-family:'Sarasa Mono SC';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/sarasa-mono-sc-400.woff2') format('woff2')}
@font-face{font-family:'Sarasa Mono SC';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/sarasa-mono-sc-700.woff2') format('woff2')}

/* ---------- 1. 深色专用 Token(默认,与官网 v2 一致) ---------- */
:root{
  color-scheme:dark;
  --primary:#1B4FA1;
  --primary-hover:#2A66C4;
  --primary-active:#143D80;
  --primary-light:#8FB0E6;
  --primary-tint:#E8F0FB;
  --secondary-1:#0F766E;
  --secondary-2:#A16207;
  --success:#15803D;
  --warning:#C2410C;
  --error:#B3261E;
  --info:#0E6EBA;

  --bg-base:#0A0E1A;
  --bg-elev:#0F1626;
  --bg-elev-2:#141D31;
  --bg-inset:#0B1020;
  --border:rgba(143,176,230,.16);
  --border-strong:rgba(143,176,230,.38);

  --text-hi:#F2F6FF;
  --text:#C7D2E8;
  --text-mid:#8FB0E6;
  --text-low:#96A6C0;
  --text-faint:#6E7D96;

  --glow-primary:0 0 26px rgba(27,79,161,.5), 0 0 70px rgba(27,79,161,.22);
  --glow-soft:0 0 18px rgba(27,79,161,.30);
  --glow-cyan:0 0 26px rgba(14,110,186,.42);
  --shadow-card:0 14px 34px rgba(2,6,16,.5);

  --font-heading:'Inter','Source Han Sans SC','思源黑体','Noto Sans SC','PingFang SC','Microsoft YaHei',system-ui,sans-serif;
  --font-body:'Inter','Source Han Sans SC','思源黑体','Noto Sans SC','PingFang SC','Microsoft YaHei',system-ui,sans-serif;
  --font-mono:'Sarasa Mono SC','JetBrains Mono','SFMono-Regular','Menlo','Consolas',monospace;

  --fs-display:clamp(34px,5vw,52px);
  --fs-h1:clamp(28px,3.6vw,38px);
  --fs-h2:clamp(22px,2.4vw,28px);
  --fs-h3:19px;
  --fs-h4:15px;
  --fs-body:16px;
  --fs-caption:12px;

  --sp-xs:4px; --sp-sm:8px; --sp-md:16px; --sp-lg:24px; --sp-xl:32px; --sp-2xl:48px; --sp-3xl:64px;
  --r-sm:6px; --r-md:10px; --r-lg:14px; --r-full:9999px;
  --container-w:1180px;
  --header-h:72px;
}

/* ---------- 1b. 浅色(白天)Token 覆盖(与官网 v2 一致) ---------- */
[data-theme="light"]{
  color-scheme:light;
  --primary-light:#1B4FA1;
  --bg-base:#F4F8FF;
  --bg-elev:#FFFFFF;
  --bg-elev-2:#F3F8FF;
  --bg-inset:#E9EFFC;
  --border:rgba(27,79,161,.14);
  --border-strong:rgba(27,79,161,.30);
  --text-hi:#10203A;
  --text:#33415C;
  --text-mid:#1B4FA1;
  --text-low:#5B6B84;
  --text-faint:#6C7B93;
  --glow-primary:0 0 20px rgba(27,79,161,.25), 0 0 54px rgba(27,79,161,.10);
  --glow-soft:0 0 14px rgba(27,79,161,.16);
  --glow-cyan:0 0 18px rgba(14,110,186,.18);
  --shadow-card:0 14px 34px rgba(31,52,97,.13);
}
[data-theme="light"] ::selection{background:var(--primary);color:#fff}

/* ---------- 2. Reset / 基础 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg-base);
  color:var(--text);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
::selection{background:var(--primary-light);color:#0A0E1A}
a{color:var(--text-mid);text-decoration:none;transition:color .18s ease}
a:hover{color:var(--text-hi)}
img{max-width:100%;display:block}
svg{display:block}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{margin:0;color:var(--text-hi);font-family:var(--font-heading);line-height:1.25;letter-spacing:-.01em}
p{margin:0}
button{font-family:inherit}
:focus-visible{outline:2px solid var(--primary-light);outline-offset:2px;border-radius:4px}

::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg-base)}
::-webkit-scrollbar-thumb{background:#1C2A44;border-radius:99px;border:2px solid var(--bg-base)}
::-webkit-scrollbar-thumb:hover{background:#2A3D5E}
[data-theme="light"] ::-webkit-scrollbar-thumb{background:#C6D4EA;border:2px solid var(--bg-base)}

.container{max-width:var(--container-w);margin:0 auto;padding:0 24px}
.svg-defs{position:absolute;width:0;height:0;overflow:hidden}

/* ---------- 3. 页头 ---------- */
.brand-band{height:4px;
  background:linear-gradient(90deg,var(--primary),var(--primary-hover),var(--primary-light));
  box-shadow:0 1px 12px rgba(27,79,161,.55)}
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(10,14,26,.82);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
}
[data-theme="light"] .site-header{background:rgba(244,248,255,.85)}
.header-inner{display:flex;align-items:center;gap:20px;height:var(--header-h)}
.brand{display:flex;align-items:center;flex:none}
.brand-wordmark{height:40px;width:auto}
.brand-wordmark--light{display:none}
[data-theme="light"] .brand-wordmark--dark{display:none}
[data-theme="light"] .brand-wordmark--light{display:block}
.header-right{display:flex;align-items:center;gap:12px;margin-left:auto}

/* SSO 状态 pill(页头) */
.sso-pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:7px 14px;border-radius:var(--r-full);
  font-size:13px;font-weight:600;line-height:1.2;white-space:nowrap;
  border:1px solid var(--border);color:var(--text-low);background:var(--bg-inset);
}
.sso-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--text-faint);flex:none}
.sso-pill .user-mail{color:var(--text);font-weight:600;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sso-pill.is-checking .dot{background:var(--text-faint);animation:pulse 1.4s ease-in-out infinite}
.sso-pill.is-logged-in{color:var(--text);border-color:rgba(21,128,61,.45);background:rgba(21,128,61,.12)}
.sso-pill.is-logged-in .dot{background:var(--success);box-shadow:0 0 8px rgba(21,128,61,.8)}
.sso-pill.is-logged-out{color:var(--text);border-color:rgba(194,65,12,.45);background:rgba(194,65,12,.12)}
.sso-pill.is-logged-out .dot{background:var(--warning);box-shadow:0 0 8px rgba(194,65,12,.6)}
[data-theme="light"] .sso-pill.is-logged-in{background:rgba(21,128,61,.10)}
[data-theme="light"] .sso-pill.is-logged-out{background:rgba(194,65,12,.10)}

@keyframes pulse{0%,100%{opacity:.35}50%{opacity:1}}

/* 主题切换按钮 */
.icon-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:38px;min-width:38px;padding:8px;border-radius:var(--r-md);
  border:1px solid var(--border);background:var(--bg-inset);color:var(--text-mid);
  cursor:pointer;transition:color .18s ease,border-color .18s ease,background .18s ease;
}
.icon-btn:hover{color:var(--text-hi);border-color:var(--border-strong);background:var(--bg-elev-2)}
.icon-btn .icon{width:17px;height:17px}

/* 按钮 */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:9px 16px;border-radius:var(--r-md);
  font-family:var(--font-body);font-size:14px;font-weight:600;line-height:1.2;
  border:1px solid transparent;cursor:pointer;white-space:nowrap;
  transition:transform .18s ease,box-shadow .25s ease,background .25s ease,border-color .25s ease,color .18s ease;
}
.btn .icon{width:16px;height:16px}
.btn--primary{
  background:linear-gradient(135deg,var(--primary) 0%,var(--primary-hover) 100%);
  color:#fff;box-shadow:var(--glow-soft);
}
.btn--primary:hover{color:#fff;transform:translateY(-1px);box-shadow:var(--glow-primary);background:linear-gradient(135deg,#2059AE 0%,#3276D4 100%)}
.btn--ghost{color:var(--text-mid);background:transparent}
.btn--ghost:hover{color:var(--text-hi);background:rgba(143,176,230,.08)}
[data-theme="light"] .btn--ghost:hover{background:rgba(27,79,161,.06)}
.btn--outline{border-color:var(--primary-light);color:var(--primary-light);background:transparent}
.btn--outline:hover{color:var(--text-hi);border-color:var(--primary-light);background:rgba(143,176,230,.10);box-shadow:var(--glow-soft)}

/* 图标 */
.icon{width:20px;height:20px;flex:none}
.icon--sm{width:16px;height:16px}

/* 通用组件 */
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-mono);
  font-size:12px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  color:var(--text-mid);
}
.eyebrow::before{content:"";width:22px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--primary-light),rgba(143,176,230,.1));box-shadow:0 0 8px rgba(143,176,230,.5)}

/* ---------- 4. Hero ---------- */
.portal-hero{
  position:relative;overflow:hidden;isolation:isolate;
  padding:72px 0 40px;
  background:
    radial-gradient(60% 52% at 82% 0%, rgba(14,110,186,.28), transparent 66%),
    radial-gradient(52% 56% at 12% 0%, rgba(27,79,161,.32), transparent 62%),
    linear-gradient(180deg,#0B1120 0%,var(--bg-base) 100%);
}
[data-theme="light"] .portal-hero{
  background:
    radial-gradient(60% 52% at 82% 0%, rgba(14,110,186,.12), transparent 66%),
    radial-gradient(52% 56% at 12% 0%, rgba(27,79,161,.14), transparent 62%),
    linear-gradient(180deg,#EFF5FF 0%,var(--bg-base) 100%);
}
.portal-hero::before{
  content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;
  background-image:
    linear-gradient(rgba(143,176,230,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(143,176,230,.055) 1px,transparent 1px);
  background-size:54px 54px;
  -webkit-mask-image:radial-gradient(80% 80% at 50% 0%,#000 30%,transparent 100%);
  mask-image:radial-gradient(80% 80% at 50% 0%,#000 30%,transparent 100%);
}
.glow-orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.45;z-index:-1;pointer-events:none}
.glow-orb--blue{width:360px;height:360px;top:-120px;right:-60px;background:radial-gradient(circle,rgba(27,79,161,.5),transparent 70%)}
.glow-orb--cyan{width:280px;height:280px;bottom:-120px;left:30%;background:radial-gradient(circle,rgba(14,110,186,.34),transparent 70%)}

.hero-inner{max-width:760px}
.hero-inner .eyebrow{margin-bottom:20px}
.hero__title{font-size:var(--fs-display);font-weight:800;letter-spacing:-.02em;margin-bottom:14px}
.hero__title .text-grad{
  background:linear-gradient(120deg,var(--primary-light),#5FD4E8 70%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
[data-theme="light"] .hero__title .text-grad{background:linear-gradient(120deg,var(--primary),#0E6EBA 70%);-webkit-background-clip:text;background-clip:text}
.hero__sub{color:var(--text-low);font-size:17px;max-width:640px;margin-bottom:28px}

/* 状态横幅 */
.status-banner{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:16px 20px;border-radius:var(--r-lg);
  border:1px solid var(--border);background:var(--bg-elev);
  box-shadow:var(--shadow-card);
}
.status-banner .sb-icon{flex:none;display:flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:var(--r-md)}
.status-banner .sb-icon .icon{width:22px;height:22px}
.status-banner .sb-text{flex:1;min-width:220px}
.status-banner .sb-title{font-weight:600;color:var(--text-hi);font-size:15px}
.status-banner .sb-desc{color:var(--text-low);font-size:13.5px;margin-top:2px}
.status-banner .sb-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

.status-banner.is-ok{border-color:rgba(21,128,61,.40)}
.status-banner.is-ok .sb-icon{background:rgba(21,128,61,.14);color:var(--success)}
.status-banner.is-ok .sb-icon .icon{color:var(--success)}
[data-theme="light"] .status-banner.is-ok .sb-icon{background:rgba(21,128,61,.12)}
.status-banner.is-warn{border-color:rgba(194,65,12,.42)}
.status-banner.is-warn .sb-icon{background:rgba(194,65,12,.14)}
.status-banner.is-warn .sb-icon .icon{color:var(--warning)}
[data-theme="light"] .status-banner.is-warn .sb-icon{background:rgba(194,65,12,.10)}
.status-banner.is-checking{border-color:var(--border)}
.status-banner.is-checking .sb-icon{background:rgba(143,176,230,.10)}
.status-banner.is-checking .sb-icon .icon{color:var(--text-mid)}

/* ---------- 5. 系统卡片 ---------- */
.section{padding:40px 0}
.section-title{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-bottom:22px;
}
.section-title h2{font-size:var(--fs-h2);font-weight:700}
.section-title .hint{color:var(--text-faint);font-size:13px}

.grid{display:grid;gap:20px}
.grid--cards{grid-template-columns:repeat(3,1fr)}

.sys-card{
  position:relative;display:flex;flex-direction:column;gap:14px;
  padding:24px;border-radius:var(--r-lg);
  background:var(--bg-elev);border:1px solid var(--border);
  transition:transform .22s ease,border-color .25s ease,box-shadow .3s ease,background .25s ease;
  min-height:170px;
}
.sys-card:hover{transform:translateY(-5px);border-color:var(--border-strong);box-shadow:var(--shadow-card),var(--glow-soft);background:var(--bg-elev-2)}
.sys-card.is-external:hover{cursor:pointer}
.sys-card__head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sys-card__ico{display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:var(--r-md);flex:none;
  background:linear-gradient(135deg,rgba(27,79,161,.28),rgba(27,79,161,.08));
  border:1px solid var(--border);color:var(--primary-light);box-shadow:var(--glow-soft)}
.sys-card__ico .icon{width:24px;height:24px}
[data-theme="light"] .sys-card__ico{background:linear-gradient(135deg,rgba(27,79,161,.14),rgba(27,79,161,.04));color:var(--primary)}
.sys-card__body{flex:1}
.sys-card__name{font-size:18px;font-weight:700;color:var(--text-hi);letter-spacing:-.01em}
.sys-card__sub{font-family:var(--font-mono);font-size:11.5px;color:var(--text-mid);letter-spacing:.08em;margin-top:2px;text-transform:uppercase}
.sys-card__desc{color:var(--text-low);font-size:13.5px;line-height:1.6;margin-top:10px}
.sys-card__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto}
.sys-card__link{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--primary-light)}
.sys-card__link .icon{width:14px;height:14px;transition:transform .2s ease}
.sys-card:hover .sys-card__link .icon{transform:translateX(3px)}
[data-theme="light"] .sys-card__link{color:var(--primary)}

/* Chip */
.chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:3px 10px;border-radius:var(--r-full);
  font-size:11.5px;font-weight:600;line-height:1.5;letter-spacing:.02em;
  border:1px solid var(--border);color:var(--text-mid);background:rgba(143,176,230,.08);
  white-space:nowrap;
}
.chip--success{color:#fff;background:var(--success);border-color:transparent}
.chip--warning{color:#fff;background:var(--warning);border-color:transparent}
.chip--info{color:#fff;background:var(--info);border-color:transparent}
.chip--teal{color:#5EEAD4;background:rgba(15,118,110,.20);border-color:rgba(94,234,212,.30)}
.chip--muted{color:var(--text-mid);background:rgba(143,176,230,.07);border-color:var(--border)}

/* ---------- 6. 账号与常用入口 ---------- */
.util-grid{display:grid;gap:14px;grid-template-columns:repeat(4,1fr)}
.util-link{
  display:flex;align-items:center;gap:12px;
  padding:16px 18px;border-radius:var(--r-md);
  background:var(--bg-elev);border:1px solid var(--border);
  transition:transform .2s ease,border-color .22s ease,box-shadow .25s ease,background .22s ease;
}
.util-link:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--glow-soft);background:var(--bg-elev-2)}
.util-link .icon{width:20px;height:20px;color:var(--primary-light);flex:none}
[data-theme="light"] .util-link .icon{color:var(--primary)}
.util-link__name{font-size:14px;font-weight:600;color:var(--text-hi)}
.util-link__hint{font-size:12px;color:var(--text-faint);margin-top:1px}

/* ---------- 7. 页脚 ---------- */
.site-footer{border-top:1px solid var(--border);background:var(--bg-inset);padding:40px 0 28px;margin-top:24px}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.footer-brand{display:flex;align-items:center;gap:14px}
.footer-brand img{height:28px;width:auto}
.footer-brand .brand-logo--light{display:none}
[data-theme="light"] .footer-brand .brand-logo--dark{display:none}
[data-theme="light"] .footer-brand .brand-logo--light{display:block}
.footer-meta{color:var(--text-faint);font-size:12.5px;display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.footer-meta a{color:var(--text-faint)}
.footer-meta a:hover{color:var(--text-mid)}
.footer-meta .sep{opacity:.4}

/* ---------- 8. 响应式 ---------- */
@media (max-width:1024px){
  .grid--cards{grid-template-columns:repeat(2,1fr)}
  .util-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .header-inner{gap:10px}
  .brand-wordmark{height:30px}
  .sso-pill .user-mail{max-width:120px}
  .sso-pill{padding:6px 10px;font-size:12px}
  .btn--sm{padding:8px 12px;font-size:13px}
  .portal-hero{padding:52px 0 28px}
  .hero__sub{font-size:15.5px}
  .grid--cards{grid-template-columns:1fr}
  .util-grid{grid-template-columns:1fr 1fr}
  .section{padding:28px 0}
}
@media (max-width:420px){
  .util-grid{grid-template-columns:1fr}
  .footer-meta{gap:10px;flex-direction:column;align-items:flex-start}
}

/* ---------- 9. 动效偏好 ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
