:root{--ink:#152d38;--muted:#73858e;--teal:#138578;--teal-dark:#0b655b;--teal-soft:#eaf7f3;--line:#e6ecee;--paper:#fff;--bg:#f5f8f9;--amber:#a7751c;--red:#bc514f;--shadow:0 4px 20px #173d4e05}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font:14px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink)}button,input,select,textarea{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus,select:focus,textarea:focus{outline:2px solid #50bbae;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:29px;letter-spacing:-.6px;line-height:1.35}h2{font-size:19px}h3{font-size:15px}.hidden{display:none!important}.sidebar{position:fixed;left:0;top:0;bottom:0;width:226px;background:#fff;border-right:1px solid var(--line);padding:28px 16px 18px;display:flex;flex-direction:column;overflow-y:auto}.brand{display:flex;align-items:center;gap:11px;padding:0 8px;font-size:17px;font-weight:700;white-space:nowrap}.brand-mark{display:grid;place-items:center;background:var(--teal);color:white;width:37px;height:40px;border-radius:11px;font-size:23px}.brand small{display:block;font-size:8px;font-weight:500;letter-spacing:1px;color:#8c9ba2}.workspace-card{margin:27px 7px 13px;padding:13px;background:#f5f9f8;border:1px solid #e4eeeb;border-radius:10px;font-size:12px}.workspace-card small{display:block;color:var(--muted);font-size:11px;margin:4px 0 0 13px}.status-dot{display:inline-block;width:6px;height:6px;background:#41a487;border-radius:50%;margin-right:7px}.nav-label{font-size:10px;font-weight:600;color:#9aabb0;letter-spacing:1.5px;margin:18px 15px 8px}.nav{border:0;background:transparent;display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:11px 14px;border-radius:8px;color:#637780;margin:3px 0;white-space:nowrap}.nav>span:first-child{width:17px;font-size:19px;line-height:1}.nav.active{background:var(--teal-soft);color:var(--teal-dark);font-weight:650}.nav:hover{background:#f2f7f6}.nav i{font-size:9px;font-style:normal;margin-left:auto;color:var(--teal);background:#fff;padding:1px 4px;border-radius:3px}.nav-count{margin-left:auto;font-size:11px;border-radius:5px;background:#eef2f3;padding:0 5px}.sidebar-foot{margin-top:auto;padding:27px 10px 0;font-size:11px;color:#85969d}.sidebar-foot b,.sidebar-foot span,.sidebar-foot small{display:block}.sidebar-foot b{color:#59716f}.sidebar-foot small{font-size:9px;margin-top:5px}.shell{margin-left:226px}.topbar{height:72px;border-bottom:1px solid var(--line);background:#ffffffed;display:flex;align-items:center;justify-content:space-between;padding:0 35px;position:sticky;top:0;z-index:5;backdrop-filter:blur(12px)}.breadcrumb{font-size:12px;color:#8e9ca3}.breadcrumb span{margin:0 12px;color:#c0cbcf}.breadcrumb b{color:#4f6670;font-weight:500}.top-actions{display:flex;align-items:center;gap:10px}.tag{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;background:var(--teal-soft);border-radius:6px;color:var(--teal-dark);font-size:11px;white-space:nowrap}.tag.warn{background:#fff5e2;color:var(--amber)}.tag.red{background:#fff0ee;color:var(--red)}.tag.gray{background:#f0f3f4;color:#778990}.btn{border:1px solid #dde6e7;border-radius:7px;color:#4a626d;background:#fff;padding:8px 14px;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.btn:hover{background:#f3f9f7;border-color:#bdd8d0}.btn.primary{background:var(--teal);border-color:var(--teal);color:white;box-shadow:0 3px 8px #13857815}.btn.primary:hover{background:var(--teal-dark)}.btn.small{padding:6px 10px;font-size:11px}.btn.danger{color:var(--red)}.link{border:0;background:transparent;color:var(--teal);padding:0;font-size:12px;white-space:nowrap}.icon-btn{border:0;background:transparent;color:#7c9198;font-size:24px;padding:0 7px}.icon-btn:hover{color:var(--teal)}main{padding:30px 35px 50px;max-width:1800px;margin:auto}.eyebrow{display:block;font-size:9px;font-weight:650;color:#8b9f9d;letter-spacing:2px;margin-bottom:9px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:9px 0 24px}.page-head p{color:var(--muted);font-size:12px;margin-top:9px}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.notice{padding:10px 14px;border:1px solid #deece7;background:#edf7f3;color:#5a7972;border-radius:8px;font-size:11px;margin-bottom:24px}.notice.warn{background:#fff9ec;border-color:#f2e8cc;color:#97834a}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0 25px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;box-shadow:var(--shadow);text-align:left;min-width:0;color:inherit}.metric-card:hover{border-color:#9fcdbf;transform:translateY(-1px)}.metric-card .label{font-size:11px;color:#70858d;display:flex;justify-content:space-between}.metric-card .value{font-size:30px;line-height:1.2;font-weight:650;margin:11px 0 7px;letter-spacing:-1px;font-variant-numeric:tabular-nums}.metric-card .foot{font-size:10px;color:#a0adb3}.metric-card.emphasis{background:var(--teal-dark);border-color:var(--teal-dark);color:#fff}.metric-card.emphasis .label,.metric-card.emphasis .foot{color:#b7d9d2}.grid-2{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;margin:20px 0}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.panel{border:1px solid var(--line);background:#fff;border-radius:12px;box-shadow:var(--shadow);overflow:hidden;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:18px 21px;border-bottom:1px solid #f0f3f4;gap:12px}.panel-head p{font-size:11px;color:var(--muted);margin-top:4px}.panel-body{padding:20px}.section-label{display:flex;align-items:center;justify-content:space-between;margin:25px 0 12px}.section-label small{font-size:11px;color:#9aa9af}.bars{display:flex;flex-direction:column;gap:21px}.bar-line{display:grid;grid-template-columns:90px 1fr 39px;align-items:center;gap:12px;font-size:12px}.bar-bg{height:7px;border-radius:5px;background:#edf4f2;overflow:hidden}.bar-fill{height:7px;background:#47a891;border-radius:5px}.bar-num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.legend{display:flex;gap:16px;color:var(--muted);font-size:10px;margin-top:18px}.legend i{display:inline-block;width:6px;height:6px;border-radius:2px;background:var(--teal);margin-right:5px}.chain-example{display:flex;align-items:stretch;gap:9px;margin-bottom:17px}.chain-node{flex:1;background:#f4f9f7;border:1px solid #e1ede8;border-radius:8px;padding:13px 10px;min-width:0}.chain-node small{display:block;color:#91a39e;font-size:10px}.chain-node b{font-size:14px;font-weight:600}.chain-arrow{display:flex;align-items:center;color:#adc0ba}.hint{font-size:11px;line-height:1.8;color:var(--muted)}.hint b{color:#4c7468}.issue-row{display:flex;gap:10px;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #f0f3f4;font-size:12px}.issue-row:last-child{border-bottom:0}.issue-row small{display:block;font-size:10px;color:#95a3a9;margin-top:3px}.chips{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.chip{padding:1px 6px;border:1px solid #e5ece9;color:#7e948a;border-radius:4px;font-size:10px;white-space:nowrap}.upload-zone{border:1.5px dashed #b8d8cf;background:#f6fbf9;border-radius:10px;text-align:center;padding:34px 20px;position:relative}.upload-zone .big-icon{font-size:35px;color:var(--teal);line-height:1;margin-bottom:15px}.upload-zone h3{font-size:16px;margin-bottom:7px}.upload-zone p{font-size:11px;color:#829990;margin-bottom:20px}.upload-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.upload-zone .btn{pointer-events:none}.upload-zone:hover{border-color:var(--teal)}.file-state{margin:12px 0;display:flex;align-items:center;justify-content:space-between;padding:12px;background:#f5f8f7;border-radius:7px;font-size:12px}.text-source{width:100%;height:180px;resize:vertical}.text-source::placeholder{font-size:12px;color:#a3b1b5}.kind-selector{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0 18px}.kind-selector button{border:1px solid var(--line);background:white;padding:6px 13px;font-size:11px;border-radius:6px;color:#72878f}.kind-selector button.active{border-color:#8ac3b3;background:var(--teal-soft);color:var(--teal)}.steps{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 24px;margin-bottom:20px;font-size:12px;color:#94a4ab}.step{display:flex;align-items:center;gap:9px}.step i{font-style:normal;border:1px solid #d3e1dc;background:#f6faf8;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;color:#719a8e;font-size:11px}.step.active{color:#286e5c}.step.active i{background:var(--teal);border-color:var(--teal);color:white}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 18px}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#6d828a;min-width:0}.field.full{grid-column:1/-1}.field small{font-size:10px;color:#a5b1b6}input,select,textarea{border:1px solid #dce6e5;border-radius:7px;padding:9px 10px;color:#3b535e;background:#fff;min-width:0;max-width:100%;font-size:12px}input::placeholder,textarea::placeholder{color:#afbbc0}input[type=checkbox]{accent-color:var(--teal)}.filter-bar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:17px 20px;border-bottom:1px solid var(--line)}.filter-bar .field{min-width:120px}.filter-bar .search{flex:1;min-width:200px}.filter-caption{padding:12px 21px;font-size:10px;color:#92a3aa;display:flex;justify-content:space-between;border-bottom:1px solid #f0f3f4;gap:10px}.table-wrap{overflow:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left;white-space:nowrap}th{font-weight:500;color:#8b9da4;font-size:10px;padding:12px 19px;background:#fbfcfc;border-bottom:1px solid var(--line)}td{padding:14px 19px;border-bottom:1px solid #f0f4f3;color:#58717a;vertical-align:middle}td strong{color:#294b57;font-weight:600}td .sub{display:block;font-size:10px;color:#9baab0;margin-top:3px}.data-link{border:0;background:none;padding:0;color:#197f72;font:inherit;font-weight:600;text-align:left}.data-link:hover{text-decoration:underline}tbody tr:hover{background:#fbfdfc}.number{font-variant-numeric:tabular-nums;font-family:-apple-system,BlinkMacSystemFont,monospace}.pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 21px;font-size:11px;color:#899da3}.pagination .actions{gap:6px}.tabs{display:flex;gap:25px;border-bottom:1px solid #dfe8e5;margin-bottom:20px}.tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:10px 2px;font-size:12px;color:#82969d}.tabs button.active{border-bottom-color:var(--teal);color:var(--teal)}.dept-card{padding:20px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;cursor:pointer;color:inherit}.dept-card:hover{border-color:#93c8b9}.dept-card b{font-size:15px}.dept-card .dept-numbers{display:flex;gap:25px;margin-top:16px}.dept-numbers strong{display:block;font-size:23px;font-weight:600;color:#397b6a}.dept-numbers span{font-size:10px;color:#8ea59b}.detail-top{background:#f4faf7;border:1px solid #e0ede7;border-radius:10px;padding:18px;display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.detail-top h3{font-size:21px}.detail-top p{font-size:11px;color:#8ca49a;margin-top:5px}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 13px;margin-bottom:25px}.detail-item span{display:block;color:#9babb0;font-size:10px}.detail-item b{font-size:12px;font-weight:500;word-break:break-all}.secret-box{background:#fff9ed;border:1px solid #f1e6ca;border-radius:9px;padding:16px;margin-bottom:20px}.secret-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;font-size:12px}.secret-value{font-family:monospace;word-break:break-all}.secret-value:empty{display:none}.relation-card{border:1px solid var(--line);border-radius:9px;padding:14px;margin:10px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}.relation-card small{display:block;font-size:10px;color:#8b9ea5;margin-top:4px}.timeline{border-left:1px solid #dce8e3;padding-left:15px;margin:16px 0 0 5px}.timeline-item{padding:0 0 16px;font-size:11px;color:#879d94}.timeline-item b{color:#5b7f70;font-weight:500;display:block}.error-list{font-size:11px;color:var(--red);white-space:normal;min-width:160px;max-width:280px}.preview-footer{position:sticky;bottom:12px;z-index:3;padding:14px 20px;background:#fff;border:1px solid #dce9e3;border-radius:10px;box-shadow:0 5px 25px #15554214;margin-top:16px;display:flex;justify-content:space-between;gap:14px;align-items:center}.preview-footer label{font-size:11px;color:#788e84;display:flex;align-items:center;gap:8px}.register-card{padding:22px;background:#fff;border:1px solid var(--line);border-radius:10px;margin:20px 0}.register-card h3{margin-bottom:7px}.row-summary{max-width:430px;white-space:normal;line-height:1.8;font-size:11px;color:#788e84}.row-summary strong{font-size:11px}.row-detail-summary{max-height:95px;overflow:auto}.mapping-row{display:flex;align-items:center;gap:10px;font-size:11px;border-bottom:1px solid #eef4f1;padding:7px}.mapping-row span{width:150px;overflow:hidden;text-overflow:ellipsis}.mapping-row select{padding:4px 8px;font-size:11px;max-width:210px}.mini-card{padding:16px;border:1px solid #e6efeb;border-radius:9px;background:#f8fcfa}.mini-card p{font-size:10px;color:#8da499}.mini-card b{font-size:22px;font-weight:600;color:#3f7c68;display:block;margin:6px 0}.modal-layer{position:fixed;inset:0;background:#123c3980;z-index:30;display:flex;align-items:center;justify-content:center;padding:30px;backdrop-filter:blur(3px)}.modal{background:#fff;border:1px solid #e5efeb;border-radius:15px;width:800px;max-width:100%;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 30px 80px #1a48333a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:21px 26px;border-bottom:1px solid var(--line)}.modal-header .eyebrow{font-size:8px;margin:0 0 5px}.modal-body{padding:24px 26px;overflow-y:auto;overscroll-behavior:contain}.modal-footer{padding:16px 26px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.modal-footer .hint{margin-right:auto;font-size:10px}.capacity-cell{font-size:10px;color:#91a49b}.capacity-cell b{font-size:16px;color:#387963;font-weight:600}.capacity-cell.warn b{color:#ab8a36}.capacity-cell .sub{font-size:9px;max-width:120px;white-space:normal}.empty{padding:45px 20px;text-align:center;color:#94a8a0;font-size:12px}.loading{padding:50px;text-align:center;color:var(--teal);font-size:13px}.spinner{display:inline-block;width:13px;height:13px;border:2px solid #cbe4dc;border-top-color:var(--teal);border-radius:50%;animation:spin 1s linear infinite;margin-right:8px;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}#toasts{position:fixed;right:25px;bottom:25px;z-index:60;display:grid;gap:10px;max-width:460px}.toast{padding:12px 18px;border:1px solid #b6d8cb;border-radius:9px;background:#f1faf5;color:#28775e;font-size:12px;box-shadow:0 8px 20px #123c3910}.toast.error{background:#fff4f0;color:#a34d45;border-color:#eed5cc}.inline-error{color:var(--red);font-size:12px;white-space:normal}.money-total{font-variant-numeric:tabular-nums}.form-section{grid-column:1/-1;font-size:11px;color:#1b8270;padding-top:13px;border-top:1px solid var(--line);margin-top:5px}.quiet-note{background:#f6f9f8;border-radius:7px;padding:12px;font-size:11px;color:#80968b;margin-top:15px}.source-thumbnail{display:block;max-height:180px;max-width:100%;border:1px solid var(--line);margin-top:12px;border-radius:7px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){main{padding:38px 45px}.metric-card{padding:22px 25px}.metric-card .value{font-size:34px}}@media(max-width:1100px){.sidebar{width:192px;padding-left:12px;padding-right:12px}.shell{margin-left:192px}.brand{font-size:15px;gap:8px;padding:0}.brand small{font-size:7px;letter-spacing:.5px}.brand-mark{width:31px;height:35px}.topbar{padding:0 24px}main{padding:25px 24px}.metric-grid{gap:12px}.metric-card{padding:16px 14px}.metric-card .value{font-size:26px}.grid-2{grid-template-columns:1fr 1fr}.panel-head,.panel-body{padding:16px}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.sidebar{position:static;width:auto;padding:15px 15px 0;display:block;overflow:visible}.brand{font-size:17px}.brand small{font-size:8px}.workspace-card,.sidebar>.nav-label,.sidebar-foot{display:none}.sidebar nav{display:flex;overflow:auto;gap:5px;margin:13px -15px 0;padding:0 12px;border-top:1px solid var(--line)}nav .nav-label,nav .nav-count,nav i{display:none}.nav{width:auto;flex-shrink:0;padding:11px 10px;margin:0;border-radius:0;font-size:12px;gap:7px}.nav>span:first-child{font-size:15px;width:14px}.nav.active{border-bottom:2px solid var(--teal);background:#f4faf7}.shell{margin-left:0}.topbar{height:51px;padding:0 17px;top:0}.topbar .breadcrumb{font-size:10px}.breadcrumb span{margin:0 5px}.top-actions{gap:4px}.top-actions .tag{font-size:9px;padding:2px 5px}.top-actions .btn{font-size:10px;padding:5px 7px}main{padding:21px 16px 35px}.page-head{gap:12px;align-items:flex-start;flex-wrap:wrap;margin-top:4px}h1{font-size:25px}.page-head p{font-size:11px;margin-top:6px}.eyebrow{font-size:8px;letter-spacing:1.3px}.page-head>.actions{gap:7px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.metric-card{border-radius:9px;padding:15px 14px}.metric-card .label{font-size:10px}.metric-card .value{font-size:28px}.metric-card .foot{font-size:9px}.grid-2,.grid-3{grid-template-columns:1fr;gap:14px}.notice{font-size:10px;margin-bottom:18px}.panel-head{padding:15px 16px}.panel-head h3{font-size:14px}.bar-line{grid-template-columns:88px 1fr 30px;font-size:11px}.filter-bar{padding:14px;gap:10px}.filter-bar .field{flex:1;min-width:110px}.filter-bar .search{width:100%;flex:auto;min-width:180px}.filter-caption{padding:11px 14px}.filter-caption span:last-child{display:none}.tabs{gap:22px;margin-bottom:15px}.steps{padding:14px 12px;gap:5px;font-size:10px}.step{gap:5px}.step i{width:20px;height:20px;font-size:9px}.steps>.arrow{display:none}.form-grid{grid-template-columns:1fr;gap:13px}.form-grid>.field.full{grid-column:auto}.modal-layer{padding:9px;align-items:center}.modal{max-height:96dvh;border-radius:12px}.modal-header,.modal-footer{padding:16px}.modal-header h2{font-size:17px}.modal-body{padding:17px 16px}.detail-grid{gap:16px 10px}.detail-top{padding:14px}.detail-top h3{font-size:18px}.detail-item b{font-size:11px}.modal-footer .btn{font-size:11px;padding:7px 10px}.chain-example{gap:6px}.chain-node{padding:10px 7px}.chain-node b{font-size:12px}.preview-footer{flex-direction:column;align-items:stretch;bottom:5px;padding:13px}.preview-footer .actions{justify-content:flex-end}.preview-footer label{font-size:10px}.mapping-row{gap:5px}.mapping-row span{width:110px}.mapping-row select{max-width:170px}.register-card{padding:17px}.pagination{padding:12px 14px}.pagination .btn{padding:4px 7px;font-size:10px}#toasts{left:15px;right:15px;bottom:18px;max-width:none}.toast{font-size:11px;padding:10px 13px}.secret-item{font-size:11px}.secret-item .btn{font-size:10px}.hint{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.bar-line>.link{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;text-align:left}
