/* ============================================================
   城西支局智慧工作台 - 样式表 (从 index.html 提取合并)
   ============================================================ */

/* ============================================================
   城西支局智慧工作台 v2 —— 科技感精修版
   设计依据：impeccable 设计法 + ui-design-brain 组件规范 + 蓝绿科技大屏配色 + ease-out-expo 动效
   ============================================================ */
:root{
  /* 深空带色调基色（非纯黑，bleed 品牌蓝） */
  --bg0:#060912; --bg1:#0A1226; --bg2:#0C1830;
  --surface:rgba(14,21,42,.60);
  --surface-solid:#101A35;
  --line:rgba(80,140,255,.14);
  --line-strong:rgba(94,190,255,.30);
  /* 品牌：电信蓝 + 电光青 + 紫罗兰（大屏科技配色，蓝绿为基调） */
  --accent:#2E9BFF; --accent2:#22D3F5; --accent3:#7C6BFF;
  --cyan:#27D6F2; --blue:#2E8DFF; --indigo:#5B6CF0; --violet:#8B7CF6;
  --text:#EAF3FF; --text2:#9DB1D8; --text3:#5E7095;
  --ok:#35E0B0; --warn:#F6BC3F; --bad:#FF6E80; --info:#54A9FF;
  --radius:20px;
  --ease:cubic-bezier(.16,1,.3,1);   /* ease-out-expo */
  --ring:rgba(120,180,255,.14);
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;}
body{
  font-family:'PingFang SC','Microsoft YaHei','Segoe UI',system-ui,sans-serif;
  color:var(--text);font-size:14px;overflow-x:hidden;background:var(--bg0);
}
body::before{ /* 极光背景（带色调，非纯黑） */
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(920px 720px at 82% -8%, rgba(46,141,255,.40), transparent 60%),
    radial-gradient(760px 640px at -6% 110%, rgba(39,214,242,.24), transparent 58%),
    radial-gradient(700px 560px at 108% 72%, rgba(124,107,255,.26), transparent 62%),
    linear-gradient(160deg, var(--bg1), var(--bg0) 58%, var(--bg2));
  background-attachment:fixed;
}
body::after{ /* 科技网格 */
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    linear-gradient(rgba(94,190,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(94,190,255,.05) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse at center,#000 18%,transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse at center,#000 18%,transparent 80%);
}
.particles{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;}
.particles i{position:absolute;display:block;border-radius:50%;
  background:radial-gradient(circle,rgba(39,214,242,.9),transparent 70%);animation:float linear infinite;opacity:0;}
/* 极光漂移层（柔和呼吸渐变） */
.aurora{position:fixed;inset:-20%;z-index:0;pointer-events:none;filter:blur(60px);opacity:.6;mix-blend-mode:screen;}
.aurora i{position:absolute;border-radius:50%;filter:blur(50px);}
.aurora .b1{width:600px;height:600px;left:60%;top:-10%;background:radial-gradient(circle,rgba(46,141,255,.5),transparent 70%);animation:drift1 22s var(--ease) infinite alternate;}
.aurora .b2{width:520px;height:520px;left:-8%;bottom:-12%;background:radial-gradient(circle,rgba(39,214,242,.4),transparent 70%);animation:drift2 26s var(--ease) infinite alternate;}
.aurora .b3{width:480px;height:480px;right:-6%;bottom:20%;background:radial-gradient(circle,rgba(124,107,255,.42),transparent 70%);animation:drift2 30s var(--ease) infinite alternate-reverse;}
@keyframes drift1{from{transform:translate(0,0) scale(1);}to{transform:translate(-90px,60px) scale(1.18);}}
@keyframes drift2{from{transform:translate(0,0) scale(1);}to{transform:translate(70px,-50px) scale(1.14);}}
@keyframes float{0%{transform:translateY(0) scale(1);opacity:0;}12%{opacity:.7;}90%{opacity:.3;}100%{transform:translateY(-110vh) scale(.4);opacity:0;}}
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-thumb{background:rgba(94,190,255,.3);border-radius:6px;}
::-webkit-scrollbar-thumb:hover{background:rgba(94,190,255,.5);}
::-webkit-scrollbar-track{background:transparent;}
.mono{font-variant-numeric:tabular-nums;}
.hidden{display:none!important;}

/* 骨架 */
.app{display:flex;min-height:100vh;position:relative;z-index:1;}

/* ---- 左侧功能栏 ---- */
.sidebar{width:234px;flex-shrink:0;padding:24px 16px 20px;display:flex;flex-direction:column;
  background:rgba(8,14,30,.70);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-right:1px solid var(--line);}
.logo{display:flex;align-items:center;gap:12px;padding:4px 10px 20px;}
.logo-badge{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;
  background:linear-gradient(140deg,var(--blue),var(--cyan));
  box-shadow:0 0 22px rgba(46,216,242,.5), inset 0 1px 0 rgba(255,255,255,.3);}
.logo-name{font-size:16px;font-weight:800;letter-spacing:1px;color:#fff;text-shadow:0 0 14px rgba(39,214,242,.5);}
.logo-sub{font-size:10.5px;color:var(--text3);margin-top:2px;letter-spacing:1.5px;}
.nav-group{margin:2px 0;}
.nav-group-label{font-size:10px;color:var(--text3);letter-spacing:2px;padding:14px 12px 7px;font-weight:600;}
.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:13px;cursor:pointer;
  color:var(--text2);font-size:13.5px;font-weight:500;transition:.2s var(--ease);user-select:none;position:relative;overflow:hidden;}
.nav-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(var(--blue),var(--cyan));opacity:0;transition:.2s var(--ease);}
.nav-item .ico{width:20px;text-align:center;font-size:15.5px;flex-shrink:0;}
.nav-item:hover{background:rgba(46,157,255,.10);color:var(--accent2);transform:translateX(2px);}
.nav-item.active{background:linear-gradient(120deg,var(--blue),var(--cyan));color:#fff;font-weight:700;
  box-shadow:0 0 18px rgba(39,214,242,.4), 0 6px 18px rgba(0,120,200,.4);}
.nav-item.active::before{opacity:0;}
.nav-item .badge{margin-left:auto;background:var(--bad);color:#fff;font-size:10px;font-weight:700;
  min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 5px;box-shadow:0 0 10px rgba(255,110,128,.4);}
.sidebar-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);}
.theme-toggle{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:13px;cursor:pointer;color:var(--text2);font-size:13px;}
.theme-toggle:hover{background:rgba(46,157,255,.10);}
.switch{width:42px;height:23px;border-radius:12px;background:rgba(94,190,255,.28);position:relative;transition:.25s var(--ease);flex-shrink:0;}
.switch::after{content:'';position:absolute;left:3px;top:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:.25s var(--ease);box-shadow:0 0 8px rgba(39,214,242,.6);}
.switch.on{background:linear-gradient(120deg,var(--blue),var(--cyan));box-shadow:0 0 12px rgba(39,214,242,.55);}
.switch.on::after{box-shadow:none;}
.sidebar-user{font-size:10.5px;color:var(--text3);padding:10px 12px 0;}
.sidebar-ver{font-size:9.5px;color:var(--text3);opacity:.7;padding:3px 12px 8px;font-variant-numeric:tabular-nums;letter-spacing:.02em;}

/* ---- 主区 ---- */
.main{flex:1;padding:0 30px 36px;min-width:0;}
.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:26px 0 4px;flex-wrap:wrap;}
.tb-left .clock{font-size:60px;font-weight:800;line-height:.96;color:#fff;letter-spacing:2px;font-variant-numeric:tabular-nums;
  text-shadow:0 0 26px rgba(39,214,242,.55), 0 2px 4px rgba(0,0,0,.6);}
.tb-left .date{font-size:15px;color:var(--text2);margin-top:12px;font-weight:600;}
.tb-left .date .lunar{color:var(--text3);font-size:12.5px;font-weight:400;margin-left:10px;}
.tb-greet{font-size:15.5px;color:var(--cyan);margin-top:7px;font-weight:600;letter-spacing:.4px;text-shadow:0 0 12px rgba(39,214,242,.4);}
.tb-right{display:flex;flex-direction:column;align-items:flex-end;gap:12px;}
.search{display:flex;align-items:center;gap:9px;padding:11px 20px;border-radius:26px;
  background:var(--surface);border:1px solid var(--line);box-shadow:0 8px 30px rgba(0,0,0,.35);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);min-width:300px;transition:.25s var(--ease);}
.search:focus-within{border-color:var(--accent2);box-shadow:0 0 0 1px rgba(39,214,242,.35), 0 0 22px rgba(39,214,242,.2);}
.search input{border:none;outline:none;background:transparent;font-size:13.5px;color:var(--text);width:100%;font-family:inherit;}
.search input::placeholder{color:var(--text3);}
.search .ico{font-size:16px;color:var(--text3);}
.search .plus{margin-left:auto;color:var(--cyan);font-weight:700;cursor:pointer;padding:0 6px;border-radius:8px;}
.search .plus:hover{background:rgba(39,214,242,.15);}

/* 科技感按钮（霓虹发光 + 高光扫过 + 悬浮上浮） */
.btn-tech{position:relative;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:13px;
  font-size:13px;font-weight:700;cursor:pointer;color:#fff;border:none;overflow:hidden;
  background:linear-gradient(120deg,#1E72E0,var(--blue) 45%,var(--cyan));
  box-shadow:0 6px 18px rgba(0,100,200,.45), 0 0 14px rgba(39,214,242,.22);
  transition:.25s var(--ease);text-shadow:0 1px 2px rgba(0,0,0,.3);}
.btn-tech::before{content:'';position:absolute;top:0;left:-80%;width:50%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.33),transparent);
  transform:skewX(-20deg);transition:left .6s var(--ease);}
