@charset "utf-8";
/* ==== 蜂鸟 UI 复刻 · 设计令牌与基础层 (flit2-theme.css) ==== */
@font-face{font-family:"IBM Plex Sans";src:url("./fonts/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("./fonts/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("./fonts/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("./fonts/ibm-plex-sans-latin-700-normal-Bxkt5Cjx.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("./fonts/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("./fonts/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

:root{
  --wash:#e8eef8; --paper:#ffffff; --ink:#0c1222; --mute:#5c6778; --line:#dde4f0;
  --signal:#2155ff; --signal-ink:#ffffff; --signal-wash:#edf1ff;
  --hero:#152047; --live:#0b8f63; --live-wash:#e8f7f1; --warn:#b86b00; --danger:#c43c46;
  --radius:.625rem;

  --font-sans:"IBM Plex Sans", ui-sans-serif, system-ui, "Segoe UI", "Microsoft YaHei", sans-serif;
  --font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --default-font-family:var(--font-sans);

  --background:#e8eef8; --foreground:#0c1222;
  --card:#ffffff; --card-foreground:#0c1222;
  --popover:#ffffff; --popover-foreground:#0c1222;
  --primary:#2155ff; --primary-foreground:#ffffff;
  --secondary:#eef2f9; --secondary-foreground:#152047;
  --muted:#eff3fa; --muted-foreground:#5c6778;
  --accent:#2155ff; --accent-foreground:#ffffff;
  --destructive:#c43c46;
  --border:#dde4f0; --input:#dde4f0; --ring:#2155ff;
  --chart-1:#2155ff; --chart-2:#b86b00; --chart-3:#0b8f63; --chart-4:#7c5cff; --chart-5:#0f9bb0;
  --sidebar:#ffffff; --sidebar-foreground:#0c1222; --sidebar-primary:#2155ff;
  --sidebar-primary-foreground:#ffffff; --sidebar-accent:#edf1ff; --sidebar-accent-foreground:#152047;
  --sidebar-border:#dde4f0; --sidebar-ring:#2155ff;

  --color-background:#e8eef8; --color-foreground:#0c1222;
  --color-primary:#2155ff; --color-border:#dde4f0;
  --flit2-shell-radius:18px; --flit2-inset:12px;
}
.dark{
  --background:#0b1220; --foreground:#e6ecf8; --card:#111a2b; --card-foreground:#e6ecf8;
  --popover:#111a2b; --popover-foreground:#e6ecf8; --primary:#4d7dff; --primary-foreground:#fff;
  --secondary:#16213a; --secondary-foreground:#e6ecf8; --muted:#16213a; --muted-foreground:#93a0b4;
  --border:#22304d; --input:#22304d; --ring:#4d7dff; --sidebar:#111a2b; --sidebar-border:#22304d;
}

html,body{height:100%}
html{ -webkit-text-size-adjust:100%; }
body{
  font-family:var(--font-sans)!important;
  color:var(--ink);
  background-color:var(--wash)!important;
  background-image:
    radial-gradient(1100px 560px at 8% -12%, #ffffff 0%, rgba(255,255,255,0) 58%),
    radial-gradient(900px 520px at 92% 108%, #f2f6ff 0%, rgba(242,246,255,0) 62%),
    linear-gradient(to right, rgba(21,32,71,.055) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(21,32,71,.055) 1px, transparent 1px)!important;
  background-size:auto,auto,24px 24px,24px 24px!important;
  background-attachment:fixed!important;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  letter-spacing:.005em;
}
body,button,input,select,textarea{font-family:var(--font-sans)!important}
code,pre,kbd,samp,.font-mono,[class*="tabular"]{font-family:var(--font-mono)!important}
.font-sans{font-family:var(--font-sans)!important}

/* ---------- 整体外壳：白色大圆角卡片浮在淡蓝网格上 ---------- */
#root{position:relative;z-index:1}
#root::before{
  content:"";position:fixed;inset:var(--flit2-inset);z-index:-1;
  background:var(--paper);
  border:1px solid rgba(221,228,240,.95);
  border-radius:var(--flit2-shell-radius);
  box-shadow:0 30px 70px -34px rgba(12,18,34,.28), 0 2px 6px rgba(12,18,34,.04);
  pointer-events:none;
}
[data-slot="sidebar-wrapper"]{
  background:transparent!important;
  height:100svh;min-height:100svh;
  overflow:hidden;
  padding:var(--flit2-inset);
  z-index:1;
}
main{
  position:relative;z-index:1;
  background:transparent!important;
  height:calc(100svh - var(--flit2-inset)*2)!important;
  min-height:0;
  overflow:hidden;
  border-radius:0 var(--flit2-shell-radius) var(--flit2-shell-radius) 0;
}

/* ---------- 侧栏（floating 白色面板，无外框，右侧分隔线） ---------- */
[data-slot="sidebar-container"]{
  top:var(--flit2-inset)!important;
  left:var(--flit2-inset)!important;
  height:calc(100svh - var(--flit2-inset)*2)!important;
  padding:0!important;
}
[data-slot="sidebar-inner"]{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  border-right:1px solid var(--line)!important;
}
[data-slot="sidebar-header"]{padding:0!important;flex:0 0 auto}

/* 品牌头 */
[data-slot="sidebar-header"]>ul{padding:0!important;margin:0!important;gap:0!important}
[data-slot="sidebar-header"] [data-slot="sidebar-menu-button"]{
  position:relative;
  height:68px!important;width:auto!important;min-width:220px;
  padding:0 18px!important;
  display:flex!important;align-items:center!important;justify-content:flex-start!important;
  gap:10px!important;
  border:0!important;background:transparent!important;box-shadow:none!important;
  white-space:nowrap;
  color:var(--ink)!important;
}
[data-slot="sidebar-header"] [data-slot="sidebar-menu-button"] img{
  width:30px!important;height:30px!important;border-radius:0!important;
  
}
[data-slot="sidebar-header"] [data-slot="sidebar-menu-button"] span{
  font-family:var(--font-sans)!important;
  font-size:17px!important;font-weight:600!important;letter-spacing:.02em;
  background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;
  -webkit-text-fill-color:var(--ink)!important;color:var(--ink)!important;
  text-shadow:none!important;white-space:nowrap;
}
[data-slot="sidebar-header"] [data-slot="sidebar-menu-button"]::after{
  content:"ULTRA";
  margin-left:2px;
  font-family:var(--font-mono)!important;font-size:9px;font-weight:600;letter-spacing:.11em;
  color:var(--signal);background:#e9efff;padding:2px 6px 2px 7px;border-radius:5px;line-height:1.45;box-shadow:none;
}
/* 品牌区底部与顶栏连成一条线 */
[data-slot="sidebar-header"]{border-bottom:1px solid var(--line);height:68px;position:relative;z-index:6;background:var(--paper)}

/* 侧栏滚动区 */
[data-slot="sidebar-content"]{padding:10px 0 14px!important;gap:0!important;scrollbar-width:thin}
[data-slot="sidebar-group"]{padding:0 10px 2px!important}
[data-slot="sidebar-group-content"]>div{
  font-size:9px!important;font-weight:600!important;letter-spacing:.16em;
  color:#93a0b4!important;text-transform:uppercase;
  padding:12px 4px 6px!important;margin:0!important;
  display:flex;align-items:center;gap:6px;
}
[data-slot="sidebar-group-content"]>div::after{content:"";flex:1;height:1px;background:var(--line)}
[data-slot="sidebar-group"]>[data-slot="sidebar-group-content"]>ul{padding:0!important;gap:2px!important}

/* 通用菜单项（含二级菜单按钮） */
[data-slot="sidebar-menu-button"]{
  height:34px;
  border-radius:10px!important;
  border:1px solid transparent!important;
  background:transparent!important;
  color:#3c4a60!important;
  font-size:13.5px!important;font-weight:500;
  padding:0 10px!important;
  transition:background .16s ease,color .16s ease,border-color .16s ease;
}
[data-slot="sidebar-menu-button"]:hover{background:var(--signal-wash)!important;color:var(--hero)!important}
[data-slot="sidebar-menu-button"][data-active="true"]{
  background:var(--signal)!important;
  color:#fff!important;
  border-color:var(--signal)!important;
  box-shadow:0 8px 18px -10px rgba(33,85,255,.9);
}
[data-slot="sidebar-menu-button"][data-active="true"] svg{color:#fff!important}
[data-slot="sidebar-menu-button"] svg{width:17px!important;height:17px!important;stroke-width:1.9}

/* ---------- 顶栏 ---------- */
main>header{
  height:68px!important;
  min-height:68px;
  padding:0 20px!important;
  border-bottom:1px solid var(--line);
  background:var(--paper);
  gap:10px!important;
}
main>header [data-slot="breadcrumb-list"]{font-size:13px!important;color:var(--mute)!important}
main>header [data-slot="breadcrumb-page"]{color:var(--ink)!important;font-weight:600!important;font-size:14px!important}
main>header [data-slot="separator-root"]{background:var(--line)!important;margin-right:12px!important;height:18px!important}
main>header input{
  height:30px;border-radius:8px!important;background:var(--paper)!important;
  border:1px solid var(--line)!important;font-size:12.5px!important;
}
main>header input:focus{border-color:var(--signal)!important;box-shadow:0 0 0 3px rgba(33,85,255,.12)!important}
main>header button.rounded-md,main>header button[class*="rounded-md"]{
  height:30px;border-radius:8px!important;border-color:var(--line)!important;background:var(--paper)!important;
  font-size:12.5px!important;color:var(--hero)!important;
}

/* ---------- 滚动条 ---------- */
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#d4ddec;border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:#b9c6da}

/* ==================================================================
   组件层：卡片 / 按钮 / 输入 / 表格 / 弹窗 / 徽标
   ================================================================== */
.card,.rounded-xl.border{--tw-shadow:0 0 0 0 transparent}
[data-slot="card"],.bg-card.border,.rounded-xl.border.border-border{
  border-color:var(--line)!important;
  border-radius:14px!important;
  box-shadow:0 1px 2px rgba(12,18,34,.04);
}

/* 左侧 4px 彩条卡片（蜂鸟设备卡同款） */
.border-l-4{border-left-width:4px!important;border-radius:6px 14px 14px 6px!important}

/* 主内容区留白与节奏 */
main>.flex-1,main>div.flex-1{padding-left:20px!important;padding-right:20px!important}
main .container,main .mx-auto{max-width:1600px}

h1,h2,h3,h4{letter-spacing:-.01em;color:var(--ink)}
h1{font-weight:700!important}

/* 统计数字：等宽+紧凑 */
.tabular-nums,[class*="tabular"]{font-variant-numeric:tabular-nums}

/* ---------- 按钮 ---------- */
button{transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}
button[class~="bg-primary"],a[class~="bg-primary"]{
  background-color:var(--signal)!important;color:var(--signal-ink)!important;
  border-radius:9px!important;
  box-shadow:0 8px 18px -12px rgba(33,85,255,.95);
}
button[class~="bg-primary"]:hover{background-color:#1b48e0!important}
button[class~="bg-destructive"],button[class~="bg-red-500"],button[class~="bg-red-600"]{
  border-radius:9px!important;
}
.btn{border-radius:9px}
button[class~="rounded-md"]{border-radius:8px}
button[class~="rounded-lg"]{border-radius:9px}
button[class*="border"]:not([class*="border-l-4"]):not([data-slot="sidebar-menu-button"]){
  border-color:var(--line);
}
button:hover{box-shadow:0 2px 8px -6px rgba(12,18,34,.35)}

/* 主色小胶囊 */
.badge,[data-slot="badge"]{border-radius:999px!important;font-weight:600;letter-spacing:.01em}

/* ---------- 表单 ---------- */
input:not([type="checkbox"]):not([type="radio"]),select,textarea{
  border-radius:9px!important;
  border-color:var(--line)!important;
  background-color:var(--paper);
  font-size:13px;
  transition:border-color .15s ease,box-shadow .15s ease;
}
input:not([type="checkbox"]):not([type="radio"]):focus,select:focus,textarea:focus{
  border-color:var(--signal)!important;
  box-shadow:0 0 0 3px rgba(33,85,255,.12)!important;
  outline:none!important;
}
[data-slot="select-trigger"],button[role="combobox"]{border-radius:9px!important;border-color:var(--line)!important;background:var(--paper)!important}
label{color:var(--mute)}
[data-slot="switch"]{--tw-shadow:none}
[data-slot="switch"][data-state="checked"]{background-color:var(--signal)!important}
[data-slot="checkbox"][data-state="checked"]{background-color:var(--signal)!important;border-color:var(--signal)!important}

/* ---------- 表格 ---------- */
table{font-size:13px;border-collapse:separate;border-spacing:0}
thead th{
  background:#f7f9fd!important;color:var(--mute)!important;
  font-weight:600!important;font-size:11.5px!important;letter-spacing:.06em;text-transform:uppercase;
  border-bottom:1px solid var(--line)!important;
  padding-top:11px!important;padding-bottom:11px!important;
  position:sticky;top:0;z-index:2;
}
tbody tr{border-bottom:1px solid #eef2f9!important}
tbody tr:hover{background:#f8faff!important}
td{border-bottom:1px solid #eef2f9!important}
tbody tr:last-child td{border-bottom:0!important}

/* ---------- 弹窗 / 抽屉 ---------- */
[data-slot="dialog-content"],[role="dialog"]>div,.fixed.z-50[class*="rounded"]{
  border-radius:16px!important;
  border:1px solid var(--line)!important;
  box-shadow:0 40px 90px -40px rgba(12,18,34,.45)!important;
}
[data-slot="dialog-overlay"]{background:rgba(12,18,34,.42)!important;backdrop-filter:blur(2px)}
[data-slot="dialog-title"]{font-size:16px!important;font-weight:700!important;color:var(--ink)!important}
[data-slot="dropdown-menu-content"],[data-slot="select-content"],[data-slot="popover-content"]{
  border-radius:12px!important;border:1px solid var(--line)!important;
  box-shadow:0 24px 50px -30px rgba(12,18,34,.45)!important;padding:6px!important;
}
[data-slot="dropdown-menu-item"],[data-slot="select-item"]{border-radius:8px!important;font-size:13px!important}
[data-slot="dropdown-menu-item"]:hover,[data-slot="select-item"]:focus{background:var(--signal-wash)!important;color:var(--hero)!important}
[data-slot="tabs-trigger"]{border-radius:8px!important}
[data-slot="tabs-trigger"][data-state="active"]{background:var(--paper)!important;color:var(--hero)!important;box-shadow:0 1px 3px rgba(12,18,34,.1)!important}
[data-slot="tabs-list"]{background:#eef2f9!important;border-radius:10px!important;padding:3px!important}

/* ---------- 提示 / 徽标颜色对齐蜂鸟语义色 ---------- */
.text-green-600,.text-emerald-600,.text-green-500{color:var(--live)!important}
.text-red-500,.text-red-600,.text-rose-500,.text-rose-600{color:var(--danger)!important}
.text-amber-500,.text-orange-500{color:var(--warn)!important}
.bg-green-50,.bg-emerald-50{background-color:var(--live-wash)!important}
.bg-blue-50,.bg-indigo-50{background-color:var(--signal-wash)!important}

/* 进度条/分隔线 */
hr{border-color:var(--line)!important}
.bg-border{background-color:var(--line)!important}


