﻿/* [颜色修改区] 全局主题色板 —— 政务严密灰蓝 */
:root{--c-primary:#2f5aa8;--c-primary-dark:#24467f;--c-primary-light:#eaf1fb;--c-sidebar-bg:#24314d;--c-sidebar-text:#c3ccdb;--c-sidebar-active:#2f5aa8;--c-bg:#f4f6fa;--c-panel:#fff;--c-border:#e2e8f2;--c-text:#1f2733;--c-text-sub:#6b7688;--c-todo:#f5a623;--c-doing:#2f80ed;--c-done:#27ae60;--c-danger:#e14b4b;--c-stage-decision:#3b82c4;--c-stage-execute:#e0a63c;--c-stage-quality:#48a999;--radius:6px;--shadow:0 2px 8px rgba(31,39,51,.06);--sidebar-w:220px;--topbar-h:56px}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,"Microsoft YaHei","PingFang SC",sans-serif;background:var(--c-bg);color:var(--c-text);font-size:14px}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.card{background:var(--c-panel);border:1px solid var(--c-border);box-shadow:var(--shadow);border-radius:var(--radius)}.page{padding:18px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:14px}.breadcrumb{color:var(--c-text-sub);font-size:13px;margin-bottom:6px}.page-title{margin:0;font-size:22px}.toolbar{padding:14px;margin-bottom:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.form-control{height:38px;border:1px solid var(--c-border);border-radius:var(--radius);padding:8px 10px;background:#fff;min-width:130px;line-height:normal}.btn{height:34px;padding:0 14px;border-radius:var(--radius);border:1px solid var(--c-primary);background:#fff;color:var(--c-primary)}.btn.primary{background:var(--c-primary);color:#fff}.btn.danger{border-color:var(--c-danger);color:var(--c-danger)}.btn.ghost{border-color:var(--c-border);color:var(--c-text-sub)}.btn:hover{filter:brightness(.96)}.table{width:100%;border-collapse:collapse}.table th{background:#f7f9fc;color:#4b5870;text-align:left;font-weight:600}.table th,.table td{padding:12px;border-bottom:1px solid var(--c-border);vertical-align:middle}.table tr:hover td{background:var(--c-primary-light)}.ops{display:flex;gap:8px;flex-wrap:wrap}.link{border:0;background:transparent;color:var(--c-primary);padding:0}.badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:12px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.kpi{padding:16px}.kpi .num{font-size:28px;font-weight:700;color:var(--c-primary);margin-top:8px}.grid{display:grid;gap:14px}.grid.two{grid-template-columns:1.2fr .8fr}.card-title{padding:14px 16px;border-bottom:1px solid var(--c-border);font-weight:700}.card-body{padding:14px 16px}.pager{display:flex;gap:8px;justify-content:flex-end;padding:12px;color:var(--c-text-sub)}.pager button{border:1px solid var(--c-border);background:#fff;border-radius:4px;padding:4px 9px}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;height:100vh}.topbar{grid-column:1/3;background:linear-gradient(90deg,var(--c-primary-dark),var(--c-primary));color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px}.emblem{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.18);display:grid;place-items:center}.user{position:relative}.user-menu{display:none;position:absolute;right:0;top:36px;background:#fff;color:var(--c-text);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:110px;padding:8px}.sidebar{background:var(--c-sidebar-bg);color:var(--c-sidebar-text);padding:12px 0;overflow:auto}.menu-group-title{padding:12px 18px;color:#fff;font-weight:600;opacity:.95}.menu-item{display:block;padding:10px 18px 10px 34px;color:var(--c-sidebar-text);border-left:3px solid transparent}.menu-item.active,.menu-item:hover{background:rgba(47,90,168,.35);border-left-color:#78a6ff;color:#fff}.main-frame{width:100%;height:calc(100vh - var(--topbar-h));border:0;background:var(--c-bg)}.toast{position:fixed;right:18px;top:18px;z-index:9999;background:#fff;border-left:4px solid var(--c-primary);box-shadow:0 8px 26px rgba(0,0,0,.14);border-radius:6px;padding:12px 16px;animation:slide .2s}.toast.success{border-left-color:var(--c-done)}.toast.error{border-left-color:var(--c-danger)}@keyframes slide{from{transform:translateX(20px);opacity:0}}.mask{position:fixed;inset:0;background:rgba(18,28,48,.36);z-index:9998;display:grid;place-items:center}.modal{width:min(680px,92vw);background:#fff;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.25);overflow:hidden}.modal-h{padding:14px 18px;border-bottom:1px solid var(--c-border);font-weight:700}.modal-b{padding:18px;max-height:70vh;overflow:auto}.modal-f{padding:12px 18px;border-top:1px solid var(--c-border);display:flex;justify-content:flex-end;gap:10px}.progressbar{height:10px;background:#e8edf6;border-radius:99px;overflow:hidden}.progressbar span{display:block;height:100%;background:linear-gradient(90deg,var(--c-primary),#55b6ff);width:0}.login{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:#edf2f8}.login-left{background:linear-gradient(135deg,#203050,#2f5aa8);color:#fff;padding:70px;display:flex;flex-direction:column;justify-content:center}.login-title{font-size:34px;font-weight:800;line-height:1.3}.login-card{width:420px;margin:auto;padding:30px}.tabs{display:flex;gap:10px;margin-bottom:22px}.tab{flex:1;border-bottom:2px solid var(--c-border);padding:10px;text-align:center;cursor:pointer}.tab.active{color:var(--c-primary);border-color:var(--c-primary);font-weight:700}.field{margin-bottom:14px}.field label{display:block;margin-bottom:6px;color:var(--c-text-sub)}.field input,.field select,.field textarea{width:100%;border:1px solid var(--c-border);border-radius:var(--radius);padding:10px;line-height:normal}select.form-control{height:38px;padding:8px 10px;line-height:normal;appearance:auto}.fake-qr{width:190px;height:190px;margin:20px auto;background:repeating-linear-gradient(45deg,#1f2733 0 8px,#fff 8px 16px);border:12px solid #fff;box-shadow:var(--shadow)}.canvas-page{height:100vh;display:grid;grid-template-columns:220px 1fr 310px;grid-template-rows:54px 1fr;background:#eef3f9}.canvas-top{grid-column:1/4;background:#fff;border-bottom:1px solid var(--c-border);display:flex;align-items:center;justify-content:space-between;padding:0 12px}.node-panel{background:#fff;border-right:1px solid var(--c-border);overflow:auto;padding:12px}.canvas-wrap{position:relative;overflow:hidden}.config-panel{background:#fff;border-left:1px solid var(--c-border);overflow:auto;padding:16px}.config-panel .field{margin-bottom:16px}.config-panel .field label{display:block;margin-bottom:8px;color:#4b5870;font-weight:500;font-size:13px}.config-panel .form-control{width:100%}.node-group{margin-bottom:14px}.node-group h4{margin:10px 0;color:#4b5870}.node-item{padding:10px 12px;border:2px solid #e2e8f2;border-radius:8px;margin-bottom:8px;background:#fff;cursor:grab;transition:all .2s;font-size:13px}.node-item:hover{border-color:var(--c-primary);background:var(--c-primary-light);transform:translateX(3px)}.mnode{width:200px;background:#fff;border:1px solid #e5e9f0;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px rgba(47,90,168,.08);font-size:13px;transition:all .2s}.mnode:hover{box-shadow:0 4px 16px rgba(47,90,168,.15);transform:translateY(-2px)}.mnode__bar{display:flex;align-items:center;gap:8px;padding:10px 14px;color:#fff;font-weight:600;font-size:13px}.mnode__ico{font-size:16px}.mnode__desc{padding:10px 14px;color:#6b7688;line-height:1.5;font-size:12px;background:#f8fafc}.mnode--input .mnode__bar{background:#4a7fbe}.mnode--clean .mnode__bar{background:#52a88c}.mnode--analyze .mnode__bar{background:#6b8dd6}.mnode--warn .mnode__bar{background:#e67e7e}#drawflow{background-color:#f8fafc;background-image:radial-gradient(#cbd5e1 1.5px,transparent 1.5px);background-size:20px 20px}.fake-chart{height:300px;display:flex;flex-direction:column}.fake-chart-title{font-weight:700;padding:8px}.fake-chart-body{flex:1;display:flex;align-items:end;gap:10px;padding:20px}.fake-chart-body span{flex:1;background:linear-gradient(#5d8bd7,#2f5aa8);border-radius:4px 4px 0 0}.fake-chart-note{text-align:center;color:var(--c-text-sub);font-size:12px}.split{display:grid;grid-template-columns:240px 1fr;gap:14px}.tree-item{padding:9px;border-radius:6px;cursor:pointer}.tree-item.active,.tree-item:hover{background:var(--c-primary-light);color:var(--c-primary)}