.btn-tech:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,140,220,.55), 0 0 24px rgba(39,214,242,.45);}
.btn-tech:hover::before{left:130%;}
.btn-tech.ghost{background:var(--surface);border:1px solid var(--line-strong);color:var(--cyan);box-shadow:none;}
.btn-tech.ghost:hover{background:rgba(39,214,242,.14);box-shadow:0 0 16px rgba(39,214,242,.3);}
.btn-tech.ghost:hover::before{content:none;}
.btn-tech.violet{background:linear-gradient(120deg,#5A3FD0,#7C6BFF 45%,#A78BFF);box-shadow:0 6px 18px rgba(90,63,208,.45),0 0 14px rgba(124,107,255,.28);}
.btn-tech .cnt{background:var(--bad);font-size:10px;font-weight:800;min-width:17px;height:17px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 0 8px rgba(255,110,128,.55);}
.tb-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}

.crumb{color:var(--text3);font-size:13px;margin:18px 0 2px;}
.crumb b{color:var(--cyan);font-weight:600;}
.page-title{font-size:24px;font-weight:800;color:#fff;margin:2px 0 6px;text-shadow:0 0 16px rgba(39,214,242,.3);}
.drag-hint{font-size:11px;color:var(--text3);margin:0 0 20px;}

/* 卡片式悬浮网格 */
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;grid-auto-flow:row dense;}
.card{position:relative;border-radius:var(--radius);padding:24px;
  background:var(--surface);border:1px solid var(--line);
  box-shadow:0 12px 40px rgba(0,0,0,.4);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  transition:box-shadow .3s var(--ease),transform .3s var(--ease),opacity .3s var(--ease);opacity:0;transform:translateY(18px);}
.card.in{opacity:1;transform:none;}
.card::before{content:'';position:absolute;inset:0;border-radius:var(--radius);padding:1px;pointer-events:none;
  background:linear-gradient(135deg,rgba(94,190,255,.4),transparent 30%,transparent 70%,rgba(124,107,255,.32));
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;}
.card:hover{transform:translateY(-3px);box-shadow:0 0 0 1px rgba(94,190,255,.25), 0 18px 52px rgba(0,70,150,.45), 0 0 26px rgba(39,214,242,.14);}
.card.span8{grid-column:span 8;}
.card.span4{grid-column:span 4;}
.card.span6{grid-column:span 6;}
.card.span12{grid-column:span 12;}
.card.dragging{opacity:.85;transform:scale(1.015);z-index:6;box-shadow:0 0 0 1px rgba(94,190,255,.3);}
.card.placeholder{border:2px dashed rgba(94,190,255,.5);background:rgba(94,190,255,.05);box-shadow:none;}
.card-resize{position:absolute;right:5px;bottom:5px;width:16px;height:16px;cursor:se-resize;z-index:5;opacity:0;transition:opacity 160ms var(--ease-out);border-radius:4px;}
.card-resize::before{content:'';position:absolute;right:2px;bottom:2px;width:11px;height:11px;border-right:2.5px solid rgba(16,128,231,.55);border-bottom:2.5px solid rgba(16,128,231,.55);border-radius:0 0 4px 0;}
.card:hover .card-resize{opacity:.7;}
.card-resize:hover,.card.dragging .card-resize{opacity:1;}
/* 卡片悬浮光域扫过 */
.card::after{content:'';position:absolute;inset:0;border-radius:var(--radius);pointer-events:none;
  background:linear-gradient(115deg,transparent 25%,rgba(255,255,255,.06) 45%,transparent 65%);
  transform:translateX(-130%);transition:transform .9s var(--ease);opacity:0;}
.card:hover::after{transform:translateX(130%);opacity:1;}
/* 卡片顶部微光条脉冲 */
.card::before{opacity:.6;}
.card:hover::before{opacity:.9;}
.card-head{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.card-head .c-ico{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;
  background:linear-gradient(140deg,rgba(39,214,242,.2),rgba(46,141,255,.2));color:var(--accent2);
  box-shadow:0 0 12px rgba(39,214,242,.2), inset 0 1px 0 rgba(255,255,255,.1);}
.card-head .c-title{font-size:14.5px;font-weight:700;color:#fff;letter-spacing:.3px;}
.card-head .c-sub{font-size:11px;color:var(--text3);font-weight:400;margin-left:2px;}
.card-head .c-tools{margin-left:auto;display:flex;gap:4px;}
.c-tool{width:24px;height:24px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text3);font-size:14px;transition:.2s var(--ease);border:1px solid var(--line);}
.c-tool:hover{background:rgba(39,214,242,.15);color:var(--accent2);border-color:var(--line-strong);}

/* 今日概览 hero */
.hero-top{display:flex;align-items:center;gap:28px;margin-bottom:22px;flex-wrap:wrap;}
.ring-wrap{position:relative;width:134px;height:134px;flex-shrink:0;}
.ring-wrap svg{width:134px;height:134px;transform:rotate(-90deg);}
.ring-track{fill:none;stroke:var(--ring);stroke-width:12;}
.ring-bar{fill:none;stroke:url(#grad1);stroke-width:12;stroke-linecap:round;transition:stroke-dashoffset 1.4s var(--ease);}
.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.ring-center .v{font-size:30px;font-weight:800;color:var(--accent2);line-height:1;text-shadow:0 0 18px rgba(39,214,242,.6);}
.ring-center .l{font-size:11px;color:var(--text3);margin-top:5px;}
.hero-main .big{font-size:34px;font-weight:800;color:#fff;line-height:1.1;text-shadow:0 0 18px rgba(39,214,242,.35);}
.hero-main .big small{font-size:15px;color:var(--text2);font-weight:600;margin-left:4px;}
.hero-main .desc{font-size:13px;color:var(--text2);margin-top:8px;}
.hero-main .desc b{color:var(--accent2);}
.hero-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px;}
.h-metric{padding:14px;border-radius:15px;background:rgba(10,17,35,.5);border:1px solid var(--line);position:relative;overflow:hidden;transition:.25s var(--ease);}
.h-metric::before{content:'';position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,var(--accent2),transparent);opacity:.5;}
.h-metric:hover{transform:translateY(-2px);border-color:var(--line-strong);}
.h-metric .hm-label{font-size:11.5px;color:var(--text3);}
.h-metric .hm-val{font-size:22px;font-weight:800;color:var(--text);margin-top:6px;font-variant-numeric:tabular-nums;text-shadow:0 0 12px rgba(39,214,242,.3);}
.h-metric .hm-val small{font-size:12px;color:var(--text3);font-weight:600;}
.h-metric .hm-s{font-size:11px;color:var(--text2);margin-top:4px;}
.h-metric .hm-s .up{color:var(--ok);font-weight:700;}
.h-metric .hm-s .down{color:var(--bad);font-weight:700;}
.h-metric.alert .hm-val{color:var(--bad);text-shadow:0 0 12px rgba(255,110,128,.4);}

/* 排班日历 */
.cal-month{display:flex;align-items:baseline;gap:8px;margin-bottom:6px;}
.cal-month .m1{font-size:15px;font-weight:800;color:#fff;}
.cal-month .m2{font-size:11px;color:var(--text3);}
.cal{width:100%;border-collapse:collapse;}
.cal th{font-size:10.5px;color:var(--text3);font-weight:600;padding:5px 0;border:none;}
.cal td{height:40px;text-align:center;font-size:12.5px;color:var(--text2);border-radius:12px;position:relative;cursor:pointer;transition:.15s var(--ease);}
.cal td:hover{background:rgba(39,214,242,.12);}
.cal td.today{background:linear-gradient(140deg,var(--blue),var(--cyan));color:#fff;font-weight:800;
  box-shadow:0 0 18px rgba(39,214,242,.55), 0 4px 12px rgba(0,120,200,.5);text-shadow:0 0 8px rgba(255,255,255,.6);}
.cal td .sl{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--accent2);box-shadow:0 0 6px var(--accent2);opacity:.8;}
.cal td.today .sl{background:#fff;box-shadow:none;}
/* 员工选择器（小程序排班同款） */
.cal-staff{position:relative;margin-bottom:5px;}
.cal-staff .sel{display:flex;align-items:center;justify-content:space-between;padding:5px 10px;border-radius:9px;background:rgba(16,128,231,.09);border:1px solid rgba(16,128,231,.25);cursor:pointer;font-size:12px;color:var(--text1);}
.cal-staff .sel:hover{background:rgba(16,128,231,.16);}
.cal-staff .sel b{color:var(--blue);font-weight:700;}
.cal-staff .sel .arr{transition:.2s;color:var(--text3);}
.cal-staff .sel.open .arr{transform:rotate(180deg);}
.cal-staff .list{position:absolute;z-index:60;top:calc(100% + 5px);left:0;right:0;max-height:180px;overflow:auto;background:var(--card,#0f1830);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.35);padding:4px;}
.cal-staff .list .it{display:flex;align-items:center;justify-content:space-between;padding:6px 9px;border-radius:7px;cursor:pointer;font-size:12px;color:var(--text2);}
.cal-staff .list .it:hover{background:rgba(16,128,231,.12);}
.cal-staff .list .it.cur{color:var(--blue);font-weight:700;background:rgba(16,128,231,.14);}
/* 日期格子班次标签 */
.cal td{height:34px;vertical-align:top;padding:1px 0;}
.cal td .day{font-size:11px;color:var(--text2);line-height:1.1;}
.cal td.today .day{color:#fff;}
.cal td .st{margin:1px auto 0;display:inline-block;padding:0 3px;border-radius:4px;font-size:9px;font-weight:700;line-height:1.3;}
/* 快捷入口 */
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.quick-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;
  padding:18px 6px;border-radius:15px;cursor:pointer;text-align:center;transition:.25s var(--ease);
  background:rgba(10,17,35,.5);border:1px solid var(--line);}
.quick-item:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:0 0 18px rgba(39,214,242,.2);}
.quick-item .qi-ico{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:21px;color:#fff;
  background:linear-gradient(140deg,var(--blue),var(--cyan));box-shadow:0 6px 16px rgba(0,120,200,.4), 0 0 12px rgba(39,214,242,.22);text-shadow:0 1px 3px rgba(0,0,0,.4);}
.quick-item:nth-child(4n+2) .qi-ico{background:linear-gradient(140deg,#4EA8FF,#7CC0FF);box-shadow:0 6px 16px rgba(78,168,255,.4);}
.quick-item:nth-child(4n+3) .qi-ico{background:linear-gradient(140deg,#0FBF8A,#35E0B0);box-shadow:0 6px 16px rgba(53,224,176,.35);}
.quick-item:nth-child(4n+4) .qi-ico{background:linear-gradient(140deg,#5A3FD0,#8B7CF6);box-shadow:0 6px 16px rgba(124,107,255,.4);}
.quick-item .qi-name{font-size:12.5px;font-weight:600;color:var(--text);}

/* 今日待办 */
.todo-count{font-size:12px;color:var(--text2);margin-bottom:12px;}
.todo-count b{color:var(--accent2);}
.todo-list{display:flex;flex-direction:column;gap:9px;}
.todo{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:13px;cursor:pointer;transition:.2s var(--ease);
  background:rgba(10,17,35,.5);border:1px solid var(--line);}
.todo:hover{background:rgba(39,214,242,.10);border-color:var(--line-strong);}
.todo .t-check{width:18px;height:18px;border-radius:50%;border:2px solid rgba(94,190,255,.5);flex-shrink:0;margin-top:1px;transition:.2s var(--ease);box-shadow:inset 0 0 6px rgba(39,214,242,.3);}
.todo.done .t-check{background:linear-gradient(var(--ok),var(--ok));border-color:var(--ok);}
.todo.warn .t-check{border-color:var(--warn);}
.todo.bad .t-check{border-color:var(--bad);}
.todo .t-body{flex:1;min-width:0;}
.todo .t-title{font-size:13px;color:var(--text);font-weight:600;line-height:1.4;}
.todo.done .t-title{text-decoration:line-through;color:var(--text3);}
.todo .t-meta{font-size:11px;color:var(--text3);margin-top:3px;}
.todo .t-tag{font-size:10px;color:var(--accent2);background:rgba(39,214,242,.12);padding:1px 8px;border-radius:8px;flex-shrink:0;font-weight:600;border:1px solid rgba(94,190,255,.25);}
.todo-input{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 14px;border-radius:14px;
  background:rgba(10,17,35,.5);border:1px solid var(--line);}
.todo-input input{border:none;outline:none;background:transparent;font-size:12.5px;color:var(--text);width:100%;font-family:inherit;}
.todo-input input::placeholder{color:var(--text3);}
.todo-input .go{cursor:pointer;color:var(--accent2);font-weight:700;font-size:12px;flex-shrink:0;padding:2px 8px;border-radius:8px;background:rgba(39,214,242,.12);border:1px solid rgba(94,190,255,.3);}
.todo-input .go:hover{background:rgba(39,214,242,.25);box-shadow:0 0 10px rgba(39,214,242,.4);}

/* 团队排行 */
.rank-list{display:flex;flex-direction:column;gap:10px;}
.rank-row{display:flex;align-items:center;gap:10px;transition:.2s var(--ease);}
.rank-row:hover{transform:translateX(3px);}
.rk-no{width:22px;height:22px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:var(--text3);background:rgba(94,190,255,.12);flex-shrink:0;border:1px solid var(--line);}
.rank-top1 .rk-no{background:linear-gradient(140deg,#FFD54F,#F6BC3F);color:#fff;box-shadow:0 0 12px rgba(246,188,63,.5);border:none;}
.rank-top2 .rk-no{background:linear-gradient(140deg,#B0C4DE,#8FA8CC);color:#fff;border:none;}
.rank-top3 .rk-no{background:linear-gradient(140deg,#E8A87C,#D89B6A);color:#fff;border:none;}
.rk-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13.5px;font-weight:800;color:#fff;flex-shrink:0;
  background:linear-gradient(140deg,var(--blue),var(--cyan));box-shadow:0 0 12px rgba(39,214,242,.35);}
.rank-row:nth-child(2) .rk-avatar{background:linear-gradient(140deg,#4EA8FF,#7CC0FF);}
.rank-row:nth-child(3) .rk-avatar{background:linear-gradient(140deg,#0FBF8A,#35E0B0);}
.rank-row:nth-child(4) .rk-avatar{background:linear-gradient(140deg,#5A3FD0,#8B7CF6);}
.rank-row:nth-child(5) .rk-avatar{background:linear-gradient(140deg,#F56A79,#FF8A96);}
.rk-info{flex:1;min-width:0;}
.rk-name{font-size:12.5px;font-weight:700;color:#fff;}
.rk-role{font-size:10px;color:var(--text3);}
.rk-score{font-weight:800;color:var(--accent2);font-size:13.5px;font-variant-numeric:tabular-nums;text-shadow:0 0 10px rgba(39,214,242,.4);}
.rk-score small{color:var(--text3);font-weight:400;font-size:9.5px;}

/* ============ 电信业务 AI 智能问答（主流 AI 界面风） ============ */
.kb-chat{height:350px;overflow-y:auto;padding:4px 6px 8px;display:flex;flex-direction:column;gap:14px;scroll-behavior:smooth;}
.kb-chat::-webkit-scrollbar{width:6px;}
.kb-chat::-webkit-scrollbar-thumb{background:rgba(94,190,255,.22);border-radius:3px;}
/* 欢迎态 */
.kb-hero{text-align:center;padding:26px 12px 10px;animation:msgIn .4s var(--ease);}
.kb-hero .kh-logo{width:52px;height:52px;margin:0 auto 14px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:26px;
  background:linear-gradient(140deg,var(--blue),var(--cyan));box-shadow:0 0 22px rgba(39,214,242,.35);}
.kb-hero .kh-title{font-size:18px;font-weight:800;color:#fff;letter-spacing:.5px;text-shadow:0 0 12px rgba(39,214,242,.3);}
.kb-hero .kh-sub{font-size:12.5px;color:var(--text2);margin:7px 0 18px;line-height:1.6;}
.kb-hero .kh-sub b{color:var(--accent2);}
.kb-starters{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;max-width:520px;margin:0 auto;text-align:left;}
.kb-starter{display:flex;align-items:center;gap:9px;padding:11px 13px;border-radius:12px;cursor:pointer;font-size:12.5px;color:var(--text2);
  background:rgba(255,255,255,.03);border:1px solid var(--line);transition:.18s var(--ease);}
.kb-starter:hover{color:var(--accent2);border-color:var(--line-strong);background:rgba(39,214,242,.06);transform:translateY(-1px);}
.kb-starter .st-ico{font-size:15px;flex-shrink:0;}
/* 消息 */
.kb-msg{display:flex;gap:10px;max-width:94%;animation:msgIn .3s var(--ease);}
.kb-msg.user{align-self:flex-end;flex-direction:row-reverse;}
.kb-msg.ai{align-self:flex-start;}
@keyframes msgIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.kb-avatar{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;color:#fff;
  background:linear-gradient(140deg,var(--blue),var(--cyan));box-shadow:0 0 10px rgba(39,214,242,.28);}
.kb-msg.user .kb-avatar{background:linear-gradient(140deg,#7C6BFF,#A78BFF);box-shadow:0 0 10px rgba(124,107,255,.28);}
.kb-msg .kb-col{display:flex;flex-direction:column;gap:6px;min-width:0;}
.kb-bubble{padding:10px 13px;border-radius:15px;font-size:13px;line-height:1.65;white-space:pre-wrap;word-break:break-word;}
.kb-msg.ai .kb-bubble{background:rgba(18,28,50,.6);border:1px solid var(--line);color:var(--text);border-top-left-radius:4px;}
.kb-msg.user .kb-bubble{background:linear-gradient(120deg,var(--blue),var(--cyan));color:#fff;border-top-right-radius:4px;font-weight:500;}
.kb-bubble .kb-ans-title{font-size:13.5px;font-weight:800;color:var(--accent2);margin-bottom:5px;display:flex;align-items:center;gap:6px;}
.kb-bubble .kb-li{display:flex;gap:7px;padding:3px 0;color:var(--text2);font-size:12.5px;}
.kb-bubble .kb-li::before{content:'·';color:var(--accent2);font-weight:800;flex-shrink:0;}
.kb-bubble .kb-sup{color:var(--accent2);font-weight:800;font-size:11px;vertical-align:super;margin:0 1px;cursor:pointer;}
/* 流式光标 */
.kb-cursor{display:inline-block;width:2px;height:14px;background:var(--accent2);vertical-align:middle;margin-left:2px;animation:blink .9s steps(2) infinite;}
@keyframes blink{50%{opacity:0;}}
/* 消息动作条 */
.kb-actions{display:flex;gap:6px;padding-left:2px;}
.kb-act{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text3);cursor:pointer;padding:4px 8px;border-radius:8px;transition:.15s;background:transparent;border:none;}
.kb-act:hover{background:rgba(39,214,242,.10);color:var(--accent2);}
.kb-act.copied{color:var(--ok);}
/* 来源引用（DeepSeek 风） */
.kb-refs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);}
.kb-ref{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text2);background:rgba(39,214,242,.06);
  border:1px solid var(--line);padding:5px 9px;border-radius:8px;cursor:pointer;transition:.15s var(--ease);}
.kb-ref:hover{background:rgba(39,214,242,.14);border-color:var(--line-strong);color:#fff;}
.kb-ref .rn{width:15px;height:15px;border-radius:4px;background:rgba(39,214,242,.2);color:var(--accent2);font-size:9px;display:flex;align-items:center;justify-content:center;font-weight:800;}
.kb-ref-detail{width:100%;font-size:11.5px;color:var(--text2);background:rgba(10,17,35,.6);border:1px solid var(--line);border-radius:9px;padding:8px 11px;line-height:1.6;margin-top:2px;}
.kb-ref-detail.hide{display:none;}
.kb-ref-detail .rd-line{display:flex;gap:6px;padding:2px 0;}
.kb-ref-detail .rd-line::before{content:'•';;color:var(--accent2);font-size:9px;flex-shrink:0;}
/* 追问建议 */
.kb-more{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;}
.kb-more .lm{font-size:10.5px;color:var(--text3);width:100%;margin-bottom:2px;font-weight:700;letter-spacing:.3px;}
.kb-more-q{padding:5px 11px;border-radius:14px;font-size:11.5px;cursor:pointer;color:var(--text2);
  background:rgba(255,255,255,.03);border:1px solid var(--line);transition:.15s var(--ease);}
.kb-more-q:hover{color:var(--accent2);border-color:var(--line-strong);background:rgba(39,214,242,.08);}
/* 打字 */
.kb-typing{display:inline-flex;gap:4px;padding:4px 2px;}
.kb-typing i{width:6px;height:6px;border-radius:50%;background:var(--accent2);animation:typing 1.2s infinite;}
.kb-typing i:nth-child(2){animation-delay:.2s;}
.kb-typing i:nth-child(3){animation-delay:.4s;}
@keyframes typing{0%,60%,100%{opacity:.25;}30%{opacity:1;transform:translateY(-3px);}}
/* 输入栏 */
.kb-inputbar{padding-top:12px;border-top:1px solid var(--line);}
.kb-chat-input{display:flex;align-items:center;gap:8px;padding:9px 9px 9px 15px;border-radius:18px;
  background:rgba(14,22,42,.72);border:1px solid var(--line);transition:.2s var(--ease);}
.kb-chat-input:focus-within{border-color:var(--accent2);box-shadow:0 0 0 1px rgba(39,214,242,.3),0 0 18px rgba(39,214,242,.14);}
.kb-chat-input .ico{color:var(--text3);font-size:16px;flex-shrink:0;cursor:pointer;}
.kb-chat-input input{border:none;outline:none;background:transparent;font-size:13.5px;color:var(--text);flex:1;font-family:inherit;}
.kb-chat-input input::placeholder{color:var(--text3);}
.kb-send{width:34px;height:34px;border-radius:11px;border:none;cursor:pointer;flex-shrink:0;color:#fff;font-size:15px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(120deg,var(--blue),var(--cyan));box-shadow:0 4px 14px rgba(39,214,242,.3);transition:.2s var(--ease);}
.kb-send:hover{box-shadow:0 6px 18px rgba(39,214,242,.5);transform:translateY(-1px);}
.kb-send:disabled{opacity:.4;cursor:not-allowed;transform:none;}
.kb-model{display:flex;justify-content:space-between;align-items:center;padding:8px 4px 0;font-size:10.5px;color:var(--text3);}
.kb-model .mm{display:flex;align-items:center;gap:5px;}
.kb-model .mm .dot{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 6px var(--ok);}
.model-sw{display:flex;gap:4px;align-items:center;margin:0 6px;}
.model-sw .ms{font-size:10.5px;font-weight:700;color:var(--text3);padding:3px 9px;border-radius:14px;border:1px solid rgba(120,140,160,.22);cursor:pointer;transition:.15s;}
.model-sw .ms.on{color:#fff;background:#1080E7;border-color:#1080E7;}
.model-sw .ms.off{opacity:.55;}
body.dark .model-sw .ms.on{background:#1B74E8;border-color:#1B74E8;}
.kb-newchat{cursor:pointer;display:flex;align-items:center;gap:4px;color:var(--text3);transition:.15s;background:none;border:none;font-size:10.5px;}
.kb-newchat:hover{color:var(--accent2);}
/* 待办勾选 */
/* 待办勾选 */
/* 待办勾选 */
.todo .t-check{font-size:11px;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;}
.todo.done .t-check::after{content:'✓';animation:pop .3s var(--ease);}
@keyframes pop{from{transform:scale(0);}to{transform:scale(1);}}
/* 导航激活光条 */
.nav-item.active::after{content:'';position:absolute;right:10px;top:50%;transform:translateY(-50%);
  width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 8px rgba(255,255,255,.9);}

/* 响应式 */
@media(max-width:1150px){
  .card.span8,.card.span4,.card.span6{grid-column:span 12;}
  .quick-grid{grid-template-columns:repeat(4,1fr);}
  .knowledge-card{flex-direction:column;}
  .knowledge-side{flex-basis:auto;width:100%;flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--line);padding-bottom:14px;padding-right:0;gap:8px;}
  .legend-item{flex:0 0 auto;}
  .knowledge-graph{height:300px;}
}
/* 移动端导航 */
.mobile-menu-btn{display:none;}
.sidebar-overlay{display:none;}
/* 移动端导航 */
.mobile-menu-btn{display:none;}
.sidebar-overlay{display:none;}
@media(max-width:820px){
  .sidebar{position:fixed;top:0;left:0;bottom:0;z-index:300;transform:translateX(-100%);transition:transform .3s ease;box-shadow:2px 0 30px rgba(0,0,0,.3);}
  .sidebar.open{transform:translateX(0);}
  .sidebar-overlay{display:none;position:fixed;inset:0;z-index:299;background:rgba(0,0,0,.45);backdrop-filter:blur(2px);}
  .sidebar-overlay.show{display:block;}
  .mobile-menu-btn{display:flex;align-items:center;justify-content:center;position:fixed;top:14px;left:14px;z-index:400;width:42px;height:42px;border-radius:12px;background:rgba(17,24,40,.82);border:1px solid rgba(46,141,255,.28);color:#fff;cursor:pointer;font-size:20px;box-shadow:0 4px 14px rgba(0,0,0,.25);}
  .main{padding:64px 18px 30px;}
  .hero-metrics{grid-template-columns:repeat(1,1fr);}
  .quick-grid{grid-template-columns:repeat(2,1fr);}
  .knowledge-graph{height:280px;}
}
/* 全局 Toast */
.cx-toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%) translateY(20px);z-index:9999;background:rgba(17,24,40,.92);color:#fff;padding:11px 22px;border-radius:12px;font-size:13.5px;font-weight:500;box-shadow:0 8px 28px rgba(0,0,0,.3);opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;max-width:86vw;text-align:center;}
.cx-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
/* 全局 Toast */
.cx-toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%) translateY(20px);z-index:9999;background:rgba(17,24,40,.92);color:#fff;padding:11px 22px;border-radius:12px;font-size:13.5px;font-weight:500;box-shadow:0 8px 28px rgba(0,0,0,.3);opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;max-width:86vw;text-align:center;}
.cx-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
  .ic{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;vertical-align:-0.16em;line-height:1;}
  .ic svg.icn{width:100%;height:100%;display:block;stroke-width:1.8;}
  .c-ico .ic,.kh-logo .ic{font-size:inherit;}
  .nav-ico .ic{vertical-align:middle;}

  .login-gate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 20%,rgba(46,141,255,.18),transparent 55%),radial-gradient(circle at 75% 75%,rgba(139,124,246,.16),transparent 60%),#060912;backdrop-filter:blur(8px);}
  .login-card{width:390px;max-width:92vw;background:rgba(17,24,40,.82);border:1px solid rgba(46,141,255,.28);border-radius:22px;padding:34px 30px;box-shadow:0 24px 60px rgba(0,0,0,.5);text-align:center;}
  .login-logo{width:64px;height:64px;margin:0 auto 14px;border-radius:18px;background:#0b3b8f;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 28px rgba(46,141,255,.35);}
  .login-logo img{width:100%;height:100%;object-fit:cover;display:block;}
  .login-title{font-size:22px;font-weight:700;color:#fff;letter-spacing:1px;}
  .login-sub{font-size:13px;color:#8a9bbd;margin-top:8px;line-height:1.7;}
  .lg-qr{width:200px;height:200px;margin:22px auto 6px;border-radius:16px;background:#fff;padding:12px;display:flex;align-items:center;justify-content:center;}
  .lg-qr img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;}
  .lg-qr .qr-ph{color:#8899bb;font-size:12px;padding:14px;line-height:1.6;}
  .login-tip{font-size:12px;color:#8a9bbd;margin-top:10px;}
  .login-note{font-size:12px;color:#27D6F2;margin-top:12px;min-height:18px;}
  .login-actions{margin-top:18px;display:flex;flex-direction:column;gap:10px;}
  .btn-demo{background:rgba(46,141,255,.14);color:#7fc0ff;border:1px solid rgba(46,141,255,.4);border-radius:12px;padding:11px;font-size:14px;cursor:pointer;transition:.2s;}
  .btn-demo:hover{background:rgba(46,141,255,.26);}
  .lg-spin{display:inline-block;width:18px;height:18px;border:2px solid rgba(39,214,242,.3);border-top-color:#27D6F2;border-radius:50%;animation:lgspin .8s linear infinite;vertical-align:-4px;margin-right:8px;}
  @keyframes lgspin{to{transform:rotate(360deg)}}


/* ================= 清爽高级感主题覆盖（浅灰毛玻璃 + 低饱和 + 黑点缀） ================= */
:root{
  --bg0:#EDF0F4; --bg1:#F5F6F8; --bg2:#ECEFF3;
  --surface:rgba(255,255,255,.72);
  --surface-solid:#FFFFFF;
  --line:rgba(28,38,58,.10);
  --line-strong:rgba(28,38,58,.16);
  --accent:#1080E7; --accent2:#1080E7; --accent3:#2B3038;
  --cyan:#1080E7; --blue:#1080E7; --indigo:#4A5568; --violet:#2B3444;
  --text:#1A1F2B; --text1:#1A1F2B; --text2:#5B6474; --text3:#969FAD;
  /* 品牌蓝三阶：必须在 :root 定义，否则弹窗(.biz-modal 等 overlay 之外的容器)
     里 var(--cb) 解析失败 → background 变透明，白字白底＝按钮"看不见" */
  --cb:#1080E7; --cb2:#2B91F0; --cc:#4FA8FF;
  --ok:#2EBC6B; --warn:#C7902A; --bad:#D4574F; --info:#4A7BB5;
  --radius:18px;
  --ring:rgba(20,30,50,.10);
}
body{background:linear-gradient(165deg,#FBFDFF 0%,#EFF3F8 45%,#E6EBF3 100%);color:var(--text);}
body::before{background:
  radial-gradient(920px 760px at 86% -10%, rgba(120,160,200,.30), transparent 62%),
  radial-gradient(780px 680px at -10% 26%, rgba(150,175,205,.22), transparent 60%),
  radial-gradient(820px 700px at 108% 78%, rgba(170,190,215,.20), transparent 62%),
  linear-gradient(160deg, rgba(190,210,230,.18), transparent 55%);
  opacity:.9;}
body::after{background:none!important;}
.particles{opacity:.5;}
.aurora{opacity:.18;mix-blend-mode:multiply;filter:blur(70px);}
.sidebar{background:rgba(255,255,255,.72);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);margin:16px;border-radius:22px;border:1px solid rgba(255,255,255,.85);box-shadow:0 16px 44px rgba(70,95,120,.11);align-self:flex-start;}
.logo-badge{background:#fff;color:#1080E7;box-shadow:0 6px 18px rgba(70,95,120,.14);border:1px solid rgba(20,30,50,.06);}
.logo-badge .logo-img{width:100%;height:100%;object-fit:cover;}
.logo-name{color:#1080E7;text-shadow:none;}
.nav-item{color:var(--text2);}
.nav-item:hover{background:rgba(20,30,50,.05);color:#1080E7;transform:none;}
.nav-item.active{background:#1080E7;color:#fff;box-shadow:0 8px 20px rgba(20,25,35,.22);}
.nav-item.active::before{opacity:0;}
.nav-item .badge{background:#D4574F;box-shadow:none;}
.sidebar-foot{border-top:1px solid var(--line);}
.switch{background:rgba(20,30,50,.16);}
.switch.on{background:#1080E7;box-shadow:none;}
.theme-toggle span{color:var(--text2)!important;}
.clock{color:#1080E7!important;text-shadow:none!important;}
.date{color:var(--text2);font-weight:600;}
.tb-greet{color:#3A4356;text-shadow:none;}
.search{background:rgba(255,255,255,.72);border:1px solid var(--line);box-shadow:0 8px 26px rgba(20,30,50,.06);}
.search:focus-within{border-color:#1080E7;box-shadow:0 0 0 1px rgba(22,24,29,.22);}
.search input{color:var(--text);}
.search .plus{color:#1080E7;}
.btn-tech{background:linear-gradient(150deg,#2B91F0,#1080E7);color:#fff;box-shadow:0 10px 26px rgba(16,128,231,.38), inset 0 1px 0 rgba(255,255,255,.35);border-radius:999px;}
.btn-tech::before{background:linear-gradient(105deg,transparent,rgba(255,255,255,.25),transparent);}
.btn-tech:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(16,128,231,.48);}
.btn-tech.ghost{background:rgba(255,255,255,.7);border:1px solid var(--line);color:#1080E7;box-shadow:none;}
.btn-tech.ghost:hover{background:#fff;}
.btn-tech.violet{background:#1080E7;box-shadow:0 6px 18px rgba(20,25,35,.22);}
.btn-tech .cnt{background:#D4574F;box-shadow:none;}
.crumb{color:var(--text3);}
.crumb b{color:#1080E7;}
.page-title{color:#1080E7;text-shadow:none;}
.drag-hint{color:var(--text3);}
.card{background:linear-gradient(170deg, rgba(255,255,255,.90), rgba(244,248,252,.78));border:1px solid rgba(255,255,255,.7);box-shadow:0 20px 55px rgba(70,95,120,.12), inset 0 1px 0 rgba(255,255,255,.9);}
.card::before{display:none;}
.card:hover{transform:translateY(-3px);box-shadow:0 26px 62px rgba(70,95,120,.16);}
.card::after{background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.7) 50%,transparent 70%);}
.card.dragging{box-shadow:0 0 0 1px rgba(20,30,50,.18);}
.card.placeholder{border:2px dashed rgba(20,30,50,.25);background:rgba(255,255,255,.4);box-shadow:none;}
.card-head .c-ico{background:#F1F3F6;color:#1080E7;box-shadow:none;border:1px solid var(--line);}
.card-head .c-title{color:#1080E7;}
.c-tool{border:1px solid var(--line);color:var(--text3);}
.c-tool:hover{background:#F1F3F6;color:#1080E7;}
.h-metric{background:#F6F8FA;border:1px solid var(--line);}
.h-metric::before{background:linear-gradient(90deg,transparent,#1080E7,transparent);opacity:.22;}
.h-metric .hm-label{color:var(--text3);}
.h-metric .hm-val{color:#1080E7;text-shadow:none;}
.h-metric .hm-s .up{color:#2EBC6B;}
.h-metric .hm-s .down{color:#D4574F;}
.ring-track{stroke:rgba(20,30,50,.10);}
.ring-bar{stroke:#1080E7;}
.ring-center .v{color:#1080E7;text-shadow:none;}
.hero-main .big{color:#1080E7;text-shadow:none;}
.hero-main .desc{color:var(--text2);}
.hero-main .desc b{color:#1080E7;}
.cal-month .m1{color:#1080E7;}
.cal td{color:#5B6474;}
.cal td:hover{background:#F1F3F6;}
.cal td.today{background:#1080E7;color:#fff;box-shadow:0 6px 16px rgba(20,25,35,.22);}
.cal td .sl{background:#D4574F;box-shadow:none;}
.cal td.today .sl{background:#fff;}
.quick-item{background:#F6F8FA;border:1px solid var(--line);}
.quick-item:hover{border-color:rgba(20,30,50,.2);box-shadow:0 10px 22px rgba(30,40,60,.08);transform:translateY(-2px);}
.quick-item .qi-ico{background:#1080E7;color:#fff;box-shadow:0 6px 16px rgba(20,25,35,.22);}
.quick-item:nth-child(4n+2) .qi-ico,
.quick-item:nth-child(4n+3) .qi-ico,
.quick-item:nth-child(4n+4) .qi-ico{background:#1080E7;box-shadow:0 6px 16px rgba(20,25,35,.22);}
.quick-item .qi-name{color:#1A1F2B;}
.todo{background:#F6F8FA;border:1px solid var(--line);}
.todo:hover{background:#FBFCFD;}
.todo .t-check{border-color:rgba(20,30,50,.3);box-shadow:none;}
.todo.done .t-check{background:#2EBC6B;border-color:#2EBC6B;}
.todo.warn .t-check{border-color:#C7902A;}
.todo.bad .t-check{border-color:#D4574F;}
.todo .t-title{color:#1A1F2B;}
.todo.done .t-title{color:#969FAD;}
.todo .t-tag{color:#1080E7;background:#EFF1F4;border-color:var(--line);}
.todo-input{background:#F6F8FA;border:1px solid var(--line);}
.todo-input input{color:var(--text);}
.todo-input .go{color:#1080E7;background:#EFF1F4;border-color:var(--line);}
.rk-no{color:var(--text3);background:#EFF1F4;border:1px solid var(--line);}
.rank-top1 .rk-no{background:#F6BC3F;color:#fff;border:none;box-shadow:none;}
.rank-top2 .rk-no{background:#B0C4DE;color:#fff;border:none;box-shadow:none;}
.rank-top3 .rk-no{background:#E8A87C;color:#fff;border:none;box-shadow:none;}
.rk-avatar{background:#1080E7;color:#fff;box-shadow:none;}
.rank-row:nth-child(2) .rk-avatar,
.rank-row:nth-child(3) .rk-avatar,
.rank-row:nth-child(4) .rk-avatar,
.rank-row:nth-child(5) .rk-avatar{background:#1080E7;box-shadow:none;}
.rk-name{color:#1A1F2B;}
.rk-role{color:var(--text3);}
.rk-score{color:#1080E7;text-shadow:none;}
.kb-msg.ai .kb-bubble{background:#F4F6F9;border:1px solid var(--line);color:#1A1F2B;}
.kb-msg.user .kb-bubble{background:#1080E7;color:#fff;}
.kb-bubble .kb-ans-title{color:#1080E7;}
.kb-bubble .kb-li{color:#3A4456;}
.kb-bubble .kb-li::before{color:#1080E7;}
.kb-cursor{background:#1080E7;}
.kb-avatar{background:transparent;box-shadow:none;overflow:hidden;}
.kb-avatar img{width:100%;height:100%;object-fit:contain;}
.kb-msg.user .kb-avatar{background:#3A4456;box-shadow:none;}
.kb-ref{color:#3A4456;background:#EFF1F4;border:1px solid var(--line);}
.kb-ref:hover{background:#E4E8ED;color:#1080E7;}
.kb-ref .rn{background:#E4E8ED;color:#1080E7;}
.kb-ref-detail{background:#F6F8FA;border:1px solid var(--line);color:#3A4456;}
.kb-more-q{background:#EFF1F4;border:1px solid var(--line);color:#3A4456;}
.kb-more-q:hover{background:#E4E8ED;color:#1080E7;}
.kb-typing i{background:#1080E7;}
.kb-chat-input{background:#F6F8FA;border:1px solid var(--line);}
.kb-chat-input:focus-within{border-color:#1080E7;box-shadow:0 0 0 1px rgba(22,24,29,.2);}
.kb-chat-input input{color:var(--text);}
.kb-send{background:#1080E7;color:#fff;box-shadow:0 4px 14px rgba(20,25,35,.2);}
.kb-model .mm .dot{background:#2EBC6B;box-shadow:none;}
.kb-newchat{color:var(--text3);}
.kb-newchat:hover{color:#1080E7;}
.kb-hero .kh-logo{background:transparent;box-shadow:none;overflow:hidden;}
.kb-hero .kh-logo img{width:100%;height:100%;object-fit:contain;}
.kb-hero .kh-title{color:#1080E7;text-shadow:none;}
.kb-hero .kh-sub{color:var(--text2);}
.kb-hero .kh-sub b{color:#1080E7;}
.kb-starter{color:#3A4456;background:#F6F8FA;border:1px solid var(--line);}
.kb-starter:hover{color:#1080E7;border-color:rgba(20,30,50,.2);background:#fff;}
.login-gate{background:linear-gradient(160deg,#F4F6FA,#E9EDF2);backdrop-filter:blur(10px);}
.login-card{background:rgba(255,255,255,.85);border:1px solid rgba(255,255,255,.7);box-shadow:0 30px 70px rgba(30,40,60,.16);}
.login-logo{background:#0b3b8f;box-shadow:0 12px 28px rgba(20,25,35,.16);}
.login-logo svg{color:#fff;}
.login-title{color:#1080E7;}
.login-sub{color:#5B6474;}
.lg-qr .qr-ph{color:#969FAD;}
.login-tip{color:#5B6474;}
.login-note{color:#1080E7;}
.btn-demo{background:#F1F3F6;color:#1080E7;border:1px solid var(--line);}
.btn-demo:hover{background:#E4E8ED;}
.lg-spin{border-color:rgba(20,30,50,.2);border-top-color:#1080E7;}

/* ===== 顶部 hero 横幅（一个整体，参考图比例 ≈ 左25%/中20%/右55%） ===== */
.hero-banner{display:flex;align-items:center;gap:22px;padding:8px 28px;border-radius:16px;flex-wrap:wrap;margin-top:26px;
  background:linear-gradient(112deg, rgba(230,242,255,.94), rgba(246,247,255,.90) 44%, rgba(240,244,252,.88));
  border:1px solid rgba(255,255,255,.88);box-shadow:0 22px 58px rgba(70,95,120,.13), inset 0 1px 0 rgba(255,255,255,.96);
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);position:relative;overflow:hidden;}
.hero-banner::after{content:'';position:absolute;inset:0;border-radius:26px;pointer-events:none;
  background:radial-gradient(520px 220px at 78% 0%, rgba(120,160,220,.10), transparent 60%);}
.hb-left{flex:0 0 auto;display:flex;align-items:center;gap:15px;}
.hb-left .clock{font-size:40px;font-weight:800;line-height:1;color:#1080E7;letter-spacing:1px;font-variant-numeric:tabular-nums;}
.hb-datecol{display:flex;flex-direction:column;gap:2px;min-width:0;}
.hb-datecol .date{font-size:12.5px;color:#5B6474;font-weight:600;}
.hb-datecol .date .dl-sep{margin:0 5px;color:#C3C9D2;}
.hb-datecol .date .lunar{font-size:11px;color:#969FAD;font-weight:400;}
.hb-tag{display:inline-block;background:rgba(139,124,200,.14);color:#8B7CC8;font-size:10px;padding:1px 7px;border-radius:8px;width:max-content;}
.hb-mid{flex:1;min-width:140px;padding-left:18px;border-left:1px solid rgba(120,135,160,.16);}
.hb-greet{display:flex;flex-direction:column;gap:1px;}
.hg-time{font-size:15px;color:#1080E7;font-weight:700;line-height:1.2;}
.hg-quote{font-size:12.5px;color:#5B6474;font-weight:500;letter-spacing:.3px;}
.hb-right{flex:0 0 auto;display:flex;align-items:center;gap:12px;margin-left:auto;}
.hb-right .search{padding:7px 18px;border-radius:999px;width:min(420px,100%);flex:1;}
.hb-actions{display:flex;gap:5px;}
.hb-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:3px 8px;border-radius:11px;cursor:pointer;
  color:#5B6474;font-size:9.5px;transition:.2s;background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.9);}
.hb-btn:hover{background:#fff;color:#1080E7;transform:translateY(-2px);box-shadow:0 8px 18px rgba(70,95,120,.14);}
.hb-btn .hb-ico{font-size:14px;color:#1080E7;line-height:1;}
.hb-actions .hb-btn .ic{width:14px;height:14px;}
@media(max-width:1050px){ .hb-mid{border-left:none;padding-left:0;} }
@media(max-width:820px){ .hb-left{width:100%;} .hb-right{width:100%;justify-content:space-between;} }

/* ===== Emil Kowalski 按钮优化 ===== */
:root{--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.77,0,0.175,1);}
.btn-tech,.hb-btn,.nav-item,.c-tool,.kb-send,.kb-starter,.kb-more-q,.kb-newchat,.kb-act,.btn-demo{
  transition:transform 160ms var(--ease-out), box-shadow 200ms var(--ease-out), background 200ms var(--ease-out), color 200ms var(--ease-out), border-color 200ms var(--ease-out);}
.btn-tech:active,.hb-btn:active,.nav-item:active,.c-tool:active,.kb-send:active,.kb-starter:active,.kb-more-q:active,.btn-demo:active{transform:scale(.97);}
/* 非精确指针(触屏)不触发 hover 上浮，避免 tap 误触 */
.btn-tech:hover,.hb-btn:hover,.nav-item:hover{transform:none;}
@media (hover:hover) and (pointer:fine){
  .btn-tech:hover{transform:translateY(-2px);}
  .hb-btn:hover{transform:translateY(-2px);}
  .nav-item:hover{transform:translateX(2px);}
}
@media (prefers-reduced-motion: reduce){
  .btn-tech,.hb-btn,.nav-item,.c-tool,.kb-send,.kb-starter,.kb-more-q,.kb-newchat,.kb-act,.btn-demo{transition-duration:0ms;}
}

/* ===== 深色模式开关动画（emilkowalski：transform 滑动 + press 波纹 + ease-out） ===== */
.switch{width:42px;height:23px;border-radius:12px;background:rgba(94,190,255,.28);position:relative;transition:background 200ms var(--ease-out),box-shadow 200ms var(--ease-out);flex-shrink:0;}
.switch::after{content:'';position:absolute;left:3px;top:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:transform 200ms var(--ease-out),box-shadow 200ms var(--ease-out);box-shadow:0 2px 5px rgba(0,0,0,.2);z-index:2;}
.switch::before{content:'';position:absolute;left:3px;top:3px;width:17px;height:17px;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);transition:transform 200ms var(--ease-out);z-index:1;}
.switch:active::before{transform:scale(2);}
.switch.on::after{transform:translateX(19px);}
.switch.on{background:#1080E7;box-shadow:0 0 12px rgba(30,140,235,.55);}

/* ===== 深色模式：科技感界面 ===== */
body.dark{background:linear-gradient(165deg,#060B15 0%,#0A1020 45%,#0B1526 100%);color:#E6F0FC;}
body.dark::before{background:
  radial-gradient(900px 760px at 86% -10%, rgba(30,130,235,.20), transparent 62%),
  radial-gradient(760px 660px at -8% 28%, rgba(60,110,220,.14), transparent 60%),
  radial-gradient(820px 700px at 108% 80%, rgba(20,150,220,.12), transparent 62%);opacity:.95;}
body.dark .sidebar{background:rgba(11,17,30,.82);border:1px solid rgba(70,130,220,.14);box-shadow:0 16px 44px rgba(0,0,0,.5);}
body.dark .logo-badge{background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.1);}
body.dark .logo-name{color:#9BC6FF;}
body.dark .logo-sub{color:#5F7490;}
body.dark .nav-item{color:#93A6BD;}
body.dark .nav-item:hover{background:rgba(20,100,220,.18);color:#EAF3FF;}
body.dark .nav-item.active{background:linear-gradient(120deg,#1B74E8,#1080E7);color:#fff;box-shadow:0 8px 20px rgba(16,128,231,.4);}
body.dark .nav-group-label{color:#4E6078;}
body.dark .sidebar-foot{border-top-color:rgba(70,120,210,.16);}
body.dark .theme-toggle{color:#93A6BD;}
body.dark .theme-toggle:hover{background:rgba(20,100,220,.16);}
body.dark .hero-banner{background:linear-gradient(112deg, rgba(16,25,42,.9), rgba(13,22,38,.86) 44%, rgba(13,19,34,.88));border:1px solid rgba(70,130,220,.16);box-shadow:0 22px 58px rgba(0,0,0,.55), inset 0 1px 0 rgba(120,170,240,.08);}
body.dark .hero-banner::after{background:radial-gradient(520px 220px at 78% 0%, rgba(30,140,235,.16), transparent 60%);}
body.dark .hb-left .clock{color:#4FA8FF;text-shadow:0 0 22px rgba(30,140,235,.5);}
body.dark .hb-datecol .date{color:#A8B8CC;}
body.dark .hb-datecol .date .lunar{color:#5E7189;}
body.dark .hb-tag{background:rgba(150,130,230,.16);color:#B9A9FF;}
body.dark .hb-mid{border-left-color:rgba(90,130,200,.2);}
body.dark .hg-time{color:#4FA8FF;}
body.dark .hg-quote{color:#93A6BD;}
body.dark .hb-right .search{background:rgba(18,28,46,.7);border-color:rgba(70,120,200,.18);}
body.dark .hb-right .search input{color:#E6F0FC;}
body.dark .hb-right .search .plus{color:#4FA8FF;}
body.dark .hb-btn{background:rgba(18,28,46,.6);border-color:rgba(70,120,200,.16);color:#93A6BD;}
body.dark .hb-btn:hover{background:rgba(20,60,120,.5);color:#EAF3FF;}
body.dark .hb-btn .hb-ico{color:#4FA8FF;}
body.dark .card{background:linear-gradient(170deg, rgba(15,23,40,.9), rgba(13,20,35,.86));border:1px solid rgba(70,130,220,.14);box-shadow:0 20px 55px rgba(0,0,0,.5), inset 0 1px 0 rgba(120,170,240,.07);}
body.dark .card-head .c-ico{background:rgba(20,40,70,.6);color:#4FA8FF;border-color:rgba(70,120,200,.18);}
body.dark .card-head .c-title{color:#EAF3FF;}
body.dark .c-tool{color:#6E8098;border-color:rgba(70,120,200,.16);}
body.dark .c-tool:hover{background:rgba(20,60,120,.4);color:#EAF3FF;}
body.dark .crumb{color:#5E7189;}
body.dark .crumb b{color:#EAF3FF;}
body.dark .page-title{color:#EAF3FF;}
body.dark .h-metric{background:rgba(16,26,44,.7);border-color:rgba(70,120,200,.14);}
body.dark .h-metric .hm-label{color:#5E7189;}
body.dark .h-metric .hm-val{color:#EAF3FF;}
body.dark .ring-center .v{color:#EAF3FF;}
body.dark .hero-main .big{color:#EAF3FF;}
body.dark .hero-main .desc{color:#93A6BD;}
body.dark .hero-main .desc b{color:#4FA8FF;}
body.dark .cal-month .m1{color:#EAF3FF;}
body.dark .cal td{color:#93A6BD;}
body.dark .cal td:hover{background:rgba(20,60,120,.4);}
body.dark .cal td.today{background:linear-gradient(120deg,#1B74E8,#1080E7);color:#fff;box-shadow:0 6px 16px rgba(16,128,231,.5);}
body.dark .quick-item{background:rgba(16,26,44,.7);border-color:rgba(70,120,200,.14);}
body.dark .quick-item .qi-ico{background:linear-gradient(140deg,#2B91F0,#1080E7);box-shadow:0 6px 16px rgba(16,128,231,.4);}
body.dark .quick-item .qi-name{color:#EAF3FF;}
body.dark .todo{background:rgba(16,26,44,.7);border-color:rgba(70,120,200,.14);}
body.dark .todo .t-title{color:#EAF3FF;}
body.dark .todo .t-tag{background:rgba(20,40,70,.6);color:#4FA8FF;border-color:rgba(70,120,200,.18);}
body.dark .rk-name{color:#EAF3FF;}
body.dark .rk-role{color:#5E7189;}
body.dark .rk-score{color:#EAF3FF;}
body.dark .kb-msg.ai .kb-bubble{background:rgba(17,27,45,.7);border-color:rgba(70,120,200,.14);color:#DCE8F5;}
body.dark .kb-msg.user .kb-bubble{background:linear-gradient(140deg,#1B74E8,#1080E7);color:#fff;}
body.dark .kb-avatar{background:transparent;}
body.dark .kb-msg.user .kb-avatar{background:#3A4A63;}
body.dark .kb-ref{background:rgba(20,40,70,.6);color:#DCE8F5;border-color:rgba(70,120,200,.16);}
body.dark .kb-starter{background:rgba(16,26,44,.7);border-color:rgba(70,120,200,.16);color:#93A6BD;}
body.dark .kb-starter:hover{color:#EAF3FF;}
body.dark .kb-more-q{background:rgba(20,40,70,.6);border-color:rgba(70,120,200,.16);color:#93A6BD;}
body.dark .kb-hero .kh-title{color:#EAF3FF;}
body.dark .kb-hero .kh-sub{color:#93A6BD;}
body.dark .kb-chat-input{background:rgba(18,28,46,.8);border-color:rgba(70,120,200,.2);}
body.dark .kb-chat-input input{color:#E6F0FC;}
body.dark .btn-tech{background:linear-gradient(150deg,#2B91F0,#1080E7);box-shadow:0 10px 26px rgba(16,128,231,.45), inset 0 1px 0 rgba(255,255,255,.3);}
body.dark .btn-tech.ghost{background:rgba(18,28,46,.7);border-color:rgba(70,120,200,.2);color:#4FA8FF;}
body.dark .login-gate{background:linear-gradient(160deg,#0A1120,#0B1526);}
body.dark .login-card{background:rgba(15,23,40,.9);border:1px solid rgba(70,130,220,.14);box-shadow:0 30px 70px rgba(0,0,0,.6);}
body.dark .login-title{color:#EAF3FF;}
body.dark .login-sub{color:#93A6BD;}
body.dark .switch{background:rgba(30,50,80,.5);}
body.dark .switch.on{background:#1080E7;box-shadow:0 0 12px rgba(30,140,235,.6);}

/* ===== P2-5: 深色模式CSS补充修复 ===== */
/* 1. 重置CSS变量——让var()在dark模式下正确解析 */
body.dark{
  --text:#E6F0FC; --text1:#E6F0FC; --text2:#93A6BD; --text3:#5E7189;
  --accent2:#4FA8FF; --accent3:#8B7CF6;
  --cyan:#27D6F2; --blue:#1B74E8; --indigo:#5B6CF0; --violet:#8B7CF6;
  --card:#0F1A34; --surface:rgba(15,23,40,.9); --surface-solid:#101A35;
  --line:rgba(70,130,220,.14); --line-strong:rgba(94,190,255,.30);
  --cb:#1080E7; --cb2:#2B91F0; --cc:#4FA8FF;
  --ok:#35E0B0; --warn:#F6BC3F; --bad:#FF6E80; --info:#54A9FF;
  --ring:rgba(120,180,255,.14);
}

/* 2. 粒子/极光——light模式用了multiply混合,深色下需恢复正常 */
body.dark .particles{opacity:.3;}
body.dark .aurora{opacity:.22;mix-blend-mode:screen;filter:blur(60px);}

/* 3. 拖拽手柄+提示文字——深色下提高对比度 */
body.dark .card-resize::before{border-right-color:rgba(94,190,255,.6);border-bottom-color:rgba(94,190,255,.6);}
body.dark .drag-hint{color:#5E7189;}

/* 4. AI聊天气泡内部元素 */
body.dark .kb-bubble .kb-ans-title{color:#4FA8FF;}
body.dark .kb-bubble .kb-li{color:#93A6BD;}
body.dark .kb-bubble .kb-li::before{color:#4FA8FF;}
body.dark .kb-bubble .kb-sup{color:#4FA8FF;}
body.dark .kb-send{box-shadow:0 4px 14px rgba(16,128,231,.3);}

/* 5. 业务通报(ck)视图——全屏子页面 */
body.dark .ck-shell{color:#E6F0FC;}
body.dark .ck-back{background:rgba(16,26,44,.88);border-color:rgba(70,130,220,.3);color:#4FA8FF;box-shadow:0 12px 30px rgba(0,0,0,.4);}
body.dark .ck-brand{color:#4FA8FF;}
body.dark .ck-tabs{background:#0F1A34;border-color:rgba(70,120,200,.18);}
body.dark .ck-tab{color:#93A6BD;}
body.dark .ck-tab:hover{color:#4FA8FF;}
body.dark .ck-card{background:linear-gradient(180deg,#111B33,#0E1728);border-color:rgba(70,120,200,.18);box-shadow:0 18px 44px rgba(0,0,0,.4);}
body.dark .ck-h-t{color:#EAF3FF;}
body.dark .ck-h-s{color:#5E7189;}
body.dark .ck-note{color:#5E7189;}
body.dark .ck-sum{color:#93A6BD;}
body.dark .ck-table td{border-bottom-color:rgba(70,120,200,.12);color:#DCE6F2;}
body.dark .ck-table tbody tr:nth-child(even){background:rgba(16,28,56,.5);}
body.dark .ck-table tbody tr:hover{background:rgba(20,60,120,.3);}
body.dark .ck-table .amtcell.ag5{color:#4FA8FF;}
body.dark .ck-table .amtcell.ag4{color:#5FB0FF;}
body.dark .ck-table .amtcell.ag3{color:#7BC0FF;}
body.dark .ck-table .amtcell.ag2{color:#9CCFFF;}
body.dark .ck-table .amtcell.ag1{color:#BCDDFF;}
body.dark .ck-table .mn{color:#E06A6A;}
body.dark .ck-in{background:#0D1730;border-color:rgba(70,120,200,.2);color:#7DB4F5;}
body.dark .ck-in-n{background:#0D1730;border-color:rgba(70,120,200,.2);color:#DCE6F2;}
body.dark .ck-rate .bar{background:rgba(70,120,200,.14);}
body.dark .ck-rate .num{color:#DCE6F2;}
body.dark .ck-rule{background:linear-gradient(135deg,#0C1730,#0A1426);border-color:rgba(70,120,200,.16);color:#93A6BD;}
body.dark .ck-empty{color:#5E7189;}
body.dark .ck-month-row .ck-mlabel{color:#5E7189;}
body.dark .ck-month-row .ck-mtext{color:#4FA8FF;}
body.dark .ck-del{color:#E06A6A;}
body.dark .cal-staff .list{background:#0F1A34;border-color:rgba(70,120,200,.18);}

/* 6. 报价查询(bj)视图 */
body.dark .bj-search{background:#0F1A34;border-color:rgba(70,120,200,.18);box-shadow:0 2px 8px rgba(0,0,0,.2);}
body.dark .bj-in{color:#DCE6F2;}
body.dark .bj-nav{background:#0F1A34;border-color:rgba(70,120,200,.18);box-shadow:0 4px 16px rgba(0,0,0,.2);}
body.dark .bj-nav-item{color:#93A6BD;}
body.dark .bj-cat-head::before{background:#1080E7;}
body.dark .bj-img{background:linear-gradient(150deg,#0D1730,#0A1426);border-bottom-color:rgba(70,120,200,.12);}
body.dark .bj-item{background:#0F1A34;border-color:rgba(70,120,200,.14);box-shadow:0 2px 8px rgba(0,0,0,.2);}
body.dark .bj-item:hover{border-color:#1080E7;box-shadow:0 10px 22px rgba(16,128,231,.18);}
body.dark .bj-cart{background:#0F1A34;border-color:rgba(70,120,200,.14);box-shadow:0 4px 18px rgba(0,0,0,.2);}
body.dark .bj-cart-h{border-bottom-color:rgba(70,120,200,.14);}
body.dark .bj-cimg{background:linear-gradient(150deg,#0D1730,#0A1426);border-color:rgba(70,120,200,.12);}
body.dark .bj-qbtn{background:rgba(70,120,200,.14);color:#93A6BD;}
body.dark .bj-crow .bj-camt{color:#DCE6F2;}
body.dark .bj-clear{color:#E06A6A;}
/* P2-5补: 报价表单输入框/预览容器硬编码#fff修复 */
body.dark .bj-qform,body.dark .bj-qsum{background:#0F1A34;border-color:rgba(70,120,200,.16);box-shadow:0 4px 16px rgba(0,0,0,.2);}
body.dark .bj-in2{background:#0D1730;border-color:rgba(70,120,200,.2);color:#DCE6F2;}
body.dark .bj-in2:focus{border-color:#1080E7;box-shadow:0 0 0 3px rgba(16,128,231,.18);}
body.dark .bj-in2::placeholder{color:#5E7189;}
body.dark .bj-preview{background:#0F1A34;border-color:rgba(70,120,200,.16);box-shadow:0 6px 22px rgba(0,0,0,.3);}
body.dark .bj-preview-h b{color:#EAF3FF;}
body.dark .bj-qsum-row{color:#93A6BD;}
body.dark .bj-qsum-row b{color:#DCE6F2;}
body.dark .bj-qsum-row.total{color:#EAF3FF;}
body.dark .bj-qsum-row.total b{color:#4FA8FF;}
body.dark .bj-cat-head{color:#EAF3FF;}
body.dark .bj-qf-l{color:#5E7189;}
body.dark .bj-qf-h{color:#EAF3FF;}
body.dark .bj-n{color:#DCE6F2;}
body.dark .bj-cart-h{color:#EAF3FF;}
body.dark .bj-cart-total{color:#EAF3FF;}
body.dark .bj-crow .bj-cn{color:#DCE6F2;}

/* 7. 达标测算(db)视图 */
body.dark .db-in{background:#0D1730;border-color:rgba(70,120,200,.2);color:#DCE6F2;}

/* 8. 填报弹窗(fill)视图补充 */
body.dark .fill-shell{color:#DCE6F2;}
body.dark .fill-brand{color:#4FA8FF;}
body.dark .fn-btn{background:rgba(16,128,231,.12);color:#4FA8FF;border-color:rgba(70,120,200,.2);}
body.dark .fn-sep{background:rgba(70,120,200,.25);}
body.dark .fill-note{color:#5E7189;}
body.dark .fill-preview{color:#93A6BD;}
body.dark .fill-preview .rp{background:#0B1424;border-color:rgba(70,120,200,.14);color:#DCE6F2;}
body.dark .rp{background:#0D1730;border-color:rgba(70,120,200,.14);color:#DCE6F2;}
body.dark #fillText{background:#0B1424;color:#DCE6F2;}

/* 9. 库管(kg)视图 */
body.dark .bj-kuguan{background:#0F1A34;border-color:rgba(70,120,200,.16);box-shadow:0 6px 22px rgba(0,0,0,.2);}
body.dark .bjk-row{background:#0D1730;}
body.dark .bjk-row:hover{background:#16233B;}
body.dark .bjk-detail{background:#0F1A34;}
body.dark .kg-table th{background:#0C1730;color:#93A6BD;border-bottom-color:rgba(70,120,200,.16);}
body.dark .kg-table td{border-bottom-color:rgba(70,120,200,.12);color:#DCE6F2;}
body.dark .kg-table tr:nth-child(even) td{background:rgba(16,28,56,.4);}
body.dark .kg-in{background:#0D1730;border-color:rgba(70,120,200,.2);color:#DCE6F2;}
body.dark .kg-wrap{border-color:rgba(70,120,200,.18);}
body.dark .kg-lin{background:#0D1730;}
body.dark .kg-empty{color:#5E7189;}

/* 10. 灵感速记(idea)补充 */
body.dark .idea-input input{background:rgba(16,26,44,.6);color:#E6F0FC;}
body.dark .idea-input .go{background:#1080E7;color:#fff;}
body.dark .idea-i{background:rgba(16,26,44,.5);border-color:rgba(70,120,200,.12);}
body.dark .idea-foot{border-top-color:rgba(70,120,200,.12);}

/* 11. 权限管理(adm)补充 */
body.dark .adm-btn.warn{background:rgba(239,90,90,.15);border-color:rgba(239,90,90,.3);color:#E06A6A;}
body.dark .adm-btn.prim{background:#1080E7;border-color:#1080E7;color:#fff;}
body.dark .gen-btn{color:#4FA8FF;background:rgba(16,128,231,.12);border-color:rgba(70,130,220,.3);}
body.dark .gen-fn{color:#7C8CA5;}
body.dark .gen-note{color:#7C8CA5;}

/* 12. 数据运维(ops)补充 */
body.dark #opsToast{background:rgba(16,26,44,.95);border-color:rgba(90,140,220,.3);}
body.dark .ops-note{color:#7C8CA5;}
body.dark .ops-empty{color:#7C8CA5;}
body.dark .ops-row select{background:#0D1730;color:#E6F0FC;border-color:rgba(70,120,200,.24);}

/* 13. 年度计划(pl)补充 */
body.dark .pl-mini{background:rgba(70,120,200,.12);color:#93A6BD;}
body.dark .pl-mini:hover{color:#4FA8FF;}
body.dark .pl-mini.del{color:#E06A6A;}
body.dark .pl-task-tt{color:#DCE6F2;}
body.dark .pl-st.walk{background:rgba(20,100,220,.18);color:#4FA8FF;}
body.dark .pl-st.wair{background:rgba(70,120,200,.14);color:#93A6BD;}
body.dark .pl-days.overdue{background:#C0453E;color:#fff;}
body.dark .pl-nav{background:rgba(70,120,200,.12);color:#93A6BD;}
body.dark .pl-side-sub{color:#5E7189;}
body.dark .pl-whead{color:#DCE6F2;}
body.dark .pl-mo-h{color:#DCE6F2;}
body.dark .pl-check-tt{color:#DCE6F2;}
body.dark .pl-check-del{color:#E06A6A;background:rgba(212,87,79,.1);}

/* ===== 天气 & 提醒 卡 ===== */
.wx-now{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-left:40px;}
.wx-now-meta{margin-left:auto;display:flex;align-items:center;}
.wp-head .c-tools{margin-left:12px;}
.wp-l{display:flex;align-items:center;gap:9px;white-space:nowrap;}
.wp-l .c-title{margin-right:2px;}
.wp-l .c-sub{color:var(--text3);font-size:12px;}
.wx-ico-badge{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:32px;line-height:1;flex-shrink:0;margin-right:10px;}
.wx-ico-badge span{line-height:1;display:inline-block;animation:wxFloat 3.2s ease-in-out infinite;}
.wx-ico-badge span,.wx-day .d .di,.end .lb,.k-ico{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",system-ui,"Segoe UI",sans-serif;}
@keyframes wxFloat{0%,100%{transform:translateY(0) scale(1);}50%{transform:translateY(-4px) scale(1.06);}}
@media (prefers-reduced-motion:reduce){.wx-ico-badge span{animation:none;}}
.wx-now-tmp{display:flex;flex-direction:column;gap:1px;}
.wx-temp{font-size:36px;font-weight:800;color:#1080E7;line-height:.95;letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.wx-temp small{font-size:14px;font-weight:700;color:#1080E7;margin-left:2px;vertical-align:top;}
.wx-feels{font-size:12px;color:var(--text3);margin-top:5px;letter-spacing:.01em;}
.wx-city{display:inline-flex;align-items:center;gap:6px;font-size:15px;color:var(--text);font-weight:600;}
.wx-city .pin{font-size:13px;color:#3B82F6;}
.wx-stats{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.wx-st{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#fff;border-radius:999px;padding:6px 12px 6px 8px;font-weight:600;box-shadow:0 5px 12px rgba(60,90,200,.18);transition:transform 180ms cubic-bezier(.23,1,.32,1),box-shadow 180ms cubic-bezier(.23,1,.32,1),opacity 180ms ease;animation:msIn 420ms cubic-bezier(.23,1,.32,1) backwards;}
.wx-st .ms-ic{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.24);border-radius:50%;}
.wx-st .ms-ic svg{width:11px;height:11px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.wx-st b{font-weight:800;color:#fff;font-variant-numeric:tabular-nums;}
.wx-st.wx-hum{background:linear-gradient(140deg,#4A90E8,#6FB1F0);}
.wx-st.wx-wind{background:linear-gradient(140deg,#2FB3D6,#57D0E8);}
.wx-st.wx-air{background:linear-gradient(140deg,#33B078,#5AD59B);}
.wx-st:nth-child(1){animation-delay:.05s;}
.wx-st:nth-child(2){animation-delay:.13s;}
.wx-st:nth-child(3){animation-delay:.21s;}
@media (hover:hover) and (pointer:fine){.wx-st:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(60,90,200,.28);}}
.wx-st:active{transform:scale(.96);}
@keyframes msIn{from{opacity:0;transform:translateY(9px) scale(.96);}to{opacity:1;transform:translateY(0) scale(1);}}
@media (prefers-reduced-motion:reduce){.wx-st{animation:none;transition:none;}}
.wx-chart-section{width:100%;margin-top:10px;display:flex;flex-direction:column;gap:6px;}
.wx-chart-head{display:flex;align-items:center;justify-content:space-between;}
.wx-chart-title{font-size:10.5px;color:var(--text3);letter-spacing:.1em;text-transform:uppercase;font-weight:600;}
.wx-live{font-size:10.5px;color:var(--text3);}
.wx-chart-wrap{position:relative;}
.wx-chart{width:100%;height:90px;display:block;border-radius:12px;background:linear-gradient(180deg, rgba(118,110,240,.07), rgba(255,255,255,0));}
.wx-chart .gridline{stroke:rgba(120,135,160,.10);stroke-width:1;}
.wx-chart .wxp{fill:none;stroke:url(#wxgrad);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 5px 10px rgba(106,120,230,.35));}
.wx-chart .wxa{fill:url(#wxgrada);}
.wx-chart .wxt{font-size:10.5px;fill:#1080E7;font-weight:700;font-variant-numeric:tabular-nums;text-anchor:middle;}
.wx-chart .wxl{font-size:8.5px;fill:var(--text3);text-anchor:middle;}
.wx-chart .wxnow{stroke:#1080E7;stroke-width:1;stroke-dasharray:3 3;opacity:.6;}
.wx-chart .wxnowd{fill:#1080E7;stroke:#fff;stroke-width:1.5;}
.wx-chart .wxnowt{font-size:9px;fill:#1080E7;font-weight:700;text-anchor:middle;}
.wx-day{display:flex;}
.wx-day .d{flex:1;text-align:center;padding:2px 6px;}
.wx-day .d:first-child{padding-left:0;}
.wx-day .d .dd{font-size:10px;color:var(--text3);letter-spacing:.02em;}
.wx-day .d .di{font-size:17px;line-height:1.2;margin:2px 0;}
.wx-day .d .dt{font-size:10.5px;color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;}
.wx-day .d .dt em{font-style:normal;color:var(--text3);font-weight:500;margin-left:3px;}
.wx-foot{border-top:1px solid rgba(120,135,160,.18);margin-top:8px;padding-top:8px;display:flex;justify-content:space-between;gap:12px;align-items:center;}
.wx-info{font-size:10.5px;color:var(--text3);display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap;}
.wx-info b{font-weight:600;color:var(--text2);letter-spacing:.02em;}
.wx-info em{font-style:normal;color:var(--text);font-weight:700;}
.card[data-key="weather"]{background:linear-gradient(175deg, rgba(255,255,255,.97), rgba(248,250,253,.93));}
body.dark .card[data-key="weather"]{background:linear-gradient(175deg, rgba(19,27,45,.97), rgba(15,22,38,.93));}
@media(max-width:680px){.wx-now{flex-wrap:wrap;gap:14px;}.wx-now-meta{margin-left:0;text-align:left;align-items:flex-start;width:100%;}.wx-foot{flex-wrap:wrap;gap:10px;}.wx-day{flex-wrap:wrap;row-gap:10px;}}
body.dark .wx-ico-badge{box-shadow:0 6px 18px rgba(0,0,0,.35);}
body.dark .wx-temp{color:#EAF3FF;}
body.dark .wx-feels{color:#8A99B0;}
body.dark .wx-city{color:#EAF3FF;}
body.dark .wx-st{color:#fff;}
body.dark .wx-st b{color:#fff;}
body.dark .wx-day .d .dt{color:#EAF3FF;}
body.dark .wx-day .d .dt em{color:#7C8CA5;}
body.dark .wx-chart .gridline{stroke:rgba(90,130,200,.14);}
/* ===== 高套视联网驾驶舱（侧栏跳转子界面） ===== */
.ck-overlay{--cb:#1080E7;--cb2:#2B91F0;--cc:#4FA8FF;position:fixed;inset:0;z-index:150;display:none;background:linear-gradient(165deg,#EDF3FB,#E7EDF5);overflow:auto;}
.ck-overlay.open{display:block;}
.ck-shell{max-width:calc(100vw - 56px);margin:0 auto;padding:22px 22px 40px;}
.ck-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.ck-back{position:fixed;right:30px;bottom:30px;z-index:210;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(16,128,231,.18);background:rgba(255,255,255,.88);backdrop-filter:blur(10px);color:var(--cb);border-radius:999px;padding:13px 22px;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 12px 30px rgba(16,128,231,.22);transition:transform 240ms var(--ease-out),box-shadow 240ms var(--ease-out),opacity 240ms var(--ease-out);}
@keyframes ckBackIn{from{opacity:0;transform:translateY(16px) scale(.95);}to{opacity:1;transform:translateY(0) scale(1);}}
.ck-overlay.open .ck-back{animation:ckBackIn 260ms var(--ease-out) backwards;}
@media (prefers-reduced-motion:reduce){.ck-overlay.open .ck-back{animation:none;}}
.ck-back .ic{display:inline-flex;line-height:1;}
.ck-back:active{transform:scale(.96);}

/* ===== 万年历 ===== */
.cal-overlay{--cb:#1080E7;--cb2:#2B91F0;--cc:#4FA8FF;position:fixed;inset:0;z-index:160;display:none;background:linear-gradient(165deg,#EDF3FB,#E7EDF5);overflow:auto;}
.cal-overlay.open{display:block;}
.cal-shell{max-width:1180px;margin:0 auto;padding:22px 22px 40px;}
.cal-top{display:flex;align-items:center;gap:16px;margin-bottom:18px;}
.cal-brand{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:800;color:var(--cb);}
.cal-brand .ck-logo{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--cb),var(--cb2));color:#fff;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:800;box-shadow:0 8px 20px rgba(16,128,231,.3);}
.cal-nav{display:flex;align-items:center;gap:8px;margin-left:auto;}
.cal-navbtn{width:34px;height:34px;border-radius:10px;background:#fff;border:1px solid var(--line);color:var(--cb);font-size:18px;font-weight:800;cursor:pointer;transition:all 180ms var(--ease-out);display:flex;align-items:center;justify-content:center;line-height:1;}
.cal-navbtn:hover{background:var(--cb);color:#fff;transform:translateY(-1px);}
.cal-navbtn:active{transform:scale(.94);}
.cal-today{height:34px;padding:0 14px;border-radius:999px;background:rgba(16,128,231,.10);border:1px solid rgba(16,128,231,.22);color:var(--cb);font-size:13px;font-weight:700;cursor:pointer;transition:all 180ms var(--ease-out);}
.cal-today:hover{background:var(--cb);color:#fff;}
.cal-title{font-size:15px;font-weight:800;color:var(--text);min-width:150px;}
.cal-layout{display:flex;flex-direction:column;gap:16px;align-items:stretch;}
.cal-main{background:linear-gradient(180deg,#fff,#F8FAFD);border:1px solid rgba(255,255,255,.85);border-radius:20px;box-shadow:0 18px 44px rgba(60,90,130,.12);padding:18px 20px;}
.cal-weekrow{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:8px;}
.cal-weekrow .cw{text-align:center;font-size:11px;font-weight:700;color:var(--text3);padding:6px 0;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;grid-auto-rows:minmax(64px,auto);}
.cal-cell{position:relative;border-radius:14px;padding:8px 6px 6px;text-align:center;cursor:pointer;transition:background 160ms var(--ease-out),transform 160ms var(--ease-out);background:#F7F9FC;border:1px solid transparent;}
.cal-cell:hover{background:rgba(16,128,231,.09);transform:translateY(-2px);}
.cal-cell.empty{background:transparent;cursor:default;pointer-events:none;}
.cal-cell.today{background:linear-gradient(140deg,var(--cb),var(--cb2));box-shadow:0 8px 20px rgba(16,128,231,.32);}
.cal-cell.today .d{color:#fff;font-weight:800;}
.cal-cell.today .l{color:rgba(255,255,255,.92);}
.cal-cell.today .tt{color:rgba(255,255,255,.95);}
.cal-cell.selected{border-color:var(--cb);box-shadow:0 0 0 2px rgba(16,128,231,.25);}
.cal-cell.sunday .d{color:#D4574F;}
.cal-cell.today.sunday .d{color:#fff;}
.cal-cell .d{font-size:15px;font-weight:700;color:var(--text);}
.cal-cell .l{font-size:10px;color:var(--text3);margin-top:2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.cal-cell .tt{position:absolute;top:5px;right:6px;font-size:8.5px;color:var(--cb);font-weight:700;}
.cal-cell.holiday{background:rgba(212,87,79,.06);}
.cal-side{background:linear-gradient(180deg,#fff,#F8FAFD);border:1px solid rgba(255,255,255,.85);border-radius:20px;box-shadow:0 18px 44px rgba(60,90,130,.12);padding:20px;display:grid;grid-template-columns:repeat(12,1fr);gap:16px;align-items:start;}
/* 上：横排头部（日期+干支+标签） */
.cal-side .cal-dayhead{grid-column:span 4;text-align:left;margin-bottom:0;display:flex;flex-direction:column;justify-content:center;padding:8px 0;}
.cal-side .cd-solartext{grid-column:span 4;text-align:center;margin:0;align-self:center;font-size:12.5px;}
.cal-side .cal-ganzhi{grid-column:span 4;text-align:center;margin:0;align-self:center;font-size:12.5px;}
.cal-side .cal-tags{grid-column:span 12;justify-content:flex-start;margin-bottom:0;padding:12px 0;border-bottom:1px dashed var(--line);}
/* 中：宜忌 + 节日 + 信息 横排 */
.cal-side .cal-yiji{grid-column:span 9;display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.cal-side .cal-fest{grid-column:span 3;margin:0;flex-direction:column;align-items:flex-start;gap:5px;}
.cal-side .cal-info-grid{grid-column:span 12;grid-template-columns:repeat(3,1fr);margin:0;}
.cal-side .cal-info.full{grid-column:span 12;}
/* 下：时辰 + 名词解释 并排 */
.cal-side .cal-shichen{grid-column:span 6;}
.cal-side .cal-term{grid-column:span 6;margin-top:0;border-top:none;}
.cal-dayhead{text-align:center;margin-bottom:12px;}
.cal-dayhead .cd-num{font-size:30px;font-weight:800;color:var(--cb);line-height:1.1;}
.cal-dayhead .cd-lunar{font-size:13px;color:var(--text2);margin-top:4px;}
.cal-ganzhi{text-align:center;font-size:13px;color:var(--text3);padding:10px 0 14px;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);margin-bottom:14px;letter-spacing:.5px;}
.cal-yiji{display:flex;flex-direction:column;gap:10px;}
.yiji-block{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border-radius:13px;}
.yiji-block.yi{background:rgba(35,211,245,.10);}
.yiji-block.ji{background:rgba(212,87,79,.08);}
.yj-tag{flex-shrink:0;width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#fff;}
.yi .yj-tag{background:linear-gradient(135deg,#22D3F5,#2E8DFF);}
.ji .yj-tag{background:linear-gradient(135deg,#E46A5B,#D4574F);}
.yj-txt{font-size:12.5px;color:var(--text2);line-height:1.55;}
body.dark .cal-overlay{background:linear-gradient(165deg,#0E1728,#0B1424);}
body.dark .cal-main,body.dark .cal-side{background:#111B33;border-color:rgba(70,120,200,.18);}
body.dark .cal-cell{background:#16233B;}
body.dark .cal-cell:hover{background:rgba(20,100,220,.2);}
body.dark .cal-navbtn{background:#16233B;border-color:rgba(70,120,200,.18);color:#7DB4F5;}
body.dark .cal-today{background:rgba(30,90,180,.3);border-color:rgba(70,120,200,.3);color:#7DB4F5;}
body.dark .cal-title{color:#EAF3FF;}
body.dark .cal-weekrow .cw{color:#5E7189;}
body.dark .cal-cell .d{color:#DCE6F2;}
body.dark .cal-cell .l{color:#5E7189;}
body.dark .cal-cell.sunday .d{color:#E46A5B;}
body.dark .cal-cell.today.sunday .d{color:#fff;}
body.dark .cal-dayhead .cd-num{color:#4FA8FF;}
body.dark .cal-dayhead .cd-lunar{color:#93A6BD;}
body.dark .cal-ganzhi{color:#5E7189;}
body.dark .yj-txt{color:#93A6BD;}
@media (max-width:820px){.cal-layout{gap:14px;}.cal-title{min-width:auto;}}
/* ---- 万年历 · 丰富黄历面板 ---- */
.cd-wk{font-size:13px;color:var(--text2);margin-top:2px;font-weight:700;}
.cd-solartext{font-size:12px;color:var(--text3);text-align:center;margin-bottom:8px;}
.cal-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:12px;padding-bottom:12px;border-bottom:1px dashed var(--line);}
.cg-tag{font-size:11px;font-weight:600;padding:3px 9px;border-radius:8px;background:rgba(16,128,231,.08);color:var(--cb);border:1px solid rgba(16,128,231,.14);}
.cg-tag:nth-child(2){background:rgba(124,107,255,.10);color:#7C6BFF;border-color:rgba(124,107,255,.20);}
.cg-tag:nth-child(3){background:rgba(35,211,245,.12);color:#0E9BB5;border-color:rgba(35,211,245,.22);}
.cg-tag:nth-child(4){background:rgba(212,87,79,.08);color:#D4574F;border-color:rgba(212,87,79,.18);}
.cg-tag:nth-child(5){background:rgba(53,224,176,.10);color:#0FBF8A;border-color:rgba(53,224,176,.20);}
.cal-fest{display:flex;align-items:center;gap:9px;margin-bottom:12px;padding:9px 12px;border-radius:13px;background:linear-gradient(120deg,rgba(212,87,79,.10),rgba(255,180,80,.08));border:1px solid rgba(212,87,79,.14);}
.cf-label{font-size:11px;color:var(--text3);font-weight:600;flex-shrink:0;}
.cf-val{font-size:14px;color:#D4574F;font-weight:800;}
.cal-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:12px;}
.cal-info{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:11px;background:#F6F8FB;border:1px solid #EEF1F6;}
.ci-k{font-size:10px;color:var(--text3);font-weight:600;letter-spacing:.02em;}
.ci-v{font-size:12.5px;color:var(--text);font-weight:700;}
.ci-v.pz{font-size:11.5px;font-weight:600;color:#C27A2B;}
.cg-tag:nth-child(6){background:rgba(124,107,255,.10);color:#6C5CE7;border-color:rgba(124,107,255,.20);}
.cal-info.full{grid-column:1 / -1;}
.cal-info .ci-v.tj{color:#6C5CE7;}
.cal-info .ci-v.wt{color:var(--cb);}
.cal-info .ci-v.sx{color:#0C9E73;}
.cal-term{border-top:1px dashed var(--line);padding-top:12px;margin-top:14px;}
.cal-term .ct-h{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:var(--text2);margin-bottom:8px;}
.cal-term .ct-h i{width:6px;height:6px;border-radius:2px;background:linear-gradient(140deg,var(--cb),var(--cc));}
.cal-term .ct-list{display:flex;flex-direction:column;gap:6px;}
.cal-term .ct-item{font-size:11.5px;color:var(--text3);line-height:1.55;}
.cal-term .ct-item b{color:var(--text2);font-weight:800;}
.cal-shichen{border-top:1px dashed var(--line);padding-top:12px;}
.cs-title{font-size:12px;font-weight:800;color:var(--text2);margin-bottom:8px;}
.cs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;}
.sc-item{display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 2px;border-radius:8px;background:#F7F9FC;font-size:12px;color:var(--cb);font-weight:700;}
.sc-item em{font-style:normal;font-size:9px;color:var(--text3);font-weight:400;}
body.dark .cd-wk{color:#93A6BD;}
body.dark .cd-solartext{color:#5E7189;}
body.dark .cal-info{background:#16233B;border-color:rgba(70,120,200,.12);}
body.dark .ci-k{color:#5E7189;}
body.dark .ci-v{color:#DCE6F2;}
body.dark .ci-v.pz{color:#E0A455;}
body.dark .cal-term{border-color:rgba(70,120,200,.16);}
body.dark .cal-term .ct-h{color:#93A6BD;}
body.dark .cal-term .ct-item{color:#5E7189;}
body.dark .cal-term .ct-item b{color:#93A6BD;}
body.dark .cal-info .ci-v.tj{color:#9F93F0;}
body.dark .cal-info .ci-v.wt{color:#7DB4F5;}
body.dark .cal-info .ci-v.sx{color:#35E0B0;}
body.dark .sc-item{background:#16233B;color:#4FA8FF;}
body.dark .sc-item em{color:#5E7189;}
body.dark .cg-tag{background:rgba(30,90,180,.25);color:#7DB4F5;border-color:rgba(70,120,200,.25);}
@media (hover:hover) and (pointer:fine){.ck-back:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 20px 44px rgba(16,128,231,.32);}}
.ck-brand{display:flex;align-items:center;gap:11px;font-size:18px;font-weight:800;color:var(--cb);}
.ck-logo{width:36px;height:36px;border-radius:11px;background:linear-gradient(140deg,var(--cb),var(--cb2));display:flex;align-items:center;justify-content:center;color:#fff;font-size:17px;font-weight:800;box-shadow:0 8px 18px rgba(16,128,231,.3);}
.ck-tabs{display:flex;gap:7px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px;margin-left:auto;}
.ck-tab{border:none;background:none;padding:8px 16px;border-radius:999px;font-size:13px;font-weight:700;color:var(--text2);cursor:pointer;transition:all 180ms var(--ease-out);}
.ck-tab:hover{color:var(--cb);}
.ck-tab.active{background:var(--cb);color:#fff;box-shadow:0 6px 14px rgba(16,128,231,.3);}
.ck-view{display:none;}
.ck-view.active{display:block;}
.ck-card{background:linear-gradient(180deg,#fff,#F8FAFD);border:1px solid rgba(255,255,255,.85);border-radius:20px;box-shadow:0 18px 44px rgba(60,90,130,.12);padding:18px 20px;}
.ck-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.ck-dot{width:9px;height:9px;border-radius:3px;background:linear-gradient(140deg,var(--cb),var(--cc));}
.ck-h-t{font-size:15px;font-weight:800;}
/* 月份切换器：toolbar 内联并排，与说明文字同字体 */
.ck-month-row{display:flex;align-items:center;gap:6px;margin:-4px 0 12px;font-size:12px;}
.ck-month-row .ck-mlabel{font-size:12px;color:var(--text3);font-weight:600;margin-right:2px;}
.ck-month-row .ck-mbtn{width:22px;height:22px;border:none;background:rgba(16,128,231,.10);color:var(--cb);font-size:14px;font-weight:800;cursor:pointer;border-radius:6px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background 150ms var(--ease-out);padding:0;}
.ck-month-row .ck-mbtn:hover{background:rgba(16,128,231,.18);}
.ck-month-row .ck-mbtn:active{transform:scale(.9);}
.ck-month-row .ck-mtext{font-size:12px;font-weight:700;color:var(--cb);min-width:78px;text-align:center;font-variant-numeric:tabular-nums;}
.ck-h-s{font-size:12px;color:var(--text3);margin-left:auto;}
.ck-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.ck-note{font-size:12px;color:var(--text3);margin-left:auto;}
.ck-sum{margin-left:auto;font-size:13px;color:var(--text2);}
.ck-sum b{color:var(--cb);font-size:16px;margin-left:6px;}
.ck-wrap{overflow-x:auto;}
.ck-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;min-width:980px;}
.ck-table th{background:linear-gradient(120deg,#1080E7,#2B91F0);color:#fff;font-weight:600;font-size:11px;padding:10px 8px;text-align:center;border:none;white-space:nowrap;letter-spacing:.02em;}
.ck-table th:first-child{border-top-left-radius:10px;}
.ck-table th:last-child{border-top-right-radius:10px;}
.ck-table td{padding:9px 8px;border-bottom:1px solid #EEF1F6;text-align:center;vertical-align:middle;color:var(--text);white-space:nowrap;transition:background 160ms var(--ease-out);}
.ck-table tbody tr:nth-child(even){background:#F7F9FC;}
.ck-table tbody tr:hover{background:rgba(16,128,231,.07);}
.ck-table tbody tr:last-child td{border-bottom:none;}
.ck-table tbody tr{transition:background 160ms var(--ease-out);}
.ck-table tbody tr td.name{font-weight:700;text-align:left;}
.ck-table tbody tr td.role{color:var(--text3);font-size:11px;}
.ck-table .mp{color:var(--cb);font-weight:700;}
.ck-table .mn{color:#D4574F;}
.ck-table .mt{font-weight:800;color:var(--cb);}
/* 双网金额：纯色按值高低（高=深蓝，低=浅蓝），数字本身无渐变 */
.ck-table .amtcell{font-weight:800;}
.ck-table .amtcell .amt-num{display:inline-block;font-variant-numeric:tabular-nums;}
.ck-table .amtcell.ag5{color:#0A5FB4;}
.ck-table .amtcell.ag4{color:#1E78C6;}
.ck-table .amtcell.ag3{color:#3C92D6;}
.ck-table .amtcell.ag2{color:#63ACE4;}
.ck-table .amtcell.ag1{color:#90C4EE;}
.ck-in{width:82px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;font-size:13px;color:var(--cb);font-weight:700;text-align:center;outline:none;background:#fff;transition:border-color 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.ck-in:focus{border-color:var(--cb);box-shadow:0 0 0 3px rgba(16,128,231,.14);}
.ck-in-n{width:100%;min-width:72px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;font-size:13px;text-align:center;outline:none;background:#fff;}
.ck-in-n:focus{border-color:var(--cb);box-shadow:0 0 0 3px rgba(16,128,231,.12);}
.ck-rate{display:inline-flex;align-items:center;gap:8px;min-width:126px;}
.ck-rate .bar{flex:1;height:10px;border-radius:999px;background:#E9EEF4;overflow:hidden;min-width:62px;box-shadow:inset 0 1px 2px rgba(0,0,0,.06);}
.ck-rate .bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--cb),var(--cc));width:0;position:relative;overflow:hidden;transition:width 760ms var(--ease-out);box-shadow:0 0 10px rgba(16,128,231,.4);}
.ck-rate .bar i::after{content:'';position:absolute;top:0;left:0;width:45%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transform:translateX(-160%) skewX(-18deg);animation:ckShimmer 2.8s linear infinite;}
@keyframes ckShimmer{0%{transform:translateX(-160%) skewX(-18deg);}100%{transform:translateX(340%) skewX(-18deg);}}
@media (prefers-reduced-motion:reduce){.ck-rate .bar i::after{animation:none;}}
/* 高套完成率：截图红色渐变（从浅到深，100%满转深绯红） */
.ck-rate.r-gt .bar i{background:linear-gradient(90deg,#FFF0F2,#FFC7B8 24%,#FF7F9C 50%,#FB5B5E 76%,#D9363E);}
.ck-rate.r-gt .bar i.full{background:linear-gradient(90deg,#FB5B5E,#E2404A 50%,#D9363E);box-shadow:0 0 12px rgba(217,54,62,.6);}
/* 视联网完成率：截图蓝色渐变（从浅到深，100%满转深海军蓝） */
.ck-rate.r-wt .bar i{background:linear-gradient(90deg,#E6F5FB,#CEE9FB 22%,#A5D2F1 42%,#77B7E3 62%,#4EA2D8 80%,#3991CC);}
.ck-rate.r-wt .bar i.full{background:linear-gradient(90deg,#3991CC,#2E81C2 40%,#1F78BC 70%,#1B60A1);box-shadow:0 0 12px rgba(43,129,194,.55);}
.ck-rate .num{font-size:12px;font-weight:700;color:var(--text);min-width:34px;text-align:right;font-variant-numeric:tabular-nums;}
/* 驾驶舱总览：行入场交错（emilkowalski stagger） */
.ck-inited tr{animation:ckRowIn 380ms var(--ease-out) both;}
.ck-inited tr:nth-child(1){animation-delay:.04s;}
.ck-inited tr:nth-child(2){animation-delay:.09s;}
.ck-inited tr:nth-child(3){animation-delay:.14s;}
.ck-inited tr:nth-child(4){animation-delay:.19s;}
.ck-inited tr:nth-child(5){animation-delay:.24s;}
.ck-inited tr:nth-child(n+6){animation-delay:.28s;}
@keyframes ckRowIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.ck-rate .bar i,.ck-inited tr{transition:none;animation:none;}}
.ck-add{border:none;border-radius:9px;padding:7px 14px;font-size:12.5px;font-weight:700;color:#fff;background:var(--cb);cursor:pointer;transition:transform 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.ck-add:active{transform:scale(.96);}
/* KPI 指标卡 */
.ck-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:14px;}
.ck-kpi{display:flex;align-items:center;justify-content:center;gap:28px;background:linear-gradient(160deg,#fff,#F6FAFF);border:1px solid rgba(255,255,255,.85);border-radius:16px;padding:14px 18px;box-shadow:0 10px 26px rgba(60,90,130,.1);transition:transform 200ms var(--ease-out),box-shadow 200ms var(--ease-out);}
.ck-kpi:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(60,90,130,.16);}
.k-txt{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;}
.k-sub{margin-top:4px;font-size:11px;font-weight:600;color:#8A94A6;letter-spacing:.2px;}
.k-ico{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.k-ico svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 2px rgba(0,0,0,.18));}
.kc1{background:linear-gradient(140deg,#1080E7,#2B91F0);box-shadow:0 6px 14px rgba(16,128,231,.35);}
.kc2{background:linear-gradient(140deg,#7C6BFF,#9B8CFF);box-shadow:0 6px 14px rgba(124,107,255,.35);}
.kc3{background:linear-gradient(140deg,#12B5A9,#2ED0C0);box-shadow:0 6px 14px rgba(18,181,169,.35);}
.kc4{background:linear-gradient(140deg,#F5A623,#FBBF45);box-shadow:0 6px 14px rgba(245,166,35,.35);}
.k-num{font-size:24px;font-weight:800;color:#1A1F2B;line-height:1.1;font-variant-numeric:tabular-nums;}
.k-num.kb{color:#1080E7;}
.k-num.kt{color:#12B5A9;}
.k-num.kg{color:#E0902A;}
.k-lab{font-size:11.5px;color:#8A94A6;margin-top:2px;}
/* 排名 & 姓名头像 */
.ck-table td.ckr,.ck-table th{text-align:center;}
.ckr{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:7px;font-size:11px;font-weight:800;color:#fff;background:#AEB9CC;}
.ckr.r1{background:linear-gradient(140deg,#F5A623,#FFD24A);}
.ckr.r2{background:linear-gradient(140deg,#9DB4CC,#B8CBDE);}
.ckr.r3{background:linear-gradient(140deg,#C98B5E,#E0A67A);}
.cknm{display:inline-flex;align-items:center;gap:8px;justify-content:center;font-weight:700;text-align:center;color:var(--text);}
.ck-table td.nm{text-align:center;}
.ck-table th.thnm{text-align:center;}
.ck-table td.idx{width:38px;}
.ck-ava{width:26px;height:26px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;flex-shrink:0;}
body.dark .ck-kpi{background:linear-gradient(160deg,#111B33,#0F192E);border-color:rgba(70,120,200,.18);}
body.dark .k-num{color:#DCE6F2;}
body.dark .k-lab{color:#7C8CA5;}
@media(max-width:720px){.ck-kpis{grid-template-columns:repeat(2,1fr);}}
.ck-rule{background:linear-gradient(135deg,#F4F9FF,#EEF4FF);border:1px solid #D8E6FB;border-radius:12px;padding:11px 14px;margin-bottom:14px;font-size:12.5px;color:#5B6474;line-height:1.7;}
.ck-rule b{color:var(--cb);}
.ck-rule p{margin:2px 0;}
.ck-del{background:none;border:none;color:#D4574F;font-size:15px;cursor:pointer;font-weight:700;}
.ck-edit{border:none;background:rgba(16,128,231,.1);color:var(--cb);border-radius:9px;padding:6px 13px;font-size:12px;font-weight:700;cursor:pointer;transition:transform 160ms var(--ease-out),background 160ms var(--ease-out);}
.ck-edit:hover{background:rgba(16,128,231,.18);}
.ck-edit:active{transform:scale(.96);}
.ck-ok{border:none;background:var(--cb);color:#fff;border-radius:9px;padding:6px 13px;font-size:12px;font-weight:700;cursor:pointer;transition:transform 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.ck-ok:hover{box-shadow:0 8px 18px rgba(16,128,231,.3);}
.ck-ok:active{transform:scale(.96);}
.ck-empty{text-align:center;color:var(--text3);font-size:13px;padding:26px 0;}
/* 填报(晒单识别)弹窗 */
.fill-overlay{--cb:#1080E7;--cb2:#2B91F0;--cc:#4FA8FF;position:fixed;inset:0;z-index:180;display:none;overflow-y:auto;background:linear-gradient(165deg,#FBFDFF,#EFF3F8);}
.fill-overlay.open{display:block;}
.fill-shell{max-width:920px;margin:0 auto;padding:26px 22px 40px;}
.fill-top{display:flex;align-items:center;gap:14px;margin-bottom:18px;}
.fill-brand{display:flex;align-items:center;gap:11px;font-size:18px;font-weight:800;color:var(--cb);}
.fill-nav{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.fn-btn{border:none;border-radius:10px;padding:9px 14px;font-size:13px;font-weight:700;cursor:pointer;background:rgba(16,128,231,.08);color:var(--cb);border:1px solid rgba(16,128,231,.16);transition:transform 160ms var(--ease-out),background 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.fn-btn:hover{background:rgba(16,128,231,.16);transform:translateY(-1px);}
.fn-btn:active{transform:scale(.96);}
.fn-btn.fn-main{background:linear-gradient(120deg,var(--cb),var(--cb2));color:#fff;border-color:transparent;box-shadow:0 6px 16px rgba(16,128,231,.28);}
.fn-btn.fn-main:hover{box-shadow:0 8px 20px rgba(16,128,231,.36);}
.fn-sep{width:1px;height:22px;background:rgba(120,140,160,.22);margin:0 2px;}
.fill-close{margin-left:0;border:none;background:#fff;border:1px solid var(--line);color:var(--text2);border-radius:10px;padding:8px 14px;font-size:14px;font-weight:700;cursor:pointer;transition:transform 160ms var(--ease-out),background 160ms var(--ease-out),color 160ms var(--ease-out);}
.fill-close:hover{background:#1080E7;color:#fff;}
.fill-close:active{transform:scale(.96);}
.fill-body{display:flex;flex-direction:column;gap:16px;}
.fill-card{background:linear-gradient(180deg,#fff,#F8FAFD);border:1px solid rgba(255,255,255,.85);border-radius:20px;box-shadow:0 18px 44px rgba(60,90,130,.12);padding:18px 20px;}
.fill-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.fill-copy{margin-left:auto;border:none;background:rgba(16,128,231,.1);color:var(--cb);border-radius:9px;padding:6px 14px;font-size:12.5px;font-weight:700;cursor:pointer;transition:transform 160ms var(--ease-out),background 160ms var(--ease-out);}
.fill-copy:hover{background:rgba(16,128,231,.18);}
.fill-copy:active{transform:scale(.96);}
.fill-tabs{display:flex;gap:6px;margin-left:auto;}
.fill-tab{border:none;background:rgba(120,140,160,.1);color:var(--text2);border-radius:9px;padding:6px 13px;font-size:12.5px;font-weight:700;cursor:pointer;transition:transform 160ms var(--ease-out),background 160ms var(--ease-out),color 160ms var(--ease-out);}
.fill-tab:hover{background:rgba(16,128,231,.12);color:var(--cb);}
.fill-tab:active{transform:scale(.96);}
.fill-tab-on{background:var(--cb);color:#fff;box-shadow:0 6px 14px rgba(16,128,231,.28);}
.fill-tab-on:hover{background:var(--cb);color:#fff;}
#fillGo{background:linear-gradient(120deg,var(--cb),var(--cb2));padding:10px 20px;font-size:13px;box-shadow:0 8px 20px rgba(16,128,231,.28);border-radius:10px;}
#fillGo:hover{box-shadow:0 10px 26px rgba(16,128,231,.36);transform:translateY(-1px);}
#fillGo:active{transform:scale(.97);}
#fillText{background:#FBFDFF;}
.rp{display:flex;align-items:center;gap:8px;background:#F6F9FC;border:1px solid #E4ECF4;border-radius:10px;padding:8px 12px;margin-top:6px;font-size:12.5px;color:var(--text);}
.rp b{color:var(--cb);}
.fill-tpl{font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.7;color:var(--text2);background:#F6F9FC;border:1px dashed #D8E2EC;border-radius:12px;padding:14px 16px;margin:0;white-space:pre-wrap;word-break:break-all;}
.fill-ta{width:100%;min-height:180px;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.6;color:var(--text);outline:none;background:#fff;transition:border-color 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.fill-ta:focus{border-color:var(--cb);box-shadow:0 0 0 3px rgba(16,128,231,.14);}
.fill-actions{display:flex;align-items:center;gap:14px;margin-top:12px;}
.fill-note{font-size:12.5px;color:var(--text3);}
.fill-preview{margin-top:14px;font-size:12.5px;color:var(--text2);}
.fill-preview .rp{display:flex;gap:10px;align-items:center;padding:7px 10px;border:1px solid #EEF1F6;border-radius:9px;margin-bottom:6px;background:#FAFCFE;}
.fill-preview .rp b{color:var(--cb);}
body.dark .fill-overlay{background:linear-gradient(165deg,#0E1728,#0B1424);}
body.dark .fill-card{background:#111B33;border-color:rgba(70,120,200,.18);}
body.dark .fill-tpl{background:#0B1424;border-color:rgba(70,120,200,.2);color:#93A6BD;}
body.dark .fill-ta{background:#0B1424;border-color:rgba(70,120,200,.2);color:#DCE6F2;}
body.dark .fill-close{background:#111B33;border-color:rgba(70,120,200,.2);color:#93A6BD;}
body.dark .ck-overlay{background:linear-gradient(165deg,#0E1728,#0B1424);}
/* ===== 报价查询视图 ===== */
.bj-tabs{display:flex;gap:6px;margin-left:auto;}
.bj-tab{border:none;background:rgba(16,128,231,.08);color:var(--text2);border-radius:9px;padding:6px 13px;font-size:12.5px;font-weight:700;cursor:pointer;transition:all .15s;}
.bj-tab:hover{background:rgba(16,128,231,.15);}
.bj-tab.active{background:var(--cb,#1080E7);color:#fff;box-shadow:0 6px 14px rgba(16,128,231,.28);}
.bj-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:8px 12px;margin-bottom:14px;box-shadow:0 2px 8px rgba(30,80,160,.04);}
.bj-head{position:sticky;top:0;z-index:30;background:linear-gradient(180deg,#EDF3FB 78%,rgba(237,243,251,0));padding:0 0 20px;margin:0 -6px 2px;padding-left:6px;padding-right:6px;}
body.dark .bj-head{background:linear-gradient(180deg,#0E1728 78%,rgba(14,23,40,0));}
.bj-search-ico{font-size:14px;opacity:.6;}
.bj-in{flex:1;border:none;outline:none;background:transparent;font-size:13.5px;color:var(--text);}
.bj-cart-badge{min-width:22px;height:22px;border-radius:11px;background:var(--cb,#1080E7);color:#fff;font-size:11.5px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 7px;}
.bj-body{display:grid;grid-template-columns:120px minmax(0,1fr) 300px;gap:14px;align-items:start;}
.bj-right{display:flex;flex-direction:column;gap:14px;position:sticky;top:124px;align-self:start;max-height:calc(100vh - 138px);overflow:auto;padding-right:2px;}
.bj-nav{background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px 0;position:sticky;top:124px;box-shadow:0 4px 16px rgba(30,80,160,.05);}
.bj-nav-item{padding:8px 12px;font-size:12.5px;color:var(--text2);cursor:pointer;border-left:3px solid transparent;transition:all .14s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bj-nav-item:hover{background:rgba(16,128,231,.06);color:var(--cb,#1080E7);}
.bj-nav-item.on{background:rgba(16,128,231,.1);color:var(--cb,#1080E7);font-weight:700;border-left-color:var(--cb,#1080E7);}
.bj-nav-item .bj-nv-cnt{float:right;font-size:10px;color:var(--text3);margin-left:6px;}
.bj-cat{display:flex;flex-direction:column;gap:18px;}
.bj-cat-head{font-size:12.5px;font-weight:800;color:#0A2540;margin-bottom:11px;display:flex;align-items:center;gap:7px;}
.bj-cat-head::before{content:'';width:4px;height:14px;border-radius:2px;background:var(--cb,#1080E7);}
.bj-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(152px,1fr));gap:12px;}
.bj-item{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .18s;position:relative;display:flex;flex-direction:column;box-shadow:0 2px 8px rgba(30,80,160,.04);}
.bj-item:hover{border-color:var(--cb,#1080E7);box-shadow:0 10px 22px rgba(16,128,231,.12);transform:translateY(-3px);}
.bj-item.off{opacity:.75;}
.bj-img{width:100%;aspect-ratio:1/1;background:linear-gradient(150deg,#F6F9FC,#EEF3F9);display:flex;align-items:center;justify-content:center;overflow:hidden;border-bottom:1px solid rgba(120,140,160,.1);}
.bj-img img{width:100%;height:100%;object-fit:cover;display:block;}
.bj-img .bj-em{font-size:46px;line-height:1;filter:drop-shadow(0 3px 6px rgba(16,128,231,.15));}
.bj-card-body{padding:9px 10px 11px;display:flex;flex-direction:column;gap:5px;flex:1;}
.bj-n{font-size:12.5px;font-weight:600;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4;min-height:35px;}
.bj-price{font-size:15px;font-weight:800;color:#F25022;line-height:1;}
.bj-price small{font-size:10px;color:#F25022;font-weight:700;}
.bj-ifee{font-size:9.5px;color:#B8860B;background:rgba(184,134,11,.12);border-radius:5px;padding:1px 6px;align-self:flex-start;}
.bj-add{margin-top:auto;background:var(--cb,#1080E7);color:#fff;border-radius:8px;padding:7px 0;font-size:12px;font-weight:700;text-align:center;box-shadow:0 4px 10px rgba(16,128,231,.22);transition:transform .12s;}
.bj-item:hover .bj-add{transform:scale(1.03);}
.bj-item.off .bj-add{background:rgba(45,139,111,.16);color:#2D8B6F;box-shadow:none;}
.bj-item .bj-b{font-size:10px;color:var(--text3);}
.bj-cart{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 14px 15px;box-shadow:0 4px 18px rgba(30,80,160,.05);}
.bj-cart-h{font-size:13px;font-weight:800;color:var(--text);padding-bottom:9px;border-bottom:1px solid rgba(120,140,160,.14);margin-bottom:11px;display:flex;justify-content:space-between;align-items:center;}
.bj-cart-h .bj-cnt{font-size:11px;color:var(--text3);font-weight:600;margin-left:6px;}
.bj-empty{padding:38px 10px 30px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text3);}
.bj-empty-ico{width:54px;height:54px;border-radius:14px;background:linear-gradient(145deg,rgba(16,128,231,.08),rgba(120,140,160,.06));display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:11px;}
.bj-empty-t{font-size:13px;color:var(--text2);font-weight:600;}
.bj-empty-s{font-size:11px;color:var(--text3);margin-top:4px;}
.bj-cart-rows{display:flex;flex-direction:column;gap:7px;max-height:46vh;overflow:auto;}
.bj-crow{display:flex;align-items:center;gap:7px;font-size:12.5px;}
.bj-cimg{width:44px;height:44px;border-radius:9px;background:linear-gradient(150deg,#F6F9FC,#EEF3F9);display:flex;align-items:center;justify-content:center;font-size:22px;overflow:hidden;flex-shrink:0;border:1px solid rgba(120,140,160,.12);}
.bj-cimg img{width:100%;height:100%;object-fit:cover;display:block;}
.bj-crow .bj-cn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);}
.bj-crow .bj-q{display:flex;align-items:center;gap:4px;}
.bj-qbtn{width:19px;height:19px;border-radius:5px;border:none;background:rgba(120,140,160,.12);color:var(--text2);font-weight:800;cursor:pointer;font-size:13px;line-height:1;}
.bj-qbtn:hover{background:rgba(16,128,231,.14);}
.bj-crow .bj-camt{min-width:56px;text-align:right;font-weight:700;color:#0A2540;}
.bj-crow .bj-cdel{color:#D4574F;cursor:pointer;font-size:13px;}
.bj-cart-total{display:flex;justify-content:space-between;align-items:center;margin-top:11px;padding-top:10px;border-top:1px dashed var(--line);font-size:13px;font-weight:800;color:#0A2540;}
.bj-cart-total b{color:var(--cb,#1080E7);font-size:17px;}
.bj-clear{border:none;background:transparent;color:var(--text3);border-radius:7px;padding:4px 8px;font-size:11.5px;font-weight:600;cursor:pointer;transition:all .14s;}
.bj-clear:hover{background:rgba(212,87,79,.1);color:#D4574F;}
body.dark .bj-item,body.dark .bj-cart,body.dark .bj-cat-head,body.dark .bj-crow .bj-cn,body.dark .bj-cart-total,body.dark .bj-item .bj-p{color:#EAF3FF}
/* ===== 达标测算视图 ===== */
.db-refresh{border:none;background:rgba(16,128,231,.1);color:var(--cb,#1080E7);border-radius:9px;padding:7px 13px;font-size:12.5px;font-weight:700;cursor:pointer;margin-left:auto;transition:all .15s;}
.db-refresh:hover{background:rgba(16,128,231,.2);}
.db-meta{display:flex;align-items:center;gap:9px;margin-bottom:14px;flex-wrap:wrap;}
.db-in{border:1px solid var(--line);border-radius:9px;padding:7px 10px;font-size:13px;color:var(--text);background:#fff;outline:none;}
.db-in:focus{border-color:var(--cb,#1080E7);box-shadow:0 0 0 3px rgba(16,128,231,.12);}
.db-lab{font-size:12px;color:var(--text3);font-weight:700;}
.db-tip{font-size:11px;color:var(--text3);}
.db-score{background:linear-gradient(140deg,#0A2540,#1080E7);border-radius:15px;padding:18px 20px;color:#fff;display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;box-shadow:0 10px 26px rgba(16,128,231,.24);}
.db-score .db-sv{font-size:36px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;}
.db-score .db-slab{font-size:12px;opacity:.85;margin-top:4px;}
.db-score .db-st{font-size:14px;font-weight:800;padding:7px 15px;border-radius:9px;background:rgba(255,255,255,.18);}
.db-score .db-st.ok{background:rgba(45,200,111,.85);}
.db-score .db-st.no{background:rgba(232,84,84,.85);}
.db-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:11px;margin-bottom:14px;}
.db-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px;}
.db-card .db-cn{font-size:13px;font-weight:800;color:var(--text);display:flex;justify-content:space-between;align-items:center;}
.db-card .db-cw{font-size:10.5px;color:var(--text3);font-weight:600;}
.db-card .db-cv{font-size:19px;font-weight:900;color:var(--cb,#1080E7);margin:7px 0 2px;font-variant-numeric:tabular-nums;}
.db-card .db-cv small{font-size:11px;color:var(--text3);font-weight:600;}
.db-card .db-cr{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px;}
.db-chip{font-size:10px;font-weight:700;border-radius:5px;padding:2px 6px;}
.db-chip.g{background:rgba(45,139,111,.13);color:#2D8B6F;}
.db-chip.y{background:rgba(184,134,11,.13);color:#B8860B;}
.db-chip.r{background:rgba(212,87,79,.13);color:#D4574F;}
.db-chip.b{background:rgba(16,128,231,.10);color:var(--cb,#1080E7);}
.db-hl{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;}
.db-hl-t{font-size:13px;font-weight:800;color:var(--text);margin-bottom:10px;}
.db-hl-row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text);margin-bottom:8px;}
.db-hl-b{font-weight:800;color:var(--cb,#1080E7);}
.db-hl-ok{color:#2D8B6F;font-weight:800;}
.db-low{background:linear-gradient(160deg,#FFF8F0,#FFEFE0);border:1px solid rgba(212,87,79,.2);border-radius:13px;padding:14px;margin-top:14px;}
.db-low-t{font-size:13px;font-weight:800;color:#B8860B;margin-bottom:9px;}
.db-low .db-lowp{font-size:12.5px;color:#8B6A0B;line-height:1.8;}
body.dark .db-card,body.dark .db-hl{background:#111B33;border-color:rgba(70,120,200,.16);}
.db-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:14px;}
.db-input-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;box-shadow:0 3px 12px rgba(30,80,160,.04);}
.db-ic-n{font-size:12px;font-weight:800;color:var(--text);display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:7px;}
.db-ic-w{font-size:10px;color:var(--text3);font-weight:600;position:static;white-space:nowrap;}
.db-ic-row{display:flex;align-items:center;gap:6px;margin-bottom:6px;}
.db-ic-row:last-child{margin-bottom:0;}
.db-ic-l{font-size:11px;color:var(--text3);font-weight:700;flex-shrink:0;min-width:36px;}
.db-ic-u{font-size:10px;color:var(--text3);flex-shrink:0;white-space:nowrap;}
.db-alt-row{flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:10px;margin-top:4px;}
.db-alt-t{font-size:12px;font-weight:800;color:var(--cb,#1080E7);}
.db-alt-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.db-alt-chip{font-size:10.5px;font-weight:700;border-radius:6px;padding:3px 8px;}
.db-alt-chip.ok{background:rgba(45,139,111,.13);color:#2D8B6F;}
.db-alt-chip.no{background:rgba(212,87,79,.13);color:#D4574F;}
.db-alt{display:flex;align-items:center;gap:4px;font-size:10.5px;color:var(--text2);cursor:pointer;}
.db-alt input{accent-color:var(--cb,#1080E7);}
.db-inputs input{flex:1;border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:13px;font-weight:700;color:var(--cb,#1080E7);outline:none;text-align:right;min-width:0;}
.db-inputs input:focus{border-color:var(--cb,#1080E7);box-shadow:0 0 0 3px rgba(16,128,231,.12);}
.db-foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start;margin-top:14px;}
.bj-instr{margin-top:3px;padding-left:30px;}
.bj-inst{font-size:11px;color:var(--text3);display:flex;align-items:center;gap:5px;cursor:pointer;}
.bj-inst input{width:14px;height:14px;accent-color:#1080E7;cursor:pointer;margin:0;}
.bj-del-row{width:100%;border-top:1px dashed var(--line);margin-top:6px;padding-top:6px;}
body.dark .db-input-card{background:#111B33;border-color:rgba(70,120,200,.16);}
body.dark .bj-item,body.dark .bj-cart{background:#111B33;border-color:rgba(70,120,200,.16);}
.bj-tbadge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;border-radius:8px;background:rgba(16,128,231,.18);color:var(--cb,#1080E7);font-size:10px;font-weight:800;margin-left:5px;padding:0 4px;vertical-align:middle;}
.bj-tab.active .bj-tbadge{background:rgba(255,255,255,.3);color:#fff;}
.bj-quote{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;margin-top:14px;align-items:stretch;}
.bj-qform,.bj-qsum{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 15px;box-shadow:0 4px 16px rgba(30,80,160,.05);}
.bj-qf-h{font-size:13px;font-weight:800;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:7px;}
.bj-qf-h::before{content:'';width:4px;height:14px;border-radius:2px;background:var(--cb,#1080E7);}
.bj-qf-row{display:flex;align-items:center;gap:9px;margin-bottom:7px;}
.bj-qf-l{font-size:12px;color:var(--text3);font-weight:700;min-width:64px;}
.bj-in2{flex:1;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:12.5px;color:var(--text);background:#fff;outline:none;}
.bj-in2:focus{border-color:var(--cb,#1080E7);box-shadow:0 0 0 3px rgba(16,128,231,.12);}
.bj-qsum-row{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--text2);padding:6px 0;}
.bj-qsum-row b{font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;}
.bj-qsum-row.total{border-top:1px dashed var(--line);margin-top:4px;padding-top:10px;font-size:14px;font-weight:800;color:#0A2540;}
.bj-qsum-row.total b{color:var(--cb,#1080E7);font-size:19px;}
.bj-gen{border:none;background:linear-gradient(120deg,#1080E7,#2B91F0);color:#fff;border-radius:10px;padding:10px;font-size:13.5px;font-weight:800;cursor:pointer;margin-top:10px;width:100%;transition:all .15s;}
.bj-gen:hover{box-shadow:0 8px 18px rgba(16,128,231,.3);}
.bj-gen:active{transform:scale(.98);}
.bj-preview{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin-top:14px;box-shadow:0 6px 22px rgba(30,80,160,.06);display:none;}
.bj-preview-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.bj-preview-h b{font-size:15px;font-weight:900;color:#0A2540;}
.bj-preview-sec{margin-bottom:12px;}
.bj-preview-sec-t{font-size:12px;font-weight:800;color:var(--cb,#1080E7);margin-bottom:6px;}
.bj-prevt{width:100%;border-collapse:collapse;font-size:12px;}
.bj-prevt th{text-align:left;color:var(--text3);font-weight:700;padding:5px 6px;border-bottom:1px solid var(--line);}
.bj-prevt td{padding:6px;border-bottom:1px solid rgba(120,140,160,.12);color:var(--text);}
.bj-prevt td.r{text-align:right;font-variant-numeric:tabular-nums;}
.bj-prevt tr.total td{font-weight:800;color:#0A2540;border-top:2px solid var(--cb,#1080E7);}
.bj-inst-tag{display:inline-block;font-size:10px;color:#B8860B;background:rgba(184,134,11,.12);border-radius:5px;padding:1px 6px;}
body.dark .bj-qform,body.dark .bj-qsum,body.dark .bj-preview{background:#111B33;border-color:rgba(70,120,200,.16);box-shadow:0 4px 16px rgba(0,0,0,.2);}
body.dark .bj-in2{background:#0D1730;border-color:rgba(70,120,200,.2);color:#DCE6F2;}
body.dark .bj-in2:focus{border-color:#1080E7;box-shadow:0 0 0 3px rgba(16,128,231,.18);}
body.dark .bj-in2::placeholder{color:#5E7189;}
body.dark .bj-qf-l{color:#5E7189;}
body.dark .bj-qf-h{color:#EAF3FF;}
body.dark .bj-cat-head{color:#EAF3FF;}
body.dark .bj-qsum-row{color:#93A6BD;}
body.dark .bj-qsum-row b{color:#DCE6F2;}
body.dark .bj-qsum-row.total{color:#EAF3FF;}
body.dark .bj-qsum-row.total b{color:#4FA8FF;}
body.dark .bj-cart-total{color:#EAF3FF;}
body.dark .bj-preview-h b{color:#EAF3FF;}
body.dark .bj-prevt th{color:#93A6BD;border-bottom-color:rgba(70,120,200,.16);}
body.dark .bj-prevt td{color:#DCE6F2;border-bottom-color:rgba(70,120,200,.1);}
body.dark .bj-prevt tr.total td{color:#EAF3FF;}
body.dark .bj-inst-tag{color:#F6BC3F;background:rgba(246,188,63,.12);}
body.dark .bj-m{color:#93A6BD;}
body.dark .bj-csub{color:#93A6BD;}
body.dark .bj-n{color:#DCE6F2;}
body.dark .bj-empty-t{color:#93A6BD;}
body.dark .bj-empty-s{color:#5E7189;}
body.dark .db-low{background:linear-gradient(160deg,rgba(212,87,79,.12),rgba(212,87,79,.06));border-color:rgba(212,87,79,.2);}
body.dark .db-low-t{color:#F6BC3F;}
body.dark .db-low .db-lowp{color:#B8966A;}
body.dark .db-inputs input{background:#0D1730;border-color:rgba(70,120,200,.2);color:#4FA8FF;}
body.dark .db-chip.g{background:rgba(45,139,111,.18);color:#35E0B0;}
body.dark .db-chip.y{background:rgba(184,134,11,.18);color:#F6BC3F;}
body.dark .db-chip.r{background:rgba(212,87,79,.18);color:#FF6E80;}
body.dark .db-chip.b{background:rgba(16,128,231,.15);color:#4FA8FF;}
body.dark .ops-note,body.dark .ops-empty{color:#8A99B0;}
body.dark ::-webkit-scrollbar{width:8px;height:8px;}
body.dark ::-webkit-scrollbar-track{background:#0B1424;}
body.dark ::-webkit-scrollbar-thumb{background:rgba(70,120,200,.25);border-radius:4px;}
body.dark ::-webkit-scrollbar-thumb:hover{background:rgba(70,120,200,.4);}
body.dark .ck-back{background:rgba(17,27,51,.82);border-color:rgba(70,120,200,.3);color:#7DB4F5;box-shadow:0 12px 30px rgba(0,0,0,.45);}
body.dark .ck-tabs,body.dark .ck-card{background:#111B33;border-color:rgba(70,120,200,.18);}
body.dark .ck-tab{color:#93A6BD;}
body.dark .ck-brand,body.dark .ck-h-t{color:#EAF3FF;}
body.dark .ck-table th{background:#16233B;color:#93A6BD;border-color:rgba(70,120,200,.16);}
body.dark .ck-table td{border-color:rgba(70,120,200,.12);color:#DCE6F2;}
body.dark .ck-in,body.dark .ck-in-n{background:#0E1830;color:#DCE6F2;border-color:rgba(70,120,200,.22);}
body.dark .ck-rule{background:rgba(16,60,120,.25);border-color:rgba(70,120,200,.22);color:#B9C6DA;}
body.dark .ck-rule b{color:#4FA8FF;}
body.dark .ck-rate .bar{background:rgba(70,120,200,.22);}
/* 卡片自定义 / 拖拽 */
.card[data-key].hidden{display:none!important;}
.card.dragging{opacity:.55;outline:2px dashed #1080E7;outline-offset:4px;}
.grid .card{cursor:grab;}
.grid .card:active{cursor:grabbing;}
.customize-panel{display:none;margin:0 0 14px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.8);box-shadow:0 14px 34px rgba(70,95,120,.1);backdrop-filter:blur(18px);}
.customize-panel.open{display:block;}
.customize-panel .cp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.customize-panel .cp-title{font-size:13px;font-weight:700;color:var(--text);}
.customize-chips{display:flex;flex-wrap:wrap;gap:8px;}
.customize-chips .chip{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;font-size:12.5px;color:var(--text2);background:#F4F6F9;border:1px solid var(--line);cursor:pointer;transition:background 180ms var(--ease-out),color 180ms var(--ease-out),border-color 180ms var(--ease-out);}
.customize-chips .chip:hover{background:#fff;color:#1080E7;}
.customize-chips .chip.off{opacity:.5;text-decoration:line-through;}
.customize-chips .chip .dot{width:7px;height:7px;border-radius:50%;background:#1080E7;}
.customize-chips .chip.off .dot{background:#C3C9D2;}
.cp-sep{margin:14px 0 10px;border-top:1px solid rgba(120,140,160,.12);}
.customize-chips .chip.on{background:#1080E7;color:#fff;border-color:#1080E7;}
.customize-chips .chip.on .dot{background:#fff;}
body.dark .customize-panel{background:rgba(15,23,40,.86);border-color:rgba(70,130,220,.16);}
body.dark .customize-chips .chip{background:rgba(16,26,44,.7);border-color:rgba(70,120,200,.16);color:#93A6BD;}
body.dark .customize-chips .chip:hover{background:rgba(20,60,120,.5);color:#EAF3FF;}
body.dark .wx-m{background:linear-gradient(150deg,#5A76E0,#7A96E8);}
body.dark .wx-m b{color:#EAF3FF;}
body.dark .wx-temp{color:#EAF3FF;}
body.dark .wx-feels{color:#93A6BD;}
body.dark .wx-chart{background:rgba(16,26,44,.5);border-color:rgba(70,120,200,.14);}

.customize-btn{color:#1080E7;font-weight:600;cursor:pointer;margin-left:4px;display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;background:rgba(16,128,231,.10);border:1px solid rgba(16,128,231,.2);}
.customize-btn:hover{background:rgba(16,128,231,.16);}
body.dark .customize-btn{background:rgba(20,60,120,.4);border-color:rgba(70,120,200,.25);color:#8ABFFF;}

/* ================= 悬浮「小西」豆包机器人（点击唤起智能问答） ================= */
/* 悬浮机器人按钮 */
.xx-fab{position:fixed;right:28px;bottom:30px;z-index:220;width:62px;height:62px;border-radius:50%;cursor:grab;
  display:flex;align-items:center;justify-content:center;border:none;touch-action:none;user-select:none;-webkit-user-select:none;
  background:linear-gradient(140deg,#F3F6FA,#FFFFFF);border:2px solid rgba(120,140,160,.26);box-shadow:0 14px 34px rgba(40,60,90,.20);
  transition:box-shadow 200ms var(--ease-out),transform 200ms var(--ease-out);}
.xx-fab .xx-fab-img{width:100%;height:100%;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#fff;pointer-events:none;}
.xx-fab .xx-fab-img img{width:100%;height:100%;object-fit:cover;display:block;}
.xx-fab:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 20px 44px rgba(40,60,90,.26);}
.xx-fab:active{cursor:grabbing;transform:scale(.95);}
.xx-fab.dragging{transition:none;box-shadow:0 24px 60px rgba(40,60,90,.32);transform:scale(1.05);}
.xx-fab .xx-fab-dot{position:absolute;top:5px;right:5px;width:12px;height:12px;border-radius:50%;background:#2EBC6B;pointer-events:none;
  border:2px solid #fff;box-shadow:0 0 8px rgba(46,188,107,.8);}
.xx-fab .xx-fab-ring{position:absolute;inset:-2px;border-radius:50%;border:2px solid rgba(120,140,160,.42);pointer-events:none;
  animation:xxRing 2.4s ease-out infinite;}
@keyframes xxRing{0%{transform:scale(1);opacity:.7;}70%{transform:scale(1.28);opacity:0;}100%{transform:scale(1.28);opacity:0;}}
.xx-fab-label{position:absolute;right:76px;top:50%;transform:translateY(-50%);white-space:nowrap;font-size:12.5px;font-weight:700;pointer-events:none;
  color:#4A5A6E;background:rgba(255,255,255,.92);border:1px solid rgba(120,140,160,.2);padding:6px 13px;border-radius:999px;
  box-shadow:0 8px 22px rgba(20,30,50,.14);backdrop-filter:blur(8px);opacity:0;transform:translateY(-50%) translateX(6px);
  transition:opacity 200ms var(--ease-out),transform 200ms var(--ease-out);}
.xx-fab:hover .xx-fab-label{opacity:1;transform:translateY(-50%) translateX(0);}
body.dark .xx-fab-label{background:rgba(16,26,44,.9);color:#C2CAD6;border-color:rgba(120,140,160,.3);}
/* 聊天面板 */
.xx-panel{position:fixed;right:28px;bottom:104px;z-index:225;width:380px;max-width:calc(100vw - 40px);height:540px;max-height:calc(100vh - 130px);
  display:flex;flex-direction:column;border-radius:20px;overflow:hidden;
  background:rgba(255,255,255,.94);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  border:1px solid rgba(255,255,255,.9);box-shadow:0 30px 80px rgba(40,60,90,.30);
  opacity:0;transform:translateY(14px) scale(.98);pointer-events:none;transition:opacity 240ms var(--ease-out),transform 240ms var(--ease-out);}
.xx-panel.open{opacity:1;transform:none;pointer-events:auto;}
.xx-panel-head{cursor:move;user-select:none;-webkit-user-select:none;touch-action:none;}
.xx-rz{position:absolute;z-index:60;background:transparent;}
.xx-rz.n{top:0;left:34%;right:34%;height:9px;cursor:ns-resize;}
.xx-rz.s{bottom:0;left:34%;right:34%;height:9px;cursor:ns-resize;}
.xx-rz.e{right:0;top:34%;bottom:34%;width:9px;cursor:ew-resize;}
.xx-rz.w{left:0;top:34%;bottom:34%;width:9px;cursor:ew-resize;}
.xx-rz.nw{top:0;left:0;width:16px;height:16px;cursor:nwse-resize;}
.xx-rz.ne{top:0;right:0;width:16px;height:16px;cursor:nesw-resize;}
.xx-rz.sw{bottom:0;left:0;width:16px;height:16px;cursor:nesw-resize;}
.xx-rz.se{bottom:0;right:0;width:16px;height:16px;cursor:nwse-resize;}
.xx-rz.nw::after,.xx-rz.se::after{content:'';position:absolute;width:9px;height:9px;border:2px solid rgba(120,140,160,.55);}
.xx-rz.nw::after{left:3px;top:3px;border-left:none;border-top:none;border-radius:0 0 3px 0;}
.xx-rz.se::after{right:3px;bottom:3px;border-right:none;border-bottom:none;border-radius:0 0 3px 0;}
.xx-panel:hover .xx-rz.nw::after,.xx-panel:hover .xx-rz.se::after{border-color:#1080E7;}
body.dark .xx-panel{background:rgba(16,26,44,.92);border-color:rgba(70,120,200,.22);}
.xx-panel-head{display:flex;align-items:center;gap:11px;padding:13px 15px;flex-shrink:0;
  background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);color:#1E2938;}
.xx-panel-head .xx-bot{width:38px;height:38px;border-radius:50%;background:#fff;overflow:hidden;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.85);box-shadow:0 2px 8px rgba(40,60,90,.14);}
.xx-panel-head .xx-bot img{width:100%;height:100%;object-fit:cover;display:block;}
.xx-panel-head .xx-t{flex:1;min-width:0;line-height:1.3;}
.xx-panel-head .xx-t-name{font-size:15px;font-weight:800;letter-spacing:.4px;display:flex;align-items:center;gap:6px;}
.xx-panel-head .xx-t-status{font-size:11px;opacity:.9;display:flex;align-items:center;gap:5px;}
.xx-panel-head .xx-t-status .dot{width:6px;height:6px;border-radius:50%;background:#5BF2A0;box-shadow:0 0 6px rgba(91,242,160,.9);}
.xx-panel-head .xx-close{width:30px;height:30px;border-radius:9px;border:none;background:rgba(120,140,160,.14);color:#4A5A6E;font-size:15px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 160ms var(--ease-out),transform 160ms var(--ease-out);}
.xx-panel-head .xx-close:hover{background:rgba(120,140,160,.26);transform:rotate(90deg);}
.xx-panel-body{flex:1;min-height:0;position:relative;background:#F6F8FA;}
body.dark .xx-panel-body{background:rgba(14,22,38,.5);}
.xx-panel-body .kb-chat{height:100%;padding:14px 14px 10px;gap:14px;position:relative;z-index:1;}

/* 小西欢迎头图（复用 kb-hero，配色改成小西蓝） */
.xx-panel .kb-hero{background:linear-gradient(165deg,rgba(120,140,160,.05),rgba(120,140,160,.02));border-radius:16px;padding:22px 14px 18px;margin-bottom:6px;}
.xx-panel .kb-hero .kh-logo{width:56px;height:56px;background:transparent;box-shadow:none;}
.xx-panel .kb-hero .kh-logo img{width:100%;height:100%;object-fit:contain;}
.xx-panel .kb-hero .kh-title{color:#1E2938;text-shadow:none;}
.xx-panel .kb-hero .kh-sub{color:#5B6474;}
.xx-panel .kb-hero .kh-sub b{color:#1E2938;}
.xx-panel .kb-starter{background:#fff;border:1px solid var(--line);color:#3A4456;}
.xx-panel .kb-starter:hover{color:#1E2938;border-color:rgba(120,140,160,.35);background:#F4F6F9;}
.xx-panel .kb-starter .st-ico{color:#4A5A6E;}
.xx-panel .kb-bubble .kb-ans-title{color:#1E2938;}
.xx-panel .kb-bubble .kb-sup{color:#6B7B90;}
.xx-panel .kb-bubble .kb-li::before{color:#7A8AA0;}
.xx-panel .kb-cursor{background:#9AA8BC;}
.xx-panel .kb-typing i{background:#9AA8BC;}
.xx-panel .kb-ref .rn{background:#EDF1F6;color:#5A6B80;}
.xx-panel .kb-more-q:hover{color:#1E2938;border-color:rgba(120,140,160,.35);background:#F4F6F9;}
.xx-panel .kb-act:hover{background:rgba(120,140,160,.12);color:#1E2938;}
.xx-panel .kb-chat-input:focus-within{border-color:rgba(120,140,160,.4);box-shadow:0 0 0 1px rgba(120,140,160,.2),0 0 12px rgba(120,140,160,.12);}
.xx-panel .kb-newchat:hover{color:#1E2938;}
.xx-panel .kb-chat-input{background:#fff;border:1px solid var(--line);}
.xx-panel .kb-chat-input:focus-within{border-color:rgba(120,140,160,.4);box-shadow:0 0 0 1px rgba(120,140,160,.2),0 0 12px rgba(120,140,160,.12);}
.xx-panel .kb-msg.ai .kb-bubble{background:#fff;border:1px solid var(--line);color:#1A1F2B;}
.xx-panel .kb-msg.user .kb-bubble{background:#4A5568;color:#fff;}
.xx-panel .kb-send{background:#4A5568;color:#fff;box-shadow:0 4px 14px rgba(20,25,35,.2);}
.xx-panel .kb-inputbar{border-top:1px solid var(--line);padding:10px 12px;background:#fff;}
body.dark .xx-panel .kb-inputbar{background:rgba(16,26,44,.7);border-color:rgba(70,120,200,.16);}
body.dark .xx-panel .kb-chat-input{background:rgba(14,22,38,.8);border-color:rgba(70,120,200,.2);}
body.dark .xx-panel .kb-chat-input input{color:#E6F0FC;}
body.dark .xx-panel .kb-msg.ai .kb-bubble{background:rgba(18,28,46,.8);border-color:rgba(70,120,200,.2);color:#E6F0FC;}
body.dark .xx-panel .kb-more-q{background:#10182A;border-color:rgba(70,120,200,.18);color:#93A6BD;}
@media(max-width:820px){.xx-panel{right:12px;bottom:96px;width:calc(100vw - 24px);}}
body.dark .xx-fab{background:linear-gradient(140deg,#1E71D6,#2B91F0 60%,#4AA4E8);border-color:rgba(90,160,240,.5);box-shadow:0 14px 34px rgba(16,128,231,.4);}

/* ---- 小西反馈按钮 + 助手转接按钮 ---- */
.xx-panel .kb-fb-up,.xx-panel .kb-fb-down{font-size:14px;padding:4px 8px;border-radius:8px;border:1px solid var(--line);background:transparent;cursor:pointer;transition:all 160ms var(--ease-out);line-height:1;}
.xx-panel .kb-fb-up:hover{background:rgba(46,188,107,.12);border-color:rgba(46,188,107,.4);}
.xx-panel .kb-fb-down:hover{background:rgba(212,87,79,.1);border-color:rgba(212,87,79,.3);}
.xx-panel .kb-fb-up.fb-active{background:#2EBC6B;color:#fff;border-color:#2EBC6B;}
.xx-panel .kb-fb-down.fb-active{background:#D4574F;color:#fff;border-color:#D4574F;}

/* 小西 · 上传截图识别（Tesseract OCR） */
.xx-ocr-btn{flex-shrink:0;width:34px;height:34px;border-radius:11px;border:1px solid rgba(16,128,231,.28);background:rgba(16,128,231,.07);color:#1080E7;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 160ms var(--ease-out);}
.xx-ocr-btn:hover{background:rgba(16,128,231,.16);border-color:rgba(16,128,231,.5);transform:translateY(-1px);}
.xx-ocr-btn svg{width:17px;height:17px;}
.xx-ocr-tip{position:fixed;right:44px;bottom:104px;z-index:226;display:none;align-items:center;gap:8px;padding:9px 14px;border-radius:12px;background:rgba(255,255,255,.95);border:1px solid rgba(16,128,231,.25);box-shadow:0 12px 30px rgba(20,30,50,.16);font-size:12.5px;color:#1080E7;font-weight:700;backdrop-filter:blur(10px);}
.xx-ocr-tip.show{display:flex;}
.xx-ocr-tip .spinner{width:14px;height:14px;border:2px solid rgba(16,128,231,.25);border-top-color:#1080E7;border-radius:50%;animation:lgspin .7s linear infinite;}
body.dark .xx-ocr-btn{background:rgba(16,128,231,.14);border-color:rgba(70,130,220,.35);color:#8ABFFF;}
body.dark .xx-ocr-tip{background:rgba(16,26,44,.92);border-color:rgba(70,130,220,.3);color:#8ABFFF;}

/* ================= 2026年度计划（计划/进度管理） ================= */
.pl-toolbar,.pl-gantt-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.pl-title{font-size:16px;font-weight:800;color:var(--text);letter-spacing:.01em;}
.pl-nav{border:none;background:rgba(120,140,160,.1);color:var(--text2);border-radius:9px;padding:7px 13px;font-size:12.5px;font-weight:700;cursor:pointer;transition:transform 160ms var(--ease-out),background 160ms var(--ease-out),color 160ms var(--ease-out);}
.pl-nav:hover{background:rgba(16,128,231,.12);color:var(--cb);}
.pl-nav:active{transform:scale(.96);}
.pl-nav.pl-today{background:var(--cb);color:#fff;}
.pl-nav.pl-today:hover{background:var(--cb);color:#fff;}
.pl-add{border:none;background:linear-gradient(120deg,#1080E7,#2B91F0);color:#fff;border-radius:9px;padding:7px 15px;font-size:12.5px;font-weight:700;cursor:pointer;box-shadow:0 6px 14px rgba(16,128,231,.25);transition:transform 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.pl-add:hover{box-shadow:0 9px 20px rgba(16,128,231,.34);}
.pl-add:active{transform:scale(.96);}
.pl-tip{font-size:11px;color:var(--text3);margin-left:auto;}
.pl-layout2{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start;}
.pl-week{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:5px;}
.pl-week span{text-align:center;font-size:10.5px;font-weight:700;color:var(--text2);padding:3px 0;}
.pl-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;grid-auto-rows:minmax(76px,auto);}
.pl-day{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:4px;cursor:pointer;transition:transform 160ms var(--ease-out),box-shadow 160ms var(--ease-out),border-color 160ms var(--ease-out);position:relative;}
.pl-day:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(30,80,160,.10);border-color:var(--cb);}
.pl-day.other{opacity:.42;background:transparent;}
.pl-day.today{background:linear-gradient(160deg, rgba(16,128,231,.12), rgba(47,145,240,.05));border-color:var(--cb);}
.pl-day.sel{border-color:var(--cb);box-shadow:0 0 0 2px rgba(16,128,231,.20);}
.pl-dnum{font-size:12px;font-weight:800;color:var(--text);display:flex;align-items:center;gap:4px;margin-bottom:3px;}
.pl-dnum .lh{font-size:9.5px;color:var(--text3);font-weight:600;}
.pl-dnum .td{font-size:8.5px;background:var(--cb);color:#fff;border-radius:6px;padding:1px 5px;font-weight:700;letter-spacing:.02em;}
.pl-chips{display:flex;flex-direction:column;gap:2px;max-height:56px;overflow:hidden;}
.pl-chip{display:flex;align-items:center;gap:5px;font-size:9.5px;font-weight:600;padding:2px 5px;border-radius:6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.pl-chip i{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:#fff;opacity:.9;}
.pl-chip.P1{background:#1F9D55;color:#fff;}
.pl-chip.P2{background:#2F7BFF;color:#fff;}
.pl-chip.P3{background:#D99A0B;color:#fff;}
.pl-chip.P4{background:#EA6A0E;color:#fff;}
.pl-chip.P5{background:#E23B3B;color:#fff;}
.pl-chip.done{opacity:.55;text-decoration:line-through;}
.pl-dmore{font-size:10px;color:var(--text3);margin-top:3px;font-weight:600;}
/* 侧栏：选中日 */
/* 录入列 + 水平时间轴 */
.pl-entry{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;}
.pl-hl{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin-top:16px;}
.pl-hl-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.pl-side-sub{font-size:12px;color:var(--text3);font-weight:700;}
.hl-track{position:relative;height:200px;margin-top:8px;}
.hl-track::before{content:"";position:absolute;left:12px;right:12px;top:150px;height:2px;background:linear-gradient(90deg,rgba(34,197,94,.42),rgba(16,128,231,.42),rgba(239,68,68,.42));border-radius:2px;}
.hl-tick{position:absolute;top:156px;transform:translateX(-50%);font-size:9.5px;color:var(--text3);font-weight:700;}
.hl-item{position:absolute;top:0;transform:translateX(-50%);width:150px;}
.hl-card{background:#F7FAFD;border:1px solid var(--line);border-radius:11px;padding:8px 9px;width:138px;box-sizing:border-box;margin:0 auto;transition:transform 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.hl-card:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(30,80,160,.10);}
.hl-ct{font-size:12px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hl-cm{font-size:10px;color:var(--text3);font-weight:800;font-variant-numeric:tabular-nums;margin:1px 0 3px;}
.hl-act{display:flex;gap:4px;margin-top:6px;align-items:center;justify-content:center;}
.hl-dot{position:absolute;top:150px;left:50%;transform:translate(-50%,-50%);width:13px;height:13px;border-radius:50%;background:var(--pc);border:2px solid #fff;box-shadow:0 0 0 2px var(--pc),0 0 12px var(--pc);z-index:1;animation:dotIn 260ms var(--ease-out);}
.hl-item.done .hl-card{opacity:.6;}
.hl-item.done .hl-ct{text-decoration:line-through;}
.hl-item.done .hl-dot{opacity:.6;}
body.dark .hl-card{background:#0E1730;border-color:rgba(70,120,200,.14);}
body.dark .pl-hl,body.dark .pl-entry{background:#101A33;border-color:rgba(70,120,200,.16);}
.pl-hl .pl-empty{padding:28px 10px;text-align:center;color:var(--text3);font-weight:600;}
/* ===== 月视图精修：简约·精致·氛围感 ===== */
.pl-layout2{gap:14px;}
.pl-week span{color:var(--text3);font-size:10px;font-weight:600;letter-spacing:.04em;}
.pl-day{border-radius:12px;padding:5px 4px;background:linear-gradient(180deg,var(--card),rgba(120,140,160,.03));border:1px solid rgba(120,140,160,.10);box-shadow:0 2px 8px rgba(40,60,90,.03);}
.pl-day:hover{transform:translateY(-2px);border-color:rgba(16,128,231,.40);box-shadow:0 10px 24px rgba(16,128,231,.10);}
.pl-day.today{background:linear-gradient(165deg,rgba(16,128,231,.14),rgba(14,165,166,.06));border-color:rgba(16,128,231,.50);}
.pl-day.sel{border-color:rgba(16,128,231,.55);box-shadow:0 0 0 2px rgba(16,128,231,.24),0 10px 26px rgba(16,128,231,.12);}
.pl-dnum{color:#33405A;font-weight:700;}
.pl-chip{border-radius:6px;}
.pl-chips{max-height:54px;}
.pl-entry{border-radius:16px;border:1px solid rgba(120,140,160,.12);box-shadow:0 6px 22px rgba(40,60,90,.05);background:linear-gradient(175deg,#FFFFFF,#F4F9FF);}
.pl-add-h .pl-add-t{color:#15344F;}
.pl-add-sub{color:#8A98AD;}
.pl-form .pl-in{background:#FBFDFF;border:1px solid rgba(120,140,160,.16);}
.pl-form .pl-in:focus{border-color:#1080E7;box-shadow:0 0 0 3px rgba(16,128,231,.12);}
.pl-save{background:linear-gradient(120deg,#1080E7,#0EA5A6);box-shadow:0 8px 20px rgba(16,128,231,.24);}
.pl-hl{border-radius:18px;border:1px solid rgba(120,140,160,.12);box-shadow:0 6px 22px rgba(40,60,90,.05);background:linear-gradient(175deg,#FFFFFF,#F2F8FE);margin-top:14px;}
.pl-hl-h .pl-side-date{color:#15344F;font-weight:800;}
.hl-track{position:relative;height:214px;margin-top:8px;}
.hl-track::before{content:"";position:absolute;left:10px;right:10px;top:150px;height:4px;border-radius:4px;background:linear-gradient(90deg,#22C55E,#3B82F6,#8B5CF6,#EC5FA8,#F59E0B,#EF4444);box-shadow:0 0 16px rgba(139,92,246,.30);}
.hl-track::after{content:"";position:absolute;top:147px;left:0;width:30%;height:10px;border-radius:6px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent);transform:translateX(-100%);animation:hlSweep 3.6s ease-in-out infinite;z-index:2;pointer-events:none;}
@keyframes hlSweep{0%{transform:translateX(-100%);}100%{transform:translateX(500%);}}
.hl-dot{animation:dotIn 260ms var(--ease-out),dotPulse 2.6s ease-in-out infinite .4s;}
@keyframes dotPulse{0%,100%{box-shadow:0 0 0 2px var(--pc),0 0 10px var(--pc);}50%{box-shadow:0 0 0 2px var(--pc),0 0 20px var(--pc);}}
.hl-item .hl-card{animation:hlCardIn 360ms var(--ease-out) backwards;animation-delay:var(--d);}
@keyframes hlCardIn{0%{opacity:0;transform:translateY(14px);}100%{opacity:1;transform:translateY(0);}}
body.dark .hl-track::before{background:linear-gradient(90deg,#22C55E,#3B82F6,#8B5CF6,#EC5FA8,#F59E0B,#EF4444);box-shadow:0 0 16px rgba(139,92,246,.40);}
@media (prefers-reduced-motion:reduce){.hl-track::before,.hl-track::after,.hl-dot,.hl-card{animation:none!important;}}
.hl-tick{color:#9AA8BC;font-size:9px;font-weight:600;}
.hl-card{border-radius:11px;border:1px solid rgba(120,140,160,.14);background:linear-gradient(180deg,#FFFFFF,#F5F9FE);box-shadow:0 3px 10px rgba(40,60,90,.04);}
.hl-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(16,128,231,.10);}
.hl-ct{color:#22364F;}
.hl-cm{color:#8A98AD;font-weight:700;}
body.dark .pl-entry,body.dark .pl-hl{background:linear-gradient(175deg,#0E1830,#0A1226);border-color:rgba(70,120,200,.16);box-shadow:0 6px 22px rgba(0,0,0,.20);}
body.dark .pl-day{background:linear-gradient(180deg,#0D1730,rgba(70,120,200,.03));border-color:rgba(70,120,200,.12);}
body.dark .hl-card{background:linear-gradient(180deg,#0F1A34,#0C142A);border-color:rgba(70,120,200,.14);}
.pl-dnum .nump{display:inline-flex;width:22px;height:22px;border-radius:50%;background:#1080E7;color:#fff;align-items:center;justify-content:center;font-weight:800;font-size:12px;box-shadow:0 0 0 3px rgba(16,128,231,.14),0 0 14px rgba(16,128,231,.35);}
.pl-title{font-size:16px;font-weight:800;color:#15344F;letter-spacing:.02em;}
body.dark .pl-title{color:#DCE6F2;}
.hl-card{position:relative;overflow:hidden;padding-left:12px;}
.hl-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--pc);border-radius:0 0 0 0;}
body.dark .hl-dot{background:var(--pc);}
.pl-tasks{display:flex;flex-direction:column;gap:8px;max-height:56vh;overflow:auto;padding-right:2px;}
.pl-task{background:#F7FAFD;border:1px solid var(--line);border-radius:11px;padding:9px 11px;transition:transform 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.pl-task:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(30,80,160,.08);}
.pl-task-top{display:flex;align-items:center;gap:7px;margin-bottom:5px;}
.pl-pdot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.pl-task-tt{font-size:13px;font-weight:700;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pl-task.done .pl-task-tt{text-decoration:line-through;opacity:.6;}
.pl-st{font-size:10px;font-weight:700;border-radius:6px;padding:2px 7px;flex-shrink:0;}
.pl-st.walk{background:rgba(16,128,231,.12);color:var(--cb);}
.pl-st.wair{background:rgba(120,140,160,.14);color:var(--text2);}
.pl-st.on{background:rgba(45,139,111,.16);color:#2D8B6F;}
.pl-task-meta{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--text3);flex-wrap:wrap;}
.pl-days{font-size:11px;font-weight:800;border-radius:6px;padding:2px 7px;}
.pl-days.overdue{background:#D4574F;color:#fff;}
.pl-days.wait{background:rgba(120,140,160,.14);color:var(--text2);}
.pl-days.ok{background:rgba(45,139,111,.15);color:#2D8B6F;}
.pl-task-note{font-size:11px;color:var(--text3);margin-top:4px;line-height:1.5;}
.pl-task-act{display:flex;gap:6px;margin-top:8px;}
.pl-mini{border:none;background:rgba(120,140,160,.1);color:var(--text2);border-radius:7px;padding:5px 9px;font-size:11px;font-weight:700;cursor:pointer;transition:transform 140ms var(--ease-out),background 140ms var(--ease-out);}
.pl-mini:hover{background:rgba(16,128,231,.12);color:var(--cb);}
.pl-mini:active{transform:scale(.95);}
.pl-mini.del{color:#D4574F;}
.pl-mini.del:hover{background:rgba(212,87,79,.12);}
/* 建计划表单 */
.pl-form{display:flex;flex-direction:column;gap:8px;margin-top:12px;}
.pl-form .pl-repeat{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);font-weight:600;cursor:pointer;user-select:none;}
.pl-form .pl-repeat input{width:15px;height:15px;accent-color:#1080E7;cursor:pointer;margin:0;}
.pl-form label{font-size:11px;color:var(--text3);font-weight:700;}
.pl-in{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 10px;font-size:12.5px;color:var(--text);background:#fff;outline:none;transition:border-color 160ms var(--ease-out),box-shadow 160ms var(--ease-out);box-sizing:border-box;}
.pl-in:focus{border-color:var(--cb);box-shadow:0 0 0 3px rgba(16,128,231,.12);}
.pl-in-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.pl-sel{appearance:none;background:#fff;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M1 1l4 4 4-4' stroke='%238899aa' fill='none' stroke-width='1.6'/></svg>");background-repeat:no-repeat;background-position:right 10px center;padding-right:26px;}
.pl-save{background:linear-gradient(120deg,#1080E7,#2B91F0);color:#fff;border:none;border-radius:9px;padding:9px;font-size:13px;font-weight:700;cursor:pointer;margin-top:4px;transition:transform 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.pl-save:hover{box-shadow:0 8px 18px rgba(16,128,231,.28);}
.pl-save:active{transform:scale(.97);}
.pl-in-row.three{grid-template-columns:1fr 1fr 96px;}
.pl-in-row.pri-row{grid-template-columns:1fr 78px;}
/* 侧栏日期头 */
.pl-side-date{font-size:15px;font-weight:800;color:var(--text);display:flex;align-items:center;gap:7px;}
.pl-side-date .wd{font-size:11px;color:var(--text3);font-weight:600;}
.today-tag{font-size:9.5px;background:var(--cb);color:#fff;border-radius:6px;padding:1px 7px;font-weight:700;}
/* 当日时间轴 */
.pl-day-panel{max-height:46vh;overflow:auto;padding-right:4px;margin-bottom:2px;}
.tl-item{display:flex;gap:10px;position:relative;}
.tl-item::before{content:"";position:absolute;left:44px;top:0;bottom:-11px;width:2px;background:rgba(120,140,160,.16);border-radius:2px;}
.tl-item:last-child::before{bottom:auto;height:20px;}
.tl-rail{width:50px;flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;gap:5px;padding-top:9px;}
.tl-time{font-size:10.5px;font-weight:800;color:var(--text3);font-variant-numeric:tabular-nums;white-space:nowrap;}
.tl-dot{width:12px;height:12px;border-radius:50%;background:var(--pc);border:2px solid #fff;box-shadow:0 0 0 2px var(--pc),0 0 10px var(--pc);flex-shrink:0;position:relative;z-index:1;animation:dotIn 260ms var(--ease-out);}
@keyframes dotIn{0%{transform:scale(.4);opacity:0;}70%{transform:scale(1.25);}100%{transform:scale(1);opacity:1;}}
.tl-body{flex:1;min-width:0;background:#F7FAFD;border:1px solid var(--line);border-radius:11px;padding:9px 11px;margin-bottom:12px;transition:transform 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.tl-body:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(30,80,160,.08);}
.tl-item.done .tl-dot{opacity:.6;}
.tl-item.done .tl-t{text-decoration:line-through;opacity:.6;}
.tl-top{display:flex;align-items:center;gap:7px;margin-bottom:4px;}
.tl-t{font-size:13px;font-weight:700;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tl-meta{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--text3);flex-wrap:wrap;}
.tl-note{font-size:11px;color:var(--text3);margin-top:4px;line-height:1.5;}
.tl-act{display:flex;gap:6px;margin-top:8px;}
/* 添加待办独立模块 */
.pl-add-card{border:1px solid var(--line);border-radius:14px;padding:12px 13px;background:linear-gradient(155deg,#FBFDFF,#F3F8FE);margin-top:4px;}
.pl-add-h{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.pl-add-t{font-size:13.5px;font-weight:800;color:var(--text);}
.pl-add-sub{font-size:11px;color:var(--text3);font-weight:700;margin-left:auto;}
.pl-add-card .pl-form{margin-top:0;}
.pl-add-card .pl-in{background:#fff;}
body.dark .pl-add-card{background:#101A33;border-color:rgba(70,120,200,.16);}
body.dark .tl-body{background:#0E1730;border-color:rgba(70,120,200,.14);}
body.dark .tl-item::before{background:rgba(70,120,200,.18);}
@media (prefers-reduced-motion:reduce){.tl-dot{animation:none;opacity:1;transform:none;}}
/* 周视图 */
.pl-weekview{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;}
.pl-wcol{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px;min-height:200px;}
.pl-wcol.lg{background:linear-gradient(160deg, rgba(16,128,231,.10), rgba(47,145,240,.04));border-color:var(--cb);}
.pl-whead{font-size:12px;font-weight:800;color:var(--text);margin-bottom:8px;display:flex;flex-direction:column;gap:2px;}
.pl-whead small{font-size:10px;color:var(--text3);font-weight:600;}
/* 年视图 */
.pl-yeargrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.pl-mo{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;cursor:pointer;transition:transform 160ms var(--ease-out),box-shadow 160ms var(--ease-out),border-color 160ms var(--ease-out);}
.pl-mo:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(30,80,160,.10);border-color:var(--cb);}
.pl-mo-h{font-size:13px;font-weight:800;color:var(--text);margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;}
.pl-mo-h b{color:var(--cb);font-size:11px;}
.pl-mo-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.pl-mo-day{height:18px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:9px;color:var(--text3);position:relative;}
.pl-mo-day.has::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--cb);position:absolute;top:2px;right:2px;}
.pl-mo-day.today{background:var(--cb);color:#fff;font-weight:700;}
/* 甘特图 */
.pl-gantt{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;max-height:66vh;overflow-y:auto;}
.pl-g-row{display:grid;grid-template-columns:150px minmax(680px,1fr);gap:10px;align-items:center;margin-bottom:8px;}
.pl-g-label{font-size:12px;font-weight:700;color:var(--text);text-align:right;padding-right:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pl-g-track{position:relative;height:26px;background:rgba(120,140,160,.07);border-radius:7px;}
.pl-g-bar{position:absolute;top:3px;bottom:3px;border-radius:6px;color:#fff;font-size:11px;font-weight:700;line-height:20px;padding:0 8px;overflow:hidden;white-space:nowrap;transition:width 500ms var(--ease-out),left 500ms var(--ease-out);}
.pl-g-bar.P1{background:linear-gradient(120deg,#22C55E,#3FD07A);}
.pl-g-bar.P2{background:linear-gradient(120deg,#2F7BFF,#6CA4FF);}
.pl-g-bar.P3{background:linear-gradient(120deg,#E8A33B,#F6C15E);}
.pl-g-bar.P4{background:linear-gradient(120deg,#F97316,#FA9A50);}
.pl-g-bar.P5{background:linear-gradient(120deg,#EF4444,#F4756F);}
.pl-g-bar .pg{position:absolute;left:0;top:0;bottom:0;background:rgba(255,255,255,.28);border-radius:6px;}
.pl-g-today{position:absolute;top:0;bottom:0;width:2px;background:var(--cb);z-index:3;}
.pl-g-today::after{content:"";position:absolute;top:-2px;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--cb);}
.todo-plan-btn{border:1px solid rgba(16,128,231,.25);background:rgba(16,128,231,.08);color:var(--cb);border-radius:8px;padding:4px 10px;font-size:11px;font-weight:700;cursor:pointer;transition:transform 150ms var(--ease-out),background 150ms var(--ease-out);}
.todo-plan-btn:hover{background:rgba(16,128,231,.16);}
.todo-plan-btn:active{transform:scale(.96);}
.td-today{padding:2px 0;}
.td-item{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:11px;background:#F7FAFD;border:1px solid var(--line);cursor:pointer;transition:transform 150ms var(--ease-out),box-shadow 150ms var(--ease-out);}
.td-item:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(30,80,160,.07);}
.td-item .td-ck{width:16px;height:16px;border-radius:5px;border:2px solid var(--line-strong);flex-shrink:0;transition:all 150ms var(--ease-out);}
.td-item.done .td-ck{background:var(--cb);border-color:var(--cb);box-shadow:inset 0 0 0 2px #fff;}
.td-item .td-t{flex:1;font-size:12.5px;font-weight:600;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.td-item.done .td-t{text-decoration:line-through;opacity:.6;}
.td-item .td-p{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.td-item .td-days{font-size:10px;font-weight:800;border-radius:6px;padding:2px 6px;flex-shrink:0;}
.td-item .td-days.overdue{background:#D4574F;color:#fff;}.td-item .td-days.ok{background:rgba(45,139,111,.16);color:#2D8B6F;}
body.dark .td-item{background:#0B1424;border-color:rgba(70,120,200,.12);}
.pl-empty{color:var(--text3);font-size:12px;text-align:center;padding:28px 10px;}
body.dark .pl-day,body.dark .pl-side,body.dark .pl-wcol,body.dark .pl-mo,body.dark .pl-gantt{background:#111B33;border-color:rgba(70,120,200,.16);}
body.dark .pl-day.other{opacity:.4;}
body.dark .pl-task{background:#0B1424;border-color:rgba(70,120,200,.12);}
body.dark .pl-in,body.dark .pl-sel{background:#0B1424;border-color:rgba(70,120,200,.2);color:#DCE6F2;}
body.dark .pl-title,body.dark .pl-dnum{color:#DCE6F2;}
@media (max-width:900px){.pl-layout{grid-template-columns:1fr;}.pl-weekview{grid-template-columns:repeat(2,1fr);}.pl-yeargrid{grid-template-columns:repeat(2,1fr);}}
.ck-sec{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);}
.ck-sec-h{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:800;color:var(--text);margin-bottom:9px;}
.ck-sec-ico{font-size:13px;}
.ck-sec-sub{font-size:11px;color:var(--text3);font-weight:600;margin-left:auto;}
.ck-dailies{display:flex;flex-direction:column;gap:7px;}
.ck-chk{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:11px;background:#F7FAFD;border:1px solid var(--line);cursor:pointer;transition:transform 150ms var(--ease-out),box-shadow 150ms var(--ease-out);}
.ck-chk:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(30,80,160,.07);}
.ck-chk .ckc{width:16px;height:16px;border-radius:5px;border:2px solid var(--line-strong);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;color:#fff;transition:all 150ms var(--ease-out);}
.ck-chk.done .ckc{background:var(--cb);border-color:var(--cb);box-shadow:0 2px 8px rgba(16,128,231,.3);}
.ck-chk.done .ckc::after{content:"✓";}
.ck-chk .ckc-t{flex:1;font-size:12.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ck-chk.done .ckc-t{text-decoration:line-through;opacity:.6;}
.ck-chk .ckc-p{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
body.dark .ck-chk{background:#0B1424;border-color:rgba(70,120,200,.12);}
/* 年度计划-打卡存档 */
.pl-checkwrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:4px;}
.pl-check-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;}
.pl-check-h{display:flex;align-items:center;gap:8px;margin-bottom:9px;}
.pl-check-tt{font-size:13.5px;font-weight:800;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pl-check-meta{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.pl-cm{font-size:11px;font-weight:800;border-radius:7px;padding:3px 9px;background:rgba(45,139,111,.14);color:#2D8B6F;}
.pl-cm.dim{background:rgba(120,140,160,.13);color:var(--text2);}
.pl-heat{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:10px;}
.pl-hd{height:18px;border-radius:4px;background:rgba(120,140,160,.08);}
.pl-hd.on{background:var(--cb);box-shadow:0 0 6px rgba(16,128,231,.3);}
.pl-check-actions{display:flex;gap:8px;align-items:center;}
.pl-check-del{border:none;background:rgba(212,87,79,.12);color:#D4574F;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:700;cursor:pointer;transition:transform 150ms var(--ease-out),background 150ms var(--ease-out);}
.pl-check-del:hover{background:rgba(212,87,79,.2);}
.pl-check-del:active{transform:scale(.96);}
.pl-check-today{margin-left:auto;border:none;font-size:11px;font-weight:800;border-radius:7px;padding:5px 10px;cursor:pointer;background:rgba(16,128,231,.1);color:var(--cb);transition:transform 150ms var(--ease-out),background 150ms var(--ease-out);}
.pl-check-today:hover{background:rgba(16,128,231,.18);}
.pl-check-today.on{background:var(--cb);color:#fff;}
.pl-check-today:active{transform:scale(.96);}
body.dark .pl-check-card{background:#111B33;border-color:rgba(70,120,200,.16);}
body.dark .pl-hd{background:rgba(90,130,200,.12);}
/* ===== 今日待办卡 v2 美化 ===== */
.card[data-key="todo"]{overflow:hidden;}
.c-date{font-size:11px;color:var(--text3);font-weight:700;margin-left:2px;}
.td-progress{background:linear-gradient(155deg,rgba(16,128,231,.08),rgba(47,145,240,.03));border:1px solid rgba(16,128,231,.14);border-radius:12px;padding:11px 13px;margin-bottom:12px;}
.td-p-top{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.td-p-title{font-size:12px;font-weight:700;color:var(--text);}
.td-p-count{font-size:11.5px;color:var(--text3);}
.td-p-count b{color:var(--cb);font-size:13px;font-weight:800;font-family:inherit;}
.td-p-pct{margin-left:auto;font-size:14px;font-weight:800;color:var(--cb);font-family:inherit;}
.td-p-bar{height:6px;background:rgba(120,140,160,.14);border-radius:99px;overflow:hidden;}
.td-p-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#1080E7,#2B91F0 60%,#4AA4E8);border-radius:99px;transition:width 520ms var(--ease-out);box-shadow:0 0 10px rgba(16,128,231,.5);}
.todo-count{font-size:12px;color:var(--text3);margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:6px;}
.todo-count b{color:var(--cb);font-family:inherit;}
.todo-list{display:flex;flex-direction:column;gap:8px;}
.td-item{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:10px 12px;cursor:pointer;transition:transform 150ms var(--ease-out),box-shadow 150ms var(--ease-out),background 150ms var(--ease-out);}
.td-item:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(30,80,160,.08);background:rgba(16,128,231,.04);}
.td-item .td-ck{width:17px;height:17px;border-radius:6px;border:2px solid var(--ckb,#94A3B8);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;background:var(--ckt,transparent);position:relative;transition:all 180ms var(--ease-out);}
.td-item .td-ck::before{content:"";position:absolute;inset:-3px;border-radius:8px;background:radial-gradient(circle,var(--ckg,rgba(59,130,246,.25)),transparent 70%);opacity:0;transition:opacity 180ms var(--ease-out);pointer-events:none;}
.td-item:hover .td-ck::before{opacity:1;}
.td-item.pk-0 .td-ck{--ckb:#3B82F6;--ckt:rgba(59,130,246,.10);--ckg:rgba(59,130,246,.28);}
.td-item.pk-1 .td-ck{--ckb:#0EA5A6;--ckt:rgba(14,165,166,.10);--ckg:rgba(14,165,166,.28);}
.td-item.pk-2 .td-ck{--ckb:#22A06B;--ckt:rgba(34,160,107,.10);--ckg:rgba(34,160,107,.28);}
.td-item.pk-3 .td-ck{--ckb:#F59E0B;--ckt:rgba(245,158,11,.12);--ckg:rgba(245,158,11,.28);}
.td-item.pk-4 .td-ck{--ckb:#EF5A5A;--ckt:rgba(239,90,90,.10);--ckg:rgba(239,90,90,.28);}
.td-item.pk-5 .td-ck{--ckb:#8B5CF6;--ckt:rgba(139,92,246,.10);--ckg:rgba(139,92,246,.28);}
.td-item.pk-6 .td-ck{--ckb:#06B6D4;--ckt:rgba(6,182,212,.10);--ckg:rgba(6,182,212,.28);}
.td-item.pk-7 .td-ck{--ckb:#EC5FA8;--ckt:rgba(236,95,168,.10);--ckg:rgba(236,95,168,.28);}
.td-item:not(.done) .td-ck{animation:ckBreath 2.8s ease-in-out infinite;}
@keyframes ckBreath{0%,100%{box-shadow:0 0 0 0 rgba(0,0,0,0);}50%{box-shadow:0 0 0 4px var(--ckg,rgba(59,130,246,.14));}}
.td-item:nth-child(2) .td-ck{animation-delay:.35s;}
.td-item:nth-child(3) .td-ck{animation-delay:.7s;}
.td-item:nth-child(4) .td-ck{animation-delay:1.05s;}
.td-item:nth-child(5) .td-ck{animation-delay:1.4s;}
.td-item:nth-child(n+6) .td-ck{animation-delay:1.75s;}
.td-item:not(.done):hover .td-ck{transform:scale(1.14);}
.td-item.done .td-ck{background:var(--ckb,#1080E7);border-color:transparent;transform:scale(1.1);box-shadow:0 0 12px var(--ckg,rgba(16,128,231,.5));}
.td-item.done .td-ck::before{opacity:0;}
.td-item.done .td-ck::after{content:"✓";animation:tdpop 240ms var(--ease-out);}
@keyframes tdpop{0%{transform:scale(.4);opacity:0;}60%{transform:scale(1.18);}100%{transform:scale(1);opacity:1;}}
.td-item .td-p{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.td-item .td-t{flex:1;font-size:12.5px;font-weight:600;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.td-item.done .td-t{text-decoration:line-through;color:var(--text3);}
.td-item .td-days{font-size:10px;font-weight:800;border-radius:6px;padding:2px 6px;flex-shrink:0;}
.td-item .td-days.overdue{background:#D4574F;color:#fff;}.td-item .td-days.ok{background:rgba(45,139,111,.16);color:#2D8B6F;}
.ck-sec{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);}
.ck-sec-h{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:800;color:var(--text);margin-bottom:9px;}
.ck-sec-ico{font-size:13px;}
.ck-streak{margin-left:auto;font-size:11px;font-weight:700;color:#2D8B6F;background:rgba(45,139,111,.12);border-radius:8px;padding:2px 8px;}
.ck-dailies{display:flex;flex-direction:column;gap:7px;background:linear-gradient(155deg,rgba(45,139,111,.05),rgba(16,128,231,.03));border:1px solid rgba(45,139,111,.14);border-radius:12px;padding:9px;}
.ck-chk{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.75);border:none;cursor:pointer;transition:transform 150ms var(--ease-out),box-shadow 150ms var(--ease-out),background 150ms var(--ease-out);}
.ck-chk:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(30,80,160,.08);}
.ck-chk .ckc{width:16px;height:16px;border-radius:5px;border:2px solid var(--line-strong);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:10px;color:#fff;transition:all 180ms var(--ease-out);}
.ck-chk.done .ckc{background:linear-gradient(135deg,#2D8B6F,#43A488);border-color:transparent;transform:scale(1.1);box-shadow:0 2px 8px rgba(45,139,111,.35);}
.ck-chk.done .ckc::after{content:"✓";}
.ck-chk .ckc-t{flex:1;font-size:12.5px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ck-chk.done .ckc-t{text-decoration:line-through;color:var(--text3);}
.ck-chk .ckc-p{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.todo-input{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border-radius:13px;background:var(--card);border:1px solid var(--line);transition:border-color 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.todo-input:focus-within{border-color:var(--cb);box-shadow:0 0 0 3px rgba(16,128,231,.12);}
.todo-input input{flex:1;border:none;outline:none;background:transparent;font-size:12.5px;color:var(--text);font-family:inherit;}
.todo-input input::placeholder{color:var(--text3);}
.todo-input .go{border:none;background:linear-gradient(120deg,#1080E7,#2B91F0);color:#fff;font-size:11.5px;font-weight:700;border-radius:9px;padding:6px 12px;cursor:pointer;flex-shrink:0;transition:transform 150ms var(--ease-out),box-shadow 150ms var(--ease-out);}
.todo-input .go:hover{box-shadow:0 6px 14px rgba(16,128,231,.3);}
.todo-input .go:active{transform:scale(.95);}
body.dark .td-progress{background:rgba(16,128,231,.1);border-color:rgba(70,120,200,.2);}
body.dark .ck-dailies{background:rgba(11,20,36,.6);border-color:rgba(70,120,200,.14);}
body.dark .ck-chk{background:#0B1424;}
body.dark .td-item{background:#0B1424;border-color:rgba(70,120,200,.12);}
/* ===== 今日待办卡 动画 ===== */
.card[data-key="todo"]{animation:cardIn 520ms var(--ease-out);}
@keyframes cardIn{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}
.td-item,.ck-chk{opacity:0;transform:translateY(5px);animation:itemIn 240ms var(--ease-out) forwards;}
@keyframes itemIn{to{opacity:1;transform:translateY(0);}}
.td-item:nth-child(1),.ck-chk:nth-child(1){animation-delay:0ms;}
.td-item:nth-child(2),.ck-chk:nth-child(2){animation-delay:40ms;}
.td-item:nth-child(3),.ck-chk:nth-child(3){animation-delay:80ms;}
.td-item:nth-child(4),.ck-chk:nth-child(4){animation-delay:120ms;}
.td-item:nth-child(5),.ck-chk:nth-child(5){animation-delay:160ms;}
.td-item:nth-child(n+6),.ck-chk:nth-child(n+6){animation-delay:200ms;}
.td-p-bar i{position:relative;overflow:hidden;}
.td-p-bar i::after{content:"";position:absolute;top:0;bottom:0;width:46px;left:-46px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:tdShimmer 2.4s linear infinite;}
@keyframes tdShimmer{to{left:110%;}}
.td-p-pct{display:inline-block;}
.td-p-pct.bump{animation:pctBump 320ms var(--ease-out);}
@keyframes pctBump{0%{transform:scale(1);}40%{transform:scale(1.2);}100%{transform:scale(1);}}
.ck-streak{animation:stGlow 2.2s ease-in-out infinite;border-radius:8px;}
@keyframes stGlow{0%,100%{box-shadow:0 0 0 rgba(45,139,111,0);}50%{box-shadow:0 0 9px rgba(45,139,111,.35);}}
.card[data-key="todo"].all-done .td-progress{border-color:rgba(45,139,111,.4);animation:donePulse 2.4s ease-in-out infinite;}
@keyframes donePulse{0%,100%{box-shadow:0 0 0 rgba(45,139,111,0);}50%{box-shadow:0 0 16px rgba(45,139,111,.35);}}
@media (prefers-reduced-motion:reduce){.card[data-key="todo"],.td-item,.td-item .td-ck,.td-item .td-ck::after,.ck-chk,.td-p-bar i::after,.ck-streak,.pri-stars .ps,.pl-pri-pick .pp,.card[data-key="todo"].all-done .td-progress{animation:none;opacity:1;transform:none;filter:none;}}
/* ===== 5级星级优先级 ===== */
.pri-stars{display:inline-flex;align-items:center;gap:2px;margin-left:5px;flex-shrink:0;line-height:1;}
.pri-stars .ps{display:inline-flex;width:13px;height:13px;color:rgba(120,140,160,.30);transition:color 160ms var(--ease-out),transform 160ms var(--ease-out),opacity 160ms var(--ease-out);}
.pri-stars .ps .svg-star{width:13px;height:13px;display:block;}
.pri-stars .ps.on{color:var(--sc);filter:drop-shadow(0 0 5px var(--sc));animation:starPop 280ms var(--ease-out) backwards;animation-delay:calc(var(--i)*38ms);}
@keyframes starPop{0%{transform:scale(.4) rotate(-12deg);opacity:0;}70%{transform:scale(1.18) rotate(4deg);}100%{transform:scale(1) rotate(0);opacity:1;}}
body.dark .pri-stars .ps{color:rgba(150,160,175,.36);}
.pl-pri-pick{display:flex;align-items:center;gap:3px;background:rgba(120,140,160,.10);border:1px solid var(--line);border-radius:9px;padding:6px 10px;cursor:pointer;}
.pl-pri-pick .pp{display:inline-flex;width:16px;height:16px;color:rgba(120,140,160,.34);cursor:pointer;transition:transform 150ms var(--ease-out),color 150ms var(--ease-out);}
.pl-pri-pick .pp .svg-star{width:16px;height:16px;display:block;}
.pl-pri-pick .pp.on{color:var(--sc);filter:drop-shadow(0 0 6px var(--sc));animation:starPop 220ms var(--ease-out);}
.pl-pri-pick .pp:hover{transform:scale(1.22);}
.td-time{font-size:11px;font-weight:800;color:#5B6474;background:rgba(120,140,160,.12);border-radius:6px;padding:2px 6px;flex-shrink:0;font-variant-numeric:tabular-nums;letter-spacing:.2px;}
.td-item.done .td-time{opacity:.5;text-decoration:line-through;}
body.dark .td-time{color:#A8B4C6;background:rgba(120,140,160,.16);}
.td-item.remind{background:linear-gradient(90deg,rgba(245,158,11,.12),rgba(245,158,11,.03));border-color:rgba(245,158,11,.40);}
.td-item.remind .td-time{background:#FFF3DC;color:#B45309;}
.td-item.remind .td-days.ok{background:#F59E0B;color:#fff;}
.td-more{width:100%;margin-top:8px;background:#F4F7FA;border:1px solid var(--line);border-radius:9px;padding:6px;font-size:11.5px;font-weight:700;color:#1080E7;cursor:pointer;text-align:center;transition:all 160ms var(--ease-out);}
.td-more:hover{background:#EDF3FB;transform:translateY(-1px);}
body.dark .td-more{background:rgba(16,26,44,.6);border-color:rgba(70,120,200,.16);color:#8ABFFF;}
.td-more-link{font-size:10.5px;font-weight:700;color:#1080E7;cursor:pointer;background:none;border:none;padding:0;line-height:1;white-space:nowrap;transition:opacity 150ms var(--ease-out);}
.td-more-link:hover{text-decoration:underline;opacity:.8;}
body.dark .td-more-link{color:#8ABFFF;}
.pl-task-time{font-size:10.5px;font-weight:800;color:#5B6474;background:rgba(120,140,160,.12);border-radius:6px;padding:2px 6px;flex-shrink:0;font-variant-numeric:tabular-nums;}
body.dark .pl-task-time{color:#A8B4C6;background:rgba(120,140,160,.16);}
.pl-in.pf-time{width:92px;flex-shrink:0;}
/* ===== 每日打卡卡 v2（互动水瓶） ===== */
.card[data-key="check"]{overflow:hidden;animation:cardIn 560ms var(--ease-out);}
.check-prog{background:linear-gradient(155deg,rgba(45,139,111,.08),rgba(16,128,231,.03));border:1px solid rgba(45,139,111,.14);border-radius:12px;padding:11px 13px;margin-bottom:12px;}
.ckp-top{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.ckp-title{font-size:12px;font-weight:700;color:var(--text);}
.ckp-count{font-size:12px;color:var(--text3);margin-left:auto;}
.ckp-count b{color:#2D8B6F;font-size:14px;font-weight:800;font-family:inherit;}
.ckp-bar{height:6px;background:rgba(120,140,160,.14);border-radius:99px;overflow:hidden;}
.ckp-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#2D8B6F,#43A488);border-radius:99px;transition:width 460ms var(--ease-out);box-shadow:0 0 9px rgba(45,139,111,.5);}
.check-list{display:flex;flex-direction:column;gap:9px;max-height:40vh;overflow:auto;padding-right:2px;}
.ck-item{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;transition:border-color 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.ck-item.done{border-color:rgba(45,139,111,.35);background:linear-gradient(155deg,rgba(45,139,111,.07),rgba(45,139,111,.02));}
.ck-item-top{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.ck-pdot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.ck-item-t{flex:1;font-size:12.5px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ck-item.done .ck-item-t{text-decoration:line-through;opacity:.65;}
.ck-item-st{font-size:10.5px;font-weight:800;color:#2D8B6F;background:rgba(45,139,111,.12);border-radius:7px;padding:2px 8px;flex-shrink:0;}
.ck-bottles{display:flex;flex-wrap:wrap;gap:4px;}
.ck-bl{width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;background:rgba(120,140,160,.1);filter:grayscale(1);opacity:.55;transition:transform 150ms var(--ease-out),filter 150ms var(--ease-out),opacity 150ms var(--ease-out),background 150ms var(--ease-out);}
.ck-bl:hover{transform:translateY(-2px) scale(1.12);}
.ck-bl.on{filter:none;opacity:1;background:rgba(16,128,231,.12);animation:bottleOn 260ms var(--ease-out);}
@keyframes bottleOn{0%{transform:scale(.7);}60%{transform:scale(1.16);}100%{transform:scale(1);}}
.ck-big{display:flex;flex-direction:column;gap:7px;}
.ck-big-count{font-size:13px;font-weight:800;color:var(--text);}
.ck-big-count b{color:#2D8B6F;font-size:17px;font-family:inherit;}
.ck-bbar{height:7px;background:rgba(120,140,160,.14);border-radius:99px;overflow:hidden;}
.ck-bbar i{display:block;height:100%;background:linear-gradient(90deg,#2D8B6F,#43A488);border-radius:99px;transition:width 460ms var(--ease-out);}
.ck-bbot{display:flex;gap:6px;}
body.dark .check-prog{background:rgba(11,20,36,.6);border-color:rgba(70,120,200,.14);}
body.dark .ck-item{background:#0B1424;border-color:rgba(70,120,200,.12);}
body.dark .ck-bl{background:rgba(90,130,200,.12);}
.bj-kuguan{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 6px 22px rgba(30,80,160,.06);}
.bjk-list{display:flex;flex-direction:column;gap:8px;}
.bjk-item{border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.bjk-row{display:flex;align-items:center;gap:12px;padding:11px 13px;cursor:pointer;background:#F8FAFD;flex-wrap:wrap;}
.bjk-row:hover{background:#EFF5FC;}
.bjk-seq{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;font-weight:700;color:#1080E7;}
.bjk-c{font-size:13px;font-weight:600;color:var(--text);}
.bjk-d{font-size:11.5px;color:var(--text2);}
.bjk-n{font-size:11.5px;color:var(--text2);}
.bjk-t{margin-left:auto;font-weight:800;color:#1080E7;font-size:14px;white-space:nowrap;}
.bjk-del{border:none;background:none;cursor:pointer;color:#EF5A5A;font-size:13px;padding:2px 4px;}
.bjk-detail{padding:6px 13px 13px;background:#fff;}
.ck-shot{margin-left:auto;border:none;border-radius:9px;padding:7px 14px;font-size:13px;font-weight:700;background:#1080E7;color:#fff;cursor:pointer;box-shadow:0 4px 12px rgba(16,128,231,.25);transition:all .15s;}
.ck-shot:hover{background:#0d70c9;}
.ck-shot:disabled{opacity:.6;cursor:wait;}
.kg-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px;}
.kg-t{font-size:16px;font-weight:800;color:var(--text);}
.kg-n{color:var(--text2);font-size:12px;font-weight:600;margin-left:6px;}
.kg-btns{display:flex;gap:8px;}
.kg-btn{border:none;border-radius:9px;padding:8px 14px;font-size:13px;font-weight:700;background:rgba(16,128,231,.08);color:#1080E7;cursor:pointer;}
.kg-btn-add{background:#1080E7;color:#fff;box-shadow:0 4px 12px rgba(16,128,231,.25);}
.kg-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.kg-in{border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:13px;background:#fff;color:var(--text);min-width:120px;}
.kg-w{flex:1;min-width:180px;}
.kg-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;}
.kg-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:900px;}
.kg-table th{background:#F2F6FC;color:var(--text2);text-align:left;padding:8px;white-space:nowrap;position:sticky;top:0;border-bottom:1px solid var(--line);}
.kg-table td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--text);}
.kg-table tr:nth-child(even) td{background:rgba(16,128,231,.03);}
.kg-model{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;}
.kg-param{max-width:180px;color:var(--text2);white-space:normal;word-break:break-all;}
.kg-rem{max-width:120px;white-space:normal;}
.kg-price{font-weight:800;color:#1080E7;white-space:nowrap;}
.kg-act button{border:none;background:none;cursor:pointer;font-size:14px;padding:2px 4px;color:#1080E7;}
.kg-act .kg-del{color:#EF5A5A;}
.kg-empty{text-align:center;color:var(--text2);padding:24px;}
.kg-mask{position:fixed;inset:0;background:rgba(15,25,40,.45);z-index:9999;display:flex;align-items:center;justify-content:center;}
.kg-modal{background:#fff;border-radius:14px;width:min(480px,92vw);max-height:86vh;overflow:auto;padding:16px;box-shadow:0 20px 60px rgba(0,0,0,.25);}
.kg-mh{font-size:15px;font-weight:800;margin-bottom:12px;display:flex;justify-content:space-between;}
.kg-x{border:none;background:none;font-size:15px;cursor:pointer;color:var(--text2);}
.kg-lb{display:block;font-size:12.5px;font-weight:600;color:var(--text2);margin-bottom:9px;}
.kg-lin{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:13px;margin-top:3px;color:var(--text);background:#fff;}
.kg-mf{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;}
.bj-m{font-size:11px;color:var(--text2);margin-top:2px;}
.bj-csub{display:block;font-size:10.5px;color:var(--text2);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px;}
body.dark .kg-btn{background:rgba(16,128,231,.15);}
body.dark .kg-modal{background:#16233a;color:#e8eef7;}
body.dark .kg-lin{background:#0f1a2c;border-color:#2a3d5c;color:#e8eef7;}
/* ===== 灵感速记 ===== */
.card[data-key="idea"]{animation:cardIn 560ms var(--ease-out);}
.idea-input{display:flex;gap:8px;margin:8px 0 6px;}
.idea-input input{flex:1;height:36px;border:1px solid var(--line);border-radius:11px;padding:0 13px;background:rgba(255,255,255,.65);color:var(--text1);font-size:13px;}
.idea-input input:focus{outline:none;border-color:#1080E7;box-shadow:0 0 0 3px rgba(16,128,231,.12);}
.idea-input .go{flex-shrink:0;height:36px;padding:0 14px;background:#1080E7;color:#fff;border-radius:11px;font-weight:700;font-size:12.5px;display:flex;align-items:center;cursor:pointer;transition:transform .16s var(--ease-out),box-shadow .16s;}
.idea-input .go:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(16,128,231,.28);}
.idea-recent{display:flex;flex-direction:column;gap:7px;max-height:180px;overflow:auto;}
.idea-i{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.5);border:1px solid rgba(120,140,160,.10);}
.idea-i.done .idea-t{text-decoration:line-through;opacity:.6;}
.idea-tag{flex-shrink:0;font-size:10px;font-weight:700;color:#fff;background:var(--tc,#3B82F6);padding:2px 7px;border-radius:7px;}
.idea-t{flex:1;font-size:12.5px;color:var(--text1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.idea-tm{flex-shrink:0;font-size:10px;color:var(--text3);font-weight:600;}
.idea-empty{padding:16px 4px;text-align:center;color:var(--text3);font-size:12.5px;font-weight:600;}
.idea-foot{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding-top:6px;border-top:1px solid rgba(120,140,160,.10);}
#ideaStat{font-size:11.5px;color:var(--text2);font-weight:600;}
.idea-more{color:#1080E7;font-weight:700;font-size:12.5px;cursor:pointer;margin-left:auto;white-space:nowrap;flex-shrink:0;}
.idea-more:hover{text-decoration:underline;}
.idea-hero{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:10px;background:linear-gradient(120deg,rgba(16,128,231,.10),rgba(124,107,255,.08));border:1px solid rgba(16,128,231,.13);margin:0 0 6px;}
.idea-hero-ico{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#1080E7,#7C6BFF);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;box-shadow:0 3px 8px rgba(16,128,231,.24);}
.idea-hero-txt{display:flex;flex-direction:row;align-items:center;gap:4px;min-width:0;}
.idea-hero-txt b{font-size:12.5px;color:var(--text);}
.idea-hero-txt span{display:none;}
.idea-quick{display:flex;flex-wrap:wrap;gap:5px;margin:2px 0 0;}
.iq-chip{font-size:10.5px;font-weight:700;color:var(--text2);background:#F4F6F9;border:1px solid var(--line);border-radius:999px;padding:2px 8px;cursor:pointer;transition:all 160ms var(--ease-out);}
.iq-chip:hover{background:#1080E7;color:#fff;border-color:#1080E7;transform:translateY(-1px);}
.idea-hint{font-size:11px;color:var(--text3);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.card[data-key="idea"] .card-head{margin-bottom:10px;}
body.dark .idea-hero{background:linear-gradient(120deg,rgba(16,96,200,.22),rgba(110,90,220,.16));border-color:rgba(70,120,200,.18);}
body.dark .idea-hero-txt b{color:#EAF3FF;}
body.dark .idea-hero-txt span{color:#8FA3BA;}
body.dark .iq-chip{background:rgba(16,26,44,.7);border-color:rgba(70,120,200,.16);color:#93A6BD;}
body.dark .iq-chip:hover{background:#1080E7;color:#fff;}
/* 灵感库面板 */
.idea-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto;}
.idea-search{width:190px;height:34px;border:1px solid rgba(120,140,160,.25);border-radius:10px;padding:0 12px;background:#fff;color:var(--text1);font-size:13px;}
.idea-search:focus{outline:none;border-color:#1080E7;}
.idea-tags{display:flex;gap:7px;flex-wrap:wrap;}
.idea-chip{font-size:12px;font-weight:700;color:var(--text2);background:#fff;border:1px solid rgba(120,140,160,.18);padding:4px 12px;border-radius:18px;cursor:pointer;transition:all .15s;}
.idea-chip.on{color:#fff;background:var(--tc,#1080E7);border-color:var(--tc,#1080E7);}
.idea-body{margin-top:16px;display:flex;flex-direction:column;gap:12px;}
.idea-card{background:#fff;border:1px solid rgba(120,140,160,.12);border-radius:14px;padding:14px 16px;box-shadow:0 4px 14px rgba(40,60,90,.05);}
.idea-card .ic-top{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap;}
.idea-card .ic-meta{font-size:11px;color:var(--text3);font-weight:600;}
.idea-card .ic-text{font-size:13.5px;color:var(--text1);line-height:1.5;}
.idea-card .ic-ai{margin-top:8px;padding:9px 11px;border-radius:9px;background:#F2F8FE;border:1px solid rgba(16,128,231,.12);font-size:12.5px;color:#22364F;line-height:1.55;}
.idea-card .ic-ai b{color:#1080E7;}
.idea-card .ic-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
.idea-btn{font-size:12px;font-weight:700;color:#5A6A7E;background:#F4F7FA;border:1px solid rgba(120,140,160,.16);padding:5px 10px;border-radius:9px;cursor:pointer;transition:all .15s;}
.idea-btn:hover{transform:translateY(-1px);background:#EDF3FB;}
.idea-btn.warn{color:#C0392B;}
.idea-btn.loading{opacity:.6;pointer-events:none;}
.idea-card.pinned{border-color:rgba(139,92,246,.4);box-shadow:0 0 0 2px rgba(139,92,246,.08),0 4px 14px rgba(40,60,90,.06);}
.idea-card.done{opacity:.68;}
.idea-empty-big{padding:60px 20px;text-align:center;color:var(--text3);font-weight:700;font-size:14px;}
body.dark .idea-input input,body.dark .idea-search{background:rgba(20,40,70,.4);color:var(--text1);border-color:rgba(70,120,200,.2);}
body.dark .idea-i,body.dark .idea-card,body.dark .idea-chip{background:#0F1A34;border-color:rgba(70,120,200,.14);}
body.dark .idea-card .ic-ai{background:#0D1730;border-color:rgba(70,120,200,.14);}
/* ===== 权限管理面板 ===== */
.adm-body{margin-top:14px;display:flex;flex-direction:column;gap:10px;}
.adm-table{background:#fff;border-radius:16px;border:1px solid rgba(120,140,160,.1);overflow:hidden;box-shadow:0 4px 16px rgba(40,60,90,.05);max-width:1080px;margin:0 auto;width:100%;}
.adm-thead,.adm-tr2{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:center;justify-items:center;padding:0 18px;}
.adm-thead{height:42px;background:#F6F9FC;border-bottom:1px solid rgba(120,140,160,.12);}
.adm-th{font-size:11px;color:#7A899C;font-weight:800;letter-spacing:.4px;text-align:center;}
.adm-tr2{min-height:50px;border-bottom:1px solid rgba(120,140,160,.06);transition:.15s;}
.adm-tr2:hover{background:#F2F8FF;}
.adm-tr2:last-child{border-bottom:none;}
.adm-nm2{display:flex;align-items:center;gap:9px;min-width:0;justify-content:center;}
.adm-ava{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#1080E7,#0EA5A6);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;box-shadow:0 2px 6px rgba(16,128,231,.22);}
.adm-nm2 span.b{font-size:13px;color:#15344F;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.adm-role{width:auto;min-width:118px;font-size:12.5px;color:var(--text1);border:1px solid rgba(120,140,160,.24);border-radius:8px;padding:5px 6px;background:#fff;text-align:center;}
.adm-badge{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 9px;border-radius:12px;text-align:center;}
.adm-badge.ok{background:rgba(45,139,111,.14);color:#2D8B6F;}
.adm-badge.warn{background:rgba(245,158,11,.16);color:#B97A0A;}
.adm-badge.off{background:rgba(120,140,160,.16);color:#7A899C;}
.adm-dd{position:relative;min-width:0;}
.adm-dd-btn{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:#15344F;background:#F4F7FA;border:1px solid rgba(120,140,160,.14);border-radius:9px;padding:5px 11px;cursor:pointer;transition:.18s;white-space:nowrap;}
.adm-dd-btn:hover{background:rgba(16,128,231,.08);border-color:rgba(16,128,231,.26);}
.adm-dd-btn .pm-n{color:#1080E7;font-weight:800;}
.adm-dd-panel{position:absolute;top:calc(100%+8px);left:0;min-width:292px;max-width:336px;background:#fff;border:1px solid rgba(120,140,160,.16);border-radius:14px;box-shadow:0 16px 38px rgba(30,50,80,.20);padding:12px;z-index:999;}
.adm-dd-search{width:100%;box-sizing:border-box;font-size:12.5px;color:var(--text1);border:1px solid rgba(120,140,160,.2);border-radius:9px;padding:7px 10px;background:#F8FAFC;outline:none;margin-bottom:8px;transition:.15s;}
.adm-dd-search:focus{border-color:#1080E7;background:#fff;box-shadow:0 0 0 3px rgba(16,128,231,.12);}
.adm-dd-g{font-size:10.5px;color:#8A98AD;font-weight:800;letter-spacing:.5px;margin:8px 0 4px;}
.adm-dd-it{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text2);padding:7px 8px;border-radius:8px;cursor:pointer;transition:.12s;}
.adm-dd-it:hover{background:#F2F6FB;}
.adm-dd-it input{accent-color:#1080E7;}
.adm-dd-it.on{background:rgba(16,128,231,.09);color:#0A5FB4;font-weight:700;}
.adm-dd-ft{display:flex;gap:14px;margin-top:8px;padding-top:9px;border-top:1px solid rgba(120,140,160,.1);}
.adm-dd-ft span{font-size:11.5px;font-weight:700;color:#1080E7;cursor:pointer;}
.adm-dd-ft span:hover{text-decoration:underline;}
.adm-empt{color:#8A98AD;font-size:12px;text-align:center;padding:14px 0;}
.adm-acts{display:flex;gap:6px;justify-content:center;flex-wrap:nowrap;}
.adm-btn{font-size:11px;font-weight:700;padding:4px 10px;border-radius:7px;cursor:pointer;border:1px solid rgba(120,140,160,.2);background:#F4F7FA;color:#5A6B7C;transition:.15s;white-space:nowrap;}
.adm-btn:hover{background:#EAF1F8;}
.adm-btn.warn{background:rgba(239,90,90,.12);border-color:rgba(239,90,90,.3);color:#E24A4A;}
.adm-btn.warn:hover{background:rgba(239,90,90,.2);}
.adm-btn.prim{background:#1080E7;border-color:#1080E7;color:#fff;}
.adm-btn.prim:hover{background:#2B91F0;}
body.dark .adm-table{background:#0F1A34;border-color:rgba(70,120,200,.16);}
body.dark .adm-thead{background:#0C1730;border-color:rgba(70,120,200,.2);}
body.dark .adm-tr2:hover{background:rgba(16,128,231,.06);}
body.dark .adm-role{background:#0D1730;color:var(--text1);border-color:rgba(70,120,200,.2);}
body.dark .adm-nm2 span.b{color:#E6F0FC;}
body.dark .adm-dd-btn{background:#0D1730;color:#E6F0FC;border-color:rgba(70,120,200,.2);}
body.dark .adm-dd-panel{background:#0F1A34;border-color:rgba(70,120,200,.24);box-shadow:0 16px 38px rgba(0,0,0,.4);}
body.dark .adm-dd-search{background:#0D1730;color:var(--text1);border-color:rgba(70,120,200,.2);}
body.dark .adm-dd-it:hover{background:rgba(70,120,200,.12);}
body.dark .adm-dd-it.on{background:rgba(16,128,231,.2);color:#A8D4FF;}
body.dark .adm-empt{color:#6E7C99;}
body.dark .adm-btn{background:#0D1730;color:#C6D2E4;border-color:rgba(70,120,200,.2);}
.gen-btn{font-size:12px;font-weight:700;color:#1080E7;background:rgba(16,128,231,.08);border:1px solid rgba(16,128,231,.3);border-radius:8px;padding:6px 10px;cursor:pointer;transition:.15s;position:relative;overflow:hidden;}
.gen-btn input[type=file]{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:0;}
.gen-btn:hover{background:rgba(16,128,231,.16);}
.gen-btn.warn{color:#D64545;background:rgba(214,69,69,.06);border-color:rgba(214,69,69,.28);}
.gen-fn{font-size:11px;color:#7A899C;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gen-prim{font-size:13px;font-weight:800;color:#fff;background:linear-gradient(135deg,#1080E7,#2B91F0);border:none;border-radius:9px;padding:9px 18px;cursor:pointer;box-shadow:0 6px 16px rgba(16,128,231,.3);transition:.15s;}
.gen-prim:hover{transform:translateY(-1px);box-shadow:0 9px 22px rgba(16,128,231,.4);}
.gen-prim.imp{font-size:11.5px;padding:7px 12px;flex-shrink:0;}
.gen-note{font-size:11px;color:#7A899C;min-height:14px;margin-left:8px;}
/* 数据运维 */
.ops-body{padding:22px 30px 40px;max-width:none;margin:0 auto;}
.ops-sec{background:rgba(255,255,255,.72);border:1px solid rgba(120,140,160,.16);border-radius:16px;padding:18px 20px;margin-bottom:18px;box-shadow:0 6px 22px rgba(30,50,80,.08);}
.ops-sec-h{font-size:14.5px;font-weight:800;color:#15344F;margin-bottom:14px;display:flex;align-items:center;gap:8px;}
.ops-tip{font-size:11px;font-weight:500;color:#93A1B2;}
.ops-rows{display:flex;flex-direction:column;gap:10px;}
.ops-row{display:flex;align-items:center;gap:10px;font-size:13px;color:#33507A;font-weight:600;}
.ops-lb{width:88px;flex-shrink:0;font-size:12.5px;color:#7A899C;font-weight:700;}
.ops-row select{flex:1;font-size:13px;color:var(--text1);border:1px solid rgba(120,140,160,.24);border-radius:9px;padding:7px 10px;background:#fff;max-width:240px;}
.ops-cnt{font-size:11.5px;color:#1080E7;font-weight:700;margin-left:auto;}
.ops-builtin{font-size:10px;font-weight:700;color:#0EA5A6;background:rgba(14,165,166,.1);border:1px solid rgba(14,165,166,.28);border-radius:5px;padding:2px 6px;flex-shrink:0;}
.ops-nolock{font-size:11px;font-weight:700;color:#93A1B2;padding:4px 8px;flex-shrink:0;}
.ops-row.ok{background:rgba(13,172,112,.08);border-left:3px solid #22A06B;}
.ops-cnt.ok{color:#22A06B;font-weight:800;background:rgba(34,160,107,.1);border-radius:6px;padding:2px 8px;}
#opsToast{position:fixed;top:88px;left:50%;transform:translateX(-50%);z-index:300;background:rgba(17,27,50,.94);color:#EAF4FF;font-size:13px;font-weight:700;padding:11px 18px;border-radius:12px;box-shadow:0 10px 30px rgba(10,30,80,.4);transition:opacity .3s;pointer-events:none;border:1px solid rgba(90,140,220,.3);}
.ops-note{font-size:11px;color:#93A1B2;}
.ops-empty{font-size:12.5px;color:#9AA8BA;text-align:center;padding:14px 0;}
.ops-reports{display:flex;flex-direction:column;gap:8px;}
.ops-rep{display:flex;align-items:center;gap:10px;background:rgba(16,128,231,.05);border:1px solid rgba(16,128,231,.16);border-radius:10px;padding:9px 12px;}
.ops-rep-n{font-size:13px;font-weight:800;color:#1080E7;min-width:86px;}
.ops-rep-f{flex:1;font-size:12px;color:#6B7A8F;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* 业务通报·通报库页签 */
.ckk-repo{display:flex;flex-direction:column;gap:8px;padding:4px 0;}
.ckk-tool{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;background:rgba(255,255,255,.6);border:1px solid rgba(120,140,160,.14);border-radius:12px;}
.ckk-mlabel{font-size:13px;font-weight:800;color:#33507A;}
.ckk-mlabel0{font-size:13px;font-weight:800;color:#33507A;}
.ckk-tool select{font-size:13px;color:var(--text1);border:1px solid rgba(120,140,160,.24);border-radius:8px;padding:6px 10px;background:#fff;}
.ckk-hint{font-size:11px;color:#93A1B2;margin-left:auto;}
.ckk-empty2{font-size:12.5px;color:#9AA8BA;text-align:center;padding:20px 0;}
/* 报表内容表格 */
.rep-wrap{overflow-x:hidden;overflow-y:auto;max-height:72vh;border:1px solid rgba(120,140,160,.16);border-radius:10px;background:#fff;width:100%;}
.rep-table{width:100%;border-collapse:collapse;font-size:10px;table-layout:fixed;}
.rep-table th,.rep-table td{padding:4px 6px;text-align:center;border:1px solid #E6EBF2;vertical-align:middle;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rep-table .rep-t1 th{background:#C00000;color:#fff;font-size:13px;font-weight:800;padding:10px 8px;}
.rep-table .rep-t2 th{font-size:9.5px;font-weight:700;white-space:normal;padding:5px 4px;}
.rep-table .rep-info td{background:#F0F3F8;color:#1E56A0;font-weight:700;font-size:10.5px;padding:6px 6px;}
.rep-table .rep-kpi th{background:#D9E2F3;color:#1A2332;font-size:13px;font-weight:800;padding:10px 6px;}
.rep-table .rep-kpi-l th{background:#EDF1F8;color:#44546A;font-size:10px;font-weight:700;padding:5px 6px;}
.rep-table .rep-low{color:#C62828;font-weight:800;}
.rep-table .rep-done{background:#C8E6C9;color:#1B5E20;font-weight:700;}
.rep-table .rep-warn{background:#FFE9C2;color:#E65100;font-weight:700;}
.rep-table .rep-mid{background:#FFF8E1;color:#B26A00;}
.rep-table .rep-zero{background:#EF9A9A;color:#B71C1C;}
.rep-table .rep-ok{color:#2E7D32;font-weight:800;}
.rep-table .rep-ng{color:#C62828;font-weight:800;}
.rep-table .rep-sw{color:#0A5FB4;font-weight:800;}
.rep-host{min-height:220px;}
.rep-x{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10px;}
.rep-x td,.rep-x th{padding:4px 6px;border:1px solid #E6EBF2;line-height:1.35;vertical-align:middle;}
.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(16,128,231,.2);border-top-color:#1080E7;border-radius:50%;animation:spn .8s linear infinite;vertical-align:-2px;margin-right:7px;}
@keyframes spn{to{transform:rotate(360deg);}}
body.dark .rep-x td,body.dark .rep-x th{border-color:rgba(70,120,200,.16);}
.rep-table tbody tr:nth-child(even) td{background:#F7F9FC;}
.rep-table tr:hover td{background:rgba(16,128,231,.06);}
body.dark .rep-wrap{background:#0F1A34;border-color:rgba(70,120,200,.2);}
body.dark .rep-table th,body.dark .rep-table td{border-color:rgba(70,120,200,.14);color:#DCE6F2;}
body.dark .rep-table tbody tr:nth-child(even) td{background:#121F3C;}
body.dark .rep-table .rep-t1 th{background:#8a1a1a;}
body.dark .rep-table .rep-t2 th{background:#1E3A66;}
body.dark .ckk-tool{background:rgba(16,28,56,.7);border-color:rgba(70,120,200,.16);}
body.dark .ckk-tool select{background:#0D1730;color:#E6F0FC;border-color:rgba(70,120,200,.24);}
body.dark .ckk-mlabel,body.dark .ckk-mlabel0{color:#DCE8FA;}
body.dark .ckk-hint{color:#8FA3BB;}
.ckk-rep{display:flex;align-items:center;gap:10px;background:rgba(16,128,231,.05);border:1px solid rgba(16,128,231,.16);border-radius:10px;padding:10px 12px;}
.ckk-n{font-size:13.5px;font-weight:800;color:#1080E7;min-width:88px;}
.ckk-f{flex:1;font-size:12px;color:#6B7A8F;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
body.dark .ckk-rep{background:rgba(60,110,180,.14);border-color:rgba(90,140,220,.2);}
body.dark .ckk-n{color:#6FC2FF;}
body.dark .ckk-f{color:#A9BAD0;}
body.dark .ops-sec{background:rgba(16,28,56,.75);border-color:rgba(70,120,200,.18);}
body.dark .ops-sec-h{color:#E6F0FC;}
body.dark .ops-lb{color:#9FB3CD;}
body.dark .ops-row{color:#DCE8FA;}
body.dark .ops-row select{background:#0D1730;color:#E6F0FC;border-color:rgba(70,120,200,.24);}
body.dark .ops-cnt{color:#6FC2FF;}
body.dark .ops-rep{background:rgba(60,110,180,.14);border-color:rgba(90,140,220,.2);}
body.dark .ops-rep-n{color:#6FC2FF;}
body.dark .ops-rep-f{color:#A9BAD0;}
/* ================= 订单登记 ================= */
.ops-order-form{background:rgba(16,128,231,.04);border:1px solid rgba(16,128,231,.14);border-radius:12px;padding:14px 16px;margin-bottom:12px;}
/* 订单登记表单网格：标签在输入框上方，多列自适应对齐 */
.oform-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 16px;align-items:end;}
@media(max-width:860px){.oform-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
.oform-f{display:flex;flex-direction:column;gap:6px;min-width:0;}
.oform-lb{font-size:12px;font-weight:700;color:#7A899C;white-space:nowrap;}
.oform-f .ops-in{width:100%;min-width:0;}
.oform-actions{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:flex-end;gap:10px;margin-top:4px;}
.oform-actions .gen-prim,.oform-actions .gen-btn{min-width:118px;}
.ops-order-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:#33507A;font-weight:600;}
.ops-order-row .ops-lb{width:auto;flex-shrink:0;}
.ops-in{font-size:13px;color:var(--text1);border:1px solid rgba(120,140,160,.24);border-radius:9px;padding:7px 10px;background:#fff;min-width:130px;}
.ops-in-wide{flex:1;min-width:200px;}
.ops-order-row .gen-prim{margin-left:auto;}
.ops-order-list{margin-top:4px;}
.ops-tbl-wrap{overflow-x:auto;}
.ops-tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;min-width:760px;}
.ops-tbl th{background:linear-gradient(120deg,#1080E7,#2B91F0);color:#fff;font-weight:600;font-size:11px;padding:9px 8px;text-align:center;border:none;white-space:nowrap;letter-spacing:.02em;}
.ops-tbl th:first-child{border-top-left-radius:10px;}
.ops-tbl th:last-child{border-top-right-radius:10px;}
.ops-tbl td{padding:8px;border-bottom:1px solid #EEF1F6;text-align:center;color:var(--text);white-space:nowrap;vertical-align:middle;}
.ops-tbl tbody tr:nth-child(even){background:#F7F9FC;}
.ops-tbl tbody tr:hover{background:rgba(16,128,231,.07);}
.ops-tbl tbody tr:last-child td{border-bottom:none;}
.ops-tbl td.o-no{font-weight:700;color:#1080E7;}
.ops-tbl td.o-addr{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6B7A8F;}
.ops-tbl td.o-rem{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6B7A8F;}
.ops-tbl .status-sel{font-size:12px;color:var(--text1);border:1px solid rgba(120,140,160,.28);border-radius:6px;padding:4px 6px;background:#fff;}
body.dark .ops-order-form{background:rgba(16,28,56,.5);border-color:rgba(70,120,200,.2);}
body.dark .oform-lb{color:#9FB3CD;}
body.dark .ops-in{background:#0D1730;color:#E6F0FC;border-color:rgba(70,120,200,.24);}
body.dark .ops-tbl td{color:#DCE6F2;border-bottom-color:rgba(70,120,200,.12);}
body.dark .ops-tbl tbody tr:nth-child(even){background:rgba(16,28,56,.5);}
body.dark .ops-tbl tbody tr:hover{background:rgba(20,60,120,.3);}
body.dark .ops-tbl td.o-no{color:#6FC2FF;}
body.dark .ops-tbl td.o-addr{color:#A9BAD0;}
body.dark .ops-tbl .status-sel{background:#0D1730;color:#E6F0FC;border-color:rgba(70,120,200,.24);}

/* ===== 商机管理 .biz- 系列（莫兰迪浅绿 + 水彩手绘风） ===== */
/* 看板网格 */
.biz-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:4px;}
@media(max-width:960px){.biz-grid{grid-template-columns:1fr;}}
.biz-card{min-height:200px;}
/* 漏斗 */
.biz-funnel{display:flex;flex-direction:column;gap:12px;padding:6px 0;}
.bf-step{display:flex;align-items:center;gap:12px;}
.bf-bar{height:34px;border-radius:10px;display:flex;align-items:center;justify-content:flex-end;padding-right:10px;color:#fff;font-weight:800;font-size:15px;min-width:40px;transition:width 600ms var(--ease-out);box-shadow:0 4px 12px rgba(0,0,0,.1);}
.bf-lab{font-size:12.5px;color:var(--text2);white-space:nowrap;min-width:64px;text-align:right;}
.bf-rate{margin-top:8px;font-size:13px;color:var(--text3);text-align:right;}
.bf-rate b{color:var(--cb);font-size:18px;font-weight:800;margin-left:4px;}
/* 业务类型分布 */
.biz-types{display:flex;flex-direction:column;gap:8px;padding:4px 0;}
.bt-row{display:flex;align-items:center;gap:10px;}
.bt-ico{width:28px;height:28px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:800;flex-shrink:0;}
.bt-name{font-size:13px;font-weight:700;color:var(--text1);min-width:60px;}
.bt-bar{flex:1;height:10px;border-radius:999px;background:#EDF2F0;overflow:hidden;}
.bt-bar i{display:block;height:100%;border-radius:999px;transition:width 600ms var(--ease-out);}
.bt-num{font-size:13px;font-weight:800;color:var(--text1);min-width:24px;text-align:right;}
/* 排行 */
.biz-rank{display:flex;flex-direction:column;gap:8px;padding:4px 0;}
.rk-row{display:flex;align-items:center;gap:10px;}
.rk-medal{font-size:18px;width:28px;text-align:center;flex-shrink:0;}
.rk-name{font-size:13px;font-weight:700;color:var(--text1);min-width:56px;}
.rk-bar{flex:1;height:10px;border-radius:999px;background:#EDF2F0;overflow:hidden;}
.rk-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#5FA08E,#7FC9B0);transition:width 600ms var(--ease-out);}
.rk-pts{font-size:14px;font-weight:800;color:var(--cb);min-width:48px;text-align:right;}
.rk-pts small{font-size:11px;font-weight:600;color:var(--text3);}
/* 最新动态 */
.biz-feed{display:flex;flex-direction:column;gap:6px;padding:4px 0;max-height:260px;overflow-y:auto;}
.fd-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:10px;background:#F7FBF9;transition:background 160ms var(--ease-out);}
.fd-row:hover{background:#EEF7F3;}
.fd-ico{width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:800;flex-shrink:0;}
.fd-txt{flex:1;font-size:12.5px;color:var(--text1);line-height:1.4;}
.fd-txt b{color:var(--cb);}
.fd-txt em{font-style:normal;color:var(--text2);font-weight:600;}
.fd-no{color:var(--text3);font-size:11px;}
.fd-st{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap;}
.fd-time{font-size:11px;color:var(--text3);white-space:nowrap;}
/* 状态标签 */
.st{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap;}
.st-pending{background:#FFF3E0;color:#E08A1E;}
.st-following{background:#E8F5E9;color:#2E8B57;}
.st-reviewing{background:#FFF8E1;color:#C9A26B;}
.st-closed{background:#E3F2FD;color:#1080E7;}
/* 老化标签 */
.age{font-size:11px;font-weight:600;color:var(--text3);}
.age-warn{color:#E08A1E;}
.age-danger{color:#D4574F;font-weight:700;}
.age-sleep{color:#A08Fb4;font-style:italic;}
.exp{font-size:10.5px;color:#D4574F;margin-top:2px;}
/* 业务类型小标签 */
.biz-type{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;color:#fff;padding:3px 9px;border-radius:999px;white-space:nowrap;}
/* 表格内客户名/电话 */
.biz-cn{display:block;font-weight:700;color:var(--text1);}
.biz-ph{display:block;font-size:11px;color:var(--text3);}
/* 已闭环标记 */
.biz-closed-tag{font-size:11px;color:var(--text3);font-weight:600;}
/* 操作按钮 */
.biz-op{border:none;border-radius:8px;padding:5px 12px;font-size:12px;font-weight:700;cursor:pointer;background:rgba(16,128,231,.1);color:var(--cb);transition:transform 140ms var(--ease-out),background 140ms var(--ease-out);margin-right:4px;}
.biz-op:hover{background:rgba(16,128,231,.18);}
.biz-op:active{transform:scale(.95);}
.biz-op-main{background:var(--cb);color:#fff;}
.biz-op-main:hover{background:var(--cb2);}
.biz-op-success{background:rgba(46,139,87,.12);color:#2E8B57;}
.biz-op-success:hover{background:rgba(46,139,87,.2);}
.biz-op-del{background:rgba(212,87,79,.1);color:#D4574F;}
.biz-op-del:hover{background:rgba(212,87,79,.18);}
/* 工具栏 */
.biz-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
/* 分页 */
.biz-pager{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 0 4px;}
.bp-btn{border:1px solid var(--line);border-radius:9px;padding:6px 14px;font-size:12.5px;font-weight:700;color:var(--cb);background:#fff;cursor:pointer;transition:transform 140ms var(--ease-out),background 140ms var(--ease-out);}
.bp-btn:hover{background:rgba(16,128,231,.06);}
.bp-btn:active{transform:scale(.96);}
.bp-btn:disabled{color:var(--text3);cursor:default;opacity:.5;}
.bp-info{font-size:12.5px;color:var(--text3);}
/* 空提示 */
.biz-empty-tip{text-align:center;color:var(--text3);font-size:13px;padding:20px 0;}
/* ===== 模态框 ===== */
.biz-modal{position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.32);backdrop-filter:blur(3px);}
.biz-modal.open{display:flex;}
.biz-modal-card{background:linear-gradient(180deg,#fff,#F8FAFD);border:1px solid rgba(255,255,255,.85);border-radius:20px;box-shadow:0 24px 60px rgba(0,0,0,.2);padding:24px 26px;width:440px;max-width:92vw;max-height:86vh;overflow-y:auto;animation:bizModalIn 300ms var(--ease-out);}
@keyframes bizModalIn{from{opacity:0;transform:translateY(12px) scale(.97);}to{opacity:1;transform:none;}}
.biz-modal-title{font-size:17px;font-weight:800;color:var(--cb);margin-bottom:16px;display:flex;align-items:center;gap:8px;}
.biz-modal-close{margin-left:auto;border:none;background:none;font-size:20px;color:var(--text3);cursor:pointer;padding:0 4px;line-height:1;}
.biz-modal-close:hover{color:var(--text1);}
.biz-form{display:flex;flex-direction:column;gap:12px;}
.biz-form-row{display:flex;align-items:center;gap:10px;}
.biz-form-lb{font-size:13px;font-weight:600;color:var(--text2);min-width:72px;text-align:right;flex-shrink:0;}
.biz-form-in{flex:1;padding:8px 10px;border:1px solid var(--line);border-radius:9px;font-size:13px;background:#fff;outline:none;transition:border-color 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.biz-form-in:focus{border-color:var(--cb);box-shadow:0 0 0 3px rgba(16,128,231,.12);}
.biz-form-area{flex:1;padding:8px 10px;border:1px solid var(--line);border-radius:9px;font-size:13px;background:#fff;outline:none;resize:vertical;min-height:60px;transition:border-color 160ms var(--ease-out),box-shadow 160ms var(--ease-out);}
.biz-form-area:focus{border-color:var(--cb);box-shadow:0 0 0 3px rgba(16,128,231,.12);}
.biz-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px;padding-top:12px;border-top:1px solid rgba(0,0,0,.06);position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 30%);}
.biz-btn-ok{border:none;border-radius:10px;padding:9px 22px;font-size:13px;font-weight:700;color:#fff;background:var(--cb);cursor:pointer;transition:transform 140ms var(--ease-out),box-shadow 140ms var(--ease-out);}
.biz-btn-ok:hover{box-shadow:0 8px 18px rgba(16,128,231,.3);}
.biz-btn-ok:active{transform:scale(.96);}
.biz-btn-cancel{border:1px solid var(--line);border-radius:10px;padding:9px 18px;font-size:13px;font-weight:700;color:var(--text2);background:#fff;cursor:pointer;transition:background 140ms var(--ease-out);}
.biz-btn-cancel:hover{background:#F4F6F8;}
/* ===== 深色模式 ===== */
body.dark .biz-modal-card{background:linear-gradient(180deg,#111B33,#0F192E);border-color:rgba(70,120,200,.18);}
body.dark .biz-form-in,body.dark .biz-form-area{background:#0D1730;color:#DCE6F2;border-color:rgba(70,120,200,.22);}
body.dark .biz-form-lb{color:#9FB3CD;}
body.dark .biz-btn-cancel{background:#0D1730;color:#93A6BD;border-color:rgba(70,120,200,.2);}
body.dark .biz-form-actions{border-top-color:rgba(70,120,200,.12);background:linear-gradient(180deg,rgba(15,25,46,0),#0F192E 30%);}
body.dark .fd-row{background:rgba(16,28,56,.5);}
body.dark .fd-row:hover{background:rgba(20,60,120,.3);}
body.dark .bt-bar,body.dark .rk-bar{background:rgba(70,120,200,.12);}
body.dark .bp-btn{background:#0D1730;border-color:rgba(70,120,200,.2);color:#6FC2FF;}
body.dark .biz-op{background:rgba(70,120,200,.12);color:#6FC2FF;}
body.dark .biz-op-main{background:#1080E7;color:#fff;}
body.dark .biz-op-success{background:rgba(46,139,87,.15);color:#5FD49E;}
body.dark .biz-op-del{background:rgba(212,87,79,.12);color:#E06A6A;}
body.dark .st-pending{background:rgba(224,138,30,.15);color:#F0B05E;}
body.dark .st-following{background:rgba(46,139,87,.15);color:#5FD49E;}
body.dark .st-reviewing{background:rgba(201,162,107,.15);color:#E0C893;}
body.dark .st-closed{background:rgba(16,128,231,.15);color:#6FC2FF;}
body.dark .biz-type{color:#fff;}

/* ===== 红包奖励通报 · 红包红主题（仅作用于 #rpReportCard，不影响其它卡片） ===== */
#rpReportCard{border:1px solid rgba(211,47,47,.22)!important;box-shadow:0 18px 44px rgba(211,47,47,.13)!important;overflow:hidden;}
#rpReportCard .ck-head{background:linear-gradient(135deg,#C62828,#E53935 68%,#F4511E);margin:-18px -20px 12px;padding:14px 20px;border-radius:20px 20px 0 0;}
#rpReportCard .ck-head .ck-dot{background:#FFD54F;box-shadow:0 0 0 3px rgba(255,213,79,.28);}
#rpReportCard .ck-h-t{color:#fff;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.12);}
#rpReportCard .ck-shot{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.5);box-shadow:none;}
#rpReportCard .ck-shot:hover{background:rgba(255,255,255,.32);}
#rpReportCard .ck-shot:disabled{background:rgba(255,255,255,.12);}
#rpReportCard .ck-head-sub{color:#D32F2F!important;}
#rpReportCard .ck-kpi{border-color:rgba(211,47,47,.20)!important;background:linear-gradient(160deg,#FFF7F7,#FFFBF3)!important;box-shadow:0 10px 26px rgba(211,47,47,.10)!important;}
#rpReportCard .k-num,#rpReportCard .k-num.kt{color:#C62828;}
#rpReportCard .ck-kpi .k-lab{color:#A95555;}
#rpReportCard .ck-table th{background:linear-gradient(120deg,#C62828,#E53935)!important;}
#rpReportCard .ck-table th:first-child{border-top-left-radius:10px;}
#rpReportCard .ck-table th:last-child{border-top-right-radius:10px;}
#rpReportCard .amtcell.ag5{color:#B71C1C;}
#rpReportCard .amtcell.ag4{color:#C62828;}
#rpReportCard .amtcell.ag3{color:#D32F2F;}
#rpReportCard .amtcell.ag2{color:#E57373;}
#rpReportCard .amtcell.ag1{color:#EF9A9A;}
#rpReportCard .rp-amt{font-weight:800;}
#rpReportCard .rp-cnt{display:inline-block;margin-left:5px;font-size:10px;font-weight:700;color:#C62828;background:rgba(211,47,47,.10);border-radius:6px;padding:0 5px;line-height:16px;vertical-align:middle;white-space:nowrap;}
body.dark #rpReportCard .rp-cnt{color:#FF7A7A;background:rgba(229,57,53,.20);}
body.dark #rpReportCard{border-color:rgba(229,57,53,.30)!important;box-shadow:0 18px 44px rgba(0,0,0,.45)!important;}
body.dark #rpReportCard .ck-kpi{background:linear-gradient(160deg,#2A1416,#241012)!important;border-color:rgba(229,57,53,.30)!important;}
body.dark #rpReportCard .k-num,body.dark #rpReportCard .k-num.kt{color:#FF6B6B;}
body.dark #rpReportCard .ck-kpi .k-lab{color:#D99;}
body.dark #rpReportCard .ck-head-sub{color:#FF7A7A!important;}

/* ===== 业务通报 · 完成率可 >100%（超额高亮） ===== */
.ck-rate.over .num{color:#C9A227;font-weight:800;}
body.dark .ck-rate.over .num{color:#F0C24B;}

/* ===== 小西面板 · 排版修正（2026-09 用户反馈：底部状态栏挤压换行 / 输入栏拥挤） ===== */
.xx-panel .kb-model{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;justify-content:flex-start;padding:9px 4px 0;}
.xx-panel .kb-model .mm{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.xx-panel .kb-model .model-sw{flex:0 0 auto;margin:0;white-space:nowrap;}
.xx-panel .kb-model .model-sw .ms{white-space:nowrap;}
.xx-panel .kb-model .kb-newchat{flex:0 0 auto;white-space:nowrap;margin-left:6px;}
.xx-panel .kb-chat-input{gap:6px;padding:8px 8px 8px 13px;}
.xx-panel .kb-chat-input input{min-width:0;}
.xx-panel .xx-ocr-btn{width:32px;height:32px;border-radius:10px;}
.xx-panel .xx-ocr-btn svg{width:16px;height:16px;}
.xx-panel .kb-hero{padding:18px 14px 16px;}

/* ===== 商机获取进度（每月 / 国庆营销；2026-09-26 新增）===== */
.biz-prog{display:flex;flex-direction:column;gap:9px;padding:4px 0;}
.biz-prog .pg-grp{display:flex;flex-direction:column;gap:7px;padding-top:9px;margin-top:1px;border-top:1px dashed var(--line);}
.pg-grp-t{font-size:11.5px;font-weight:800;color:var(--text3);letter-spacing:.5px;}
.pg-num{font-size:13px;font-weight:800;color:var(--text1);min-width:108px;text-align:right;white-space:nowrap;}
.pg-num small{font-size:11px;font-weight:700;color:var(--text3);margin-left:4px;}
.pg-num.hit{color:#1E9E6A;}
.pg-note{font-size:12px;color:var(--text3);line-height:1.75;}
.pg-note b{color:var(--cb);font-weight:800;}
body.dark .pg-num.hit{color:#35E0B0;}
/* 逐人进度（2026-09-26 改：体现每个人的情况） */
.ck-card.biz-card.pg-full{grid-column:1 / -1;}
.pg-people{display:grid;grid-template-columns:repeat(auto-fit,minmax(214px,1fr));gap:7px 18px;padding-top:2px;}
.pg-p{display:flex;align-items:center;gap:7px;}
.pg-pn{font-size:12.5px;font-weight:700;color:var(--text1);min-width:52px;white-space:nowrap;}
.pg-p .bt-bar.pg-thin{height:8px;}
.pg-pv{font-size:11.5px;font-weight:800;color:var(--text1);min-width:78px;text-align:right;white-space:nowrap;}
.pg-pv small{font-size:10.5px;font-weight:700;color:var(--text3);margin-left:3px;}
.pg-p.zero .pg-pn,.pg-p.zero .pg-pv{color:var(--text3);}
.pg-grp-t b{font-weight:800;}
