/* 颜色与尺寸取自 ai.paratera.com 计算样式 */
:root{
  --brand:#004ea2;          /* rgb(0,78,162) */
  --brand-hover:#00448f;
  --brand-soft:#eff3fb;     /* 侧边栏选中底色 rgb(239,243,251) */
  --bg:#fafafa;             /* body 背景 rgb(250,250,250) */
  --card:#ffffff;
  --fg:#333333;             /* 正文 rgb(51,51,51) */
  --muted:#8c8c8c;
  --line:#d9d9d9;
  --th:#fafafa;
  --ok:#00b42a;
  --err:#f53f3f;
  --warn:#faad14;           /* 提示图标 rgb(250,173,20) */
  --run:#165dff;
  --notice:#faad14;
  --radius:4px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --brand:#3d8bff; --brand-hover:#5a9bff; --brand-soft:#1b2a40;
    --bg:#141519; --card:#1d1e23; --fg:#e5e6eb; --muted:#8a8f99; --line:#2e3036; --th:#24252b;
  }
}
:root[data-theme="dark"]{
  --brand:#3d8bff; --brand-hover:#5a9bff; --brand-soft:#1b2a40;
  --bg:#141519; --card:#1d1e23; --fg:#e5e6eb; --muted:#8a8f99; --line:#2e3036; --th:#24252b;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.5 "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","微软雅黑",Arial,sans-serif}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--brand);text-decoration:none;cursor:pointer}

/* 顶部导航 */
/* 顶栏与页面标题固定，滚动时不随页面上移 */
.top{height:60px;background:var(--brand);color:#fff;display:flex;align-items:center;padding:0 8px;gap:0;position:sticky;top:0;z-index:100}
.top .brand{font-size:18px;font-weight:500;margin-right:20px;white-space:nowrap;padding-left:10px}
.top .nav{display:flex;height:60px}
.top .nav a{color:rgba(255,255,255,.65);display:flex;align-items:center;padding:0 16px;height:60px;position:relative;font-size:14px}
.top .nav a.on{color:#fff}
.top .nav a.on:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:#b3cae3}
.top .right{margin-left:auto;display:flex;gap:24px;align-items:center;color:#fff}
.top .right .user{background:#7ccf6b;width:26px;height:26px;border-radius:50%;display:inline-block}

/* 布局 */
.shell{display:flex;min-height:calc(100vh - 60px)}
/* 侧边栏固定在顶栏下方，长页面滚动时保持可见 */
.side{width:218px;background:var(--card);padding:20px 0;flex:none;position:sticky;top:60px;align-self:flex-start;height:calc(100vh - 60px);overflow-y:auto}
.side .item{display:flex;align-items:center;gap:6px;height:40px;padding:0 0 0 24px;margin:0;border-radius:6px;cursor:pointer;color:var(--fg);font-size:14px}
.side .item.sub{padding-left:48px}
.side .item.on{background:var(--brand-soft);color:var(--brand);font-weight:400}
.side .item .ic{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.side .item .ic svg{display:block;width:18px;height:18px}
.main{flex:1;padding:0;min-width:0}
.card{background:var(--card);border-radius:4px;margin:16px;padding:16px;min-height:calc(100vh - 60px - 32px)}

/* 页签 + 提示 */
/* padding-top + 负 margin 用来盖住吸顶时上方露出的内容 */
.hdr{display:flex;align-items:flex-start;gap:24px;border-bottom:1px solid var(--line);padding-bottom:0;margin-bottom:20px;flex-wrap:nowrap;position:sticky;top:60px;z-index:30;background:var(--card);padding-top:16px;margin-top:-16px}
.hdr .tab{font-size:15px;color:var(--fg);padding:0 0 12px;cursor:pointer;position:relative}
.hdr .tab.on{font-weight:600}
.hdr .tab.on:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--fg)}
.hdr .notice{margin-left:auto;color:var(--notice);font-size:14px;padding-bottom:12px;flex:1;min-width:0;max-width:864px;display:flex;gap:8px;align-items:flex-start;line-height:1.4}
.hdr .notice i{display:none}
.hdr .notice svg{flex:none;margin-top:3px}
.hdr .title{position:relative;display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;padding:0 0 12px;white-space:nowrap}
.hdr .title:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--fg)}
.hdr .title a{color:var(--fg);font-weight:400;margin-right:4px}
.hdr .title svg{width:18px;height:18px}

.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.btn{height:32px;padding:0 15px;border-radius:6px;border:1px solid var(--line);background:var(--card);cursor:pointer;white-space:nowrap;font-size:14px}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.primary:hover{background:var(--brand-hover)}
.btn.ghost{border-color:transparent;color:var(--brand);padding:0 4px}
.btn.danger{color:var(--err)}
.btn.sm{height:26px;padding:0 10px;font-size:12px}
.btn:disabled{opacity:.4;cursor:not-allowed}
/* 筛选框与原站一致：左下拉 + 输入 + 右搜索图标；刷新为独立图标按钮 */
.filter{display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;height:32px;width:498px;flex:none;background:var(--card)}
.f-sel{position:relative;display:flex;align-items:center;height:100%;border-right:1px solid var(--line);flex:none;min-width:105px}
.f-sel select{border:none;height:100%;padding:0 30px 0 12px;background:transparent;outline:none;appearance:none;-webkit-appearance:none;color:var(--fg);font-size:14px}
.f-sel .chev{position:absolute;right:10px;display:flex;pointer-events:none;color:var(--muted)}
.f-sel .chev svg{width:12px;height:12px}
.filter input{border:none;flex:1;height:100%;padding:0 8px 0 12px;background:transparent;outline:none;min-width:0;font-size:14px}
.f-search{display:flex;align-items:center;padding-right:10px;color:var(--muted);flex:none}
.ico-btn{width:46px;height:32px;border:1px solid var(--line);border-radius:6px;background:var(--card);cursor:pointer;color:var(--fg);display:inline-flex;align-items:center;justify-content:center}
.ico-btn:hover{color:var(--brand);border-color:var(--brand)}

table{width:100%;border-collapse:collapse}
th,td{padding:12px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}
th{background:var(--th);color:var(--muted);font-weight:500;font-size:13px}
.name a{font-weight:500}
.name small{display:block;color:var(--muted);font-size:12px}
.tag{display:inline-block;padding:0 8px;border-radius:10px;font-size:12px;border:1px solid currentColor;line-height:18px}
.s-queue{color:var(--muted)}.s-start{color:var(--warn)}.s-run{color:var(--run)}.s-ok{color:var(--ok)}.s-fail{color:var(--err)}.s-stop{color:var(--muted)}
/* 空状态：与原站 antd Empty 一致，margin-top 20vh、插画 184×152 */
.empty{margin-top:20vh;text-align:center;color:var(--fg);font-size:14px}
.empty svg{display:block;margin:0 auto 8px}
.pager{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:12px 0;color:var(--muted)}

/* 表单 */
.frm{display:grid;grid-template-columns:110px 1fr;gap:18px 16px;align-items:start;max-width:980px}
.frm > label{padding-top:6px;color:var(--fg)}
.frm > label.req:before{content:"* ";color:var(--err)}
.frm > .hint{grid-column:2;color:var(--muted);font-size:12px;margin-top:-10px}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{height:32px;padding:0 14px;border:1px solid var(--line);border-radius:var(--radius);display:inline-flex;align-items:center;cursor:pointer;background:var(--card);white-space:nowrap}
.chip.on{border-color:var(--brand);color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.chip.off{opacity:.45;cursor:not-allowed}
.chip .b{margin-left:6px;font-size:11px;color:var(--warn)}
.fld{height:32px;border:1px solid var(--line);border-radius:var(--radius);padding:0 10px;background:var(--card);outline:none;width:100%;max-width:360px}
textarea.fld{height:auto;padding:8px 10px;font-family:ui-monospace,Menlo,monospace}
.grid-res{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;max-width:820px}
.grid-res th{font-size:12px}
.grid-res tr.sel td{background:var(--brand-soft)}
.grid-res tr.dis td{color:var(--muted);opacity:.5}
.grid-res td{white-space:normal;font-size:13px}
/* 参考价格：现价橙色加粗，原价划线，与原站一致 */
.p-now{display:block;color:#ff7200;font-weight:700}
.p-old{display:block;text-decoration:line-through}
.th-info{display:inline-flex;vertical-align:-2px;margin-left:4px;color:var(--muted)}
.th-info svg{width:14px;height:14px}
.grid-empty{padding:40px 0;text-align:center;color:var(--muted)}
/* 数据存储：挂载点可自定义 */
.mount-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.mount-label{width:112px;color:var(--fg);flex:none}
/* 容错：开关一行，最大重启次数单列一行，关闭时整行置灰 */
.ft-item{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}
.ft-item:first-child{margin-top:0}
.ft-item.is-off{opacity:.5}
.ft-label{color:var(--fg)}
.ft-unit{color:var(--muted)}
.ft-hint{color:var(--muted);font-size:12px}
.radio{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--brand);display:inline-block;vertical-align:middle;position:relative}
.radio.on:after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--brand)}
.radio.off{border-color:var(--line)}
.infobox{border:1px solid #9cc7f5;background:#f1f8ff;border-radius:var(--radius);padding:12px 16px;line-height:2;max-width:820px}
.infobox b{color:var(--brand);font-weight:500}
.sw{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.sw i{width:36px;height:20px;border-radius:10px;background:#c9cdd4;position:relative;display:inline-block}
.sw i:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.2s}
.sw.on i{background:var(--brand)}
.sw.on i:after{left:18px}
.foot{position:sticky;bottom:0;background:var(--card);border-top:1px solid var(--line);margin:24px -16px -16px;padding:14px 16px;display:flex;justify-content:flex-end;align-items:center;gap:16px}
.price{color:var(--muted)}
.price b{color:var(--err);font-size:22px;font-weight:600}

/* 详情 */
.kv{display:grid;grid-template-columns:140px 1fr;gap:10px 16px;max-width:900px}
.kv div:nth-child(odd){color:var(--muted)}
.log{background:#0b0c0e;color:#d0d4db;font:12px/1.6 ui-monospace,Menlo,monospace;padding:12px;border-radius:var(--radius);height:300px;overflow:auto;white-space:pre-wrap}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#1d2129;color:#fff;padding:8px 16px;border-radius:var(--radius);display:none;z-index:9}
.top .nav a svg{margin-right:6px}
.top .right .who{display:flex;align-items:center;gap:8px}
.top .avatar{width:22px;height:22px;border-radius:50%;background:#7ccf6b;display:inline-flex;align-items:center;justify-content:center}
.empty svg{display:block;margin:0 auto 16px}
.ck{display:inline-flex;align-items:center;gap:6px}
.card-opt{display:inline-flex;flex-direction:column;padding:10px 24px;border:1px solid var(--brand);border-radius:var(--radius);color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);background:var(--card)}
.card-opt small{color:var(--muted);font-size:12px}
.float{position:fixed;right:24px;bottom:24px;display:flex;flex-direction:column;gap:14px;z-index:5}
.float span{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;line-height:1.2;text-align:center;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.bill-list{display:flex;gap:8px;flex-wrap:wrap}
.bill-card{width:240px;height:70px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;padding:0 12px}
.bill-card b{font-size:16px;font-weight:500;color:var(--fg)}
.bill-card small{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.4}
.bill-card.on{border:1.5px solid var(--brand)}
.bill-card.on b{color:var(--brand);font-weight:600}
.bill-card.off{opacity:.45;cursor:not-allowed}
.tag.bill{border-style:solid}
.icards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:760px){.icards{grid-template-columns:minmax(0,1fr)}}
.icard{border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;background:var(--card);position:relative}
.ic-top{display:flex;justify-content:space-between;align-items:center}
.ic-name{display:flex;align-items:center;gap:8px}
.ic-name b{font-size:16px;font-weight:600}
.ic-edit{border:none;background:none;color:var(--muted);cursor:pointer}
.ic-status{font-size:13px}
.ic-status:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:var(--muted)}
.dot-run:before{background:var(--run)}
.dot-ok:before{background:var(--ok)}
.dot-fail:before{background:var(--err)}
.dot-start:before{background:var(--warn)}
.ic-meta{color:var(--muted);font-size:13px;margin-top:6px}
.ic-res{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
.ic-res-t{font-weight:600;margin-bottom:8px}
.ic-res-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;font-size:13px;color:var(--fg)}
.ic-foot{display:flex;gap:8px;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);position:relative}
.ic-more{margin-left:auto;cursor:pointer;padding:0 8px;color:var(--muted);font-size:18px;line-height:1}
.ic-menu{display:none;position:absolute;right:0;top:44px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 8px rgba(0,0,0,.12);z-index:4;min-width:140px}
.ic-menu.open{display:block}
.ic-menu button{display:block;width:100%;text-align:center;padding:8px 12px;border:none;background:none;cursor:pointer;color:var(--fg)}
.ic-menu button:hover{background:var(--th)}
.ic-menu button.danger{color:var(--err)}
.ic-menu button:disabled{opacity:.4;cursor:not-allowed}
.b-pay{color:var(--brand)}.b-year{color:#722ed1}.b-pre{color:var(--warn)}
.name span{display:block;font-weight:500}
.note{display:block;color:var(--muted);font-size:12px;white-space:normal;max-width:220px}
@media (max-width:900px){.side{display:none}.hdr .notice{margin-left:0}.filter{min-width:0}.frm{grid-template-columns:1fr}.frm > .hint{grid-column:1}}
