:root{--primary:#2f6bff;--primary-soft:#eaf1ff;--bg:#f4f6fb;--card:#fff;--text:#22293a;--text2:#7a8399;
--border:#e7ebf3;--danger:#f04a4a;--ok:#22b573;--warn:#f59a23;--purple:#7b5cf0;--radius:14px;--shadow:0 2px 12px rgba(30,50,90,.07)}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:"Microsoft YaHei","PingFang SC",sans-serif;background:var(--bg);color:var(--text);font-size:13.5px}
button{cursor:pointer;border:none;font-family:inherit}
input,select,textarea{font-family:inherit;font-size:13px;border:1px solid var(--border);border-radius:8px;padding:7px 10px;color:var(--text);background:#fff;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--primary)}
.hidden{display:none!important}
.topbar{height:58px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;box-shadow:var(--shadow);position:sticky;top:0;z-index:50}
.topbar-left{display:flex;align-items:center;gap:10px}.logo{font-size:26px}
.topbar-left h1{font-size:17px}.topbar-left p{font-size:11px;color:var(--text2)}
.topbar-center{flex:1;max-width:420px;margin-left:20px}
.topbar-center input{width:100%;background:var(--bg)}
.topbar-right{display:flex;align-items:center;gap:10px}
.datetime{font-size:12px;color:var(--text2)}
.topbar-right button{background:var(--bg);border-radius:8px;padding:6px 8px;font-size:14px}
.body-wrap{display:flex;min-height:calc(100vh - 58px)}
.sidebar{width:186px;background:#fff;padding:12px 10px;flex-shrink:0;box-shadow:var(--shadow);position:sticky;top:58px;height:calc(100vh - 58px);overflow-y:auto;display:flex;flex-direction:column}
.sidebar nav{flex:1}
.nav-item{display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:10px;cursor:pointer;color:var(--text);margin:2px 0;font-size:13px}
.nav-item:hover{background:var(--primary-soft)}
.nav-item.active{background:var(--primary);color:#fff}
#main-content{flex:1;padding:18px;overflow-y:auto;max-height:calc(100vh - 58px)}
.sidebar-foot{margin-top:10px}
.plan-card{background:linear-gradient(135deg,#fff8ec,#fff);border:1px solid #ffe6b3;border-radius:12px;padding:12px;font-size:12px}
.plan-card .bar{height:6px;background:#ffeecb;border-radius:4px;margin:8px 0}
.bar-fill{height:100%;background:linear-gradient(90deg,#f59a23,#f04a4a);border-radius:4px}
.plan-card p{color:var(--text2)}
.hero{background:linear-gradient(120deg,#3d7bff,#7b5cf0 70%,#9b6ef7);border-radius:16px;color:#fff;padding:26px 28px;margin-bottom:16px;position:relative;overflow:hidden}
.hero h2{font-size:26px;margin-bottom:8px}
.hero p{font-size:13px;opacity:.92;margin-bottom:14px}
.hero-tags{display:flex;gap:18px;flex-wrap:wrap}
.hero-tags span{font-size:12px;opacity:.95}
.ai-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:16px}
.ai-chip{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);border-radius:12px;padding:12px 14px;cursor:pointer;font-size:13px}
.ai-chip b{display:block;margin-bottom:3px}
.ai-chip small{opacity:.85}
.ai-chip:hover{background:rgba(255,255,255,.28)}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:14px}
.card h3{font-size:15px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}
.card h3 .ops{display:flex;gap:8px;font-size:12px;font-weight:normal}
.btn{background:var(--primary);color:#fff;border-radius:8px;padding:7px 14px;font-size:13px}
.btn.plain{background:var(--primary-soft);color:var(--primary)}
.btn.gray{background:var(--bg);color:var(--text2)}
.btn.danger{background:#fff0f0;color:var(--danger)}
.btn.sm{padding:4px 10px;font-size:12px;border-radius:6px}
.tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.tbl th{background:var(--bg);padding:8px 9px;text-align:left;color:var(--text2);font-weight:normal;white-space:nowrap}
.tbl td{padding:7px 9px;border-top:1px solid var(--border);word-break:break-all}
.tbl tr:hover td{background:#fafcff}
.tag{display:inline-block;padding:2px 9px;border-radius:10px;font-size:11px;background:var(--primary-soft);color:var(--primary)}
.tag.red{background:#fff0f0;color:var(--danger)}
.tag.green{background:#eefaf3;color:var(--ok)}
.tag.orange{background:#fef5e8;color:var(--warn)}
.tag.purple{background:#f1ecff;color:var(--purple)}
.up{color:var(--ok);font-size:11px}.down{color:var(--danger);font-size:11px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:14px}
.kpi{background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:13px 14px}
.kpi .lab{font-size:11px;color:var(--text2)}
.kpi .num{font-size:20px;font-weight:bold;margin:4px 0 2px}
.kpi .delta{font-size:11px}
.charts2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.modal-mask{position:fixed;inset:0;background:rgba(20,30,50,.4);z-index:100;display:flex;align-items:center;justify-content:center}
.modal{background:#fff;border-radius:16px;width:580px;max-width:92vw;max-height:88vh;display:flex;flex-direction:column}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid var(--border)}
.modal-head h3{font-size:16px}.modal-head button{background:none;font-size:16px;color:var(--text2)}
.modal-body{padding:15px 20px;overflow-y:auto}
.modal-foot{padding:11px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px}
.form-row{margin-bottom:11px}.form-row label{display:block;font-size:12px;color:var(--text2);margin-bottom:5px}
.form-row input,.form-row select,.form-row textarea{width:100%}
.form-row textarea{min-height:70px;resize:vertical}
.form-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.toast{position:fixed;top:66px;left:50%;transform:translateX(-50%);background:#333;color:#fff;padding:9px 20px;border-radius:20px;font-size:13px;z-index:200}
/* 工作流模板 */
.wf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.wf-card{background:var(--bg);border-radius:12px;padding:14px;font-size:12px}
.wf-card h4{font-size:14px;margin-bottom:6px}
.wf-card p{color:var(--text2);min-height:34px}
.wf-card .steps{color:var(--primary);margin:6px 0}
/* 流程图 */
.flow{display:flex;align-items:stretch;gap:0;overflow-x:auto;padding:6px 0}
.flow-node{flex:1;min-width:130px;background:var(--bg);border-radius:12px;padding:14px;text-align:center;font-size:12px}
.flow-node .fi{font-size:22px}
.flow-node b{display:block;margin:6px 0 4px;font-size:13px}
.flow-node p{color:var(--text2)}
.flow-arrow{display:flex;align-items:center;padding:0 8px;color:var(--text2);font-size:16px}
/* 任务表进度 */
.prog{width:70px;height:7px;background:var(--bg);border-radius:5px;display:inline-block;vertical-align:middle;margin-right:6px}
.prog i{display:block;height:100%;border-radius:5px;background:var(--ok)}
/* 日历 */
.cal-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.cal-head h3{margin:0}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal .dow{text-align:center;font-size:12px;color:var(--text2);padding:5px 0}
.cal-cell{background:var(--bg);border-radius:10px;min-height:74px;padding:6px;font-size:11px;cursor:pointer;position:relative}
.cal-cell:hover{background:var(--primary-soft)}
.cal-cell.dim{opacity:.4}
.cal-cell .d{font-weight:bold;font-size:12px}
.cal-ev{border-radius:5px;padding:1px 5px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--text2);margin:8px 0}
.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:4px}
/* 待办/列表 */
.list-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px dashed var(--border);font-size:13px}
.todo-item{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px dashed var(--border);font-size:13px}
.todo-item.done span{text-decoration:line-through;color:var(--text2)}
.pill-ico{width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:16px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.tabs button{background:var(--bg);border-radius:16px;padding:5px 13px;font-size:12px;color:var(--text2)}
.tabs button.active{background:var(--primary);color:#fff}
.donut-wrap{display:flex;align-items:center;gap:18px}
.gen-result{background:var(--bg);border-radius:12px;padding:13px;font-size:13px;line-height:1.8;white-space:pre-wrap;max-height:420px;overflow-y:auto}
.rank-item{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px dashed var(--border);font-size:13px}
.rank-item .thumb{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:17px}
.chat-hint{display:flex;flex-direction:column;gap:8px}
.chat-hint .hint{background:var(--bg);border-radius:10px;padding:8px 12px;font-size:12px;cursor:pointer;display:flex;justify-content:space-between}
@media(max-width:900px){.charts2,.grid2,.grid3{grid-template-columns:1fr}.sidebar{width:60px}.nav-item span.txt,.plan-card{display:none}}
