:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f6f8;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{height:100%}body{background:#f4f6f8;min-width:0;min-height:100vh;margin:0;overflow:hidden}a{color:inherit;text-decoration:none}#app{height:100%;min-height:100vh}.page-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 6px 18px #0f172a0f}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.page-title{color:#111827;font-size:20px;font-weight:600}.page-subtitle{color:#6b7280;margin-top:4px;font-size:13px}.toolbar-row{flex-wrap:wrap;gap:12px;margin-bottom:16px;display:flex}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.stats-card{background:linear-gradient(135deg,#fff 0%,#f9fbff 100%);border:1px solid #eef2f7;border-radius:12px;padding:18px}.stats-label{color:#6b7280;margin-bottom:10px;font-size:13px}.stats-value{color:#111827;font-size:28px;font-weight:700}.grid-two{grid-template-columns:1.5fr 1fr;gap:16px;display:grid}.report-breakdown-stack{flex-direction:column;gap:16px;display:flex}.report-wide-table{width:100%}.report-wide-table .el-button.is-link{white-space:nowrap}.report-clickable-row{cursor:pointer}.report-clickable-row>td{transition:background-color .18s}.report-clickable-row:hover>td,.report-clickable-row.hover-row>td{background:#f5f9ff!important}.report-row-trigger{color:#2563eb;font-weight:500}.report-wide-table .el-table__header .cell,.report-column-header{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.report-column-header{display:block}.chart-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 6px 18px #0f172a0f}.chart-title{margin-bottom:12px;font-size:16px;font-weight:600}.empty-tip{text-align:center;color:#9ca3af;padding:48px 0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;display:grid}.full-width{grid-column:1/-1}.status-chip{border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;display:inline-flex}.status-success{color:#0f9d58;background:#e8f8ef}.status-warning{color:#d97706;background:#fff6e5}.status-danger{color:#dc2626;background:#fdecec}.status-info{color:#2563eb;background:#eef4ff}.organization-page-lite .el-tree{background:0 0}.organization-page-lite .el-tree-node__content{height:auto;padding:6px 0}.organization-page-lite .el-tree-node__expand-icon{color:#64748b}.organization-lite-tree{background:#fcfdff;border:1px solid #edf2f7;border-radius:12px;padding:10px 12px}.organization-lite-node{border-radius:10px;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:10px 12px;transition:background-color .2s,box-shadow .2s;display:flex}.organization-lite-node:hover{background:#f8fbff;box-shadow:inset 0 0 0 1px #e5eefc}.organization-lite-node__main{flex-direction:column;gap:4px;min-width:0;display:flex}.organization-lite-node__title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.organization-lite-node__title{color:#1e293b;font-size:15px;line-height:1.4}.organization-lite-node__meta{color:#94a3b8;font-size:12px}.organization-lite-detail{padding-right:8px}.dashboard-page{flex-direction:column;gap:16px;display:flex}.dashboard-kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;display:grid}.dashboard-kpi-card{--metric-accent:#2563eb;--metric-soft:#eff6ff;--metric-border:#dbeafe;border:1px solid var(--metric-border);background:#fff;border-radius:12px;min-height:166px;padding:16px;position:relative;overflow:hidden;box-shadow:0 8px 22px #0f172a12}.dashboard-kpi-card:before{background:var(--metric-accent);content:"";height:4px;position:absolute;inset:0 0 auto}.dashboard-kpi-card:after{background:linear-gradient(135deg, transparent 0 34%, var(--metric-soft) 34% 100%);content:"";width:118px;height:118px;position:absolute;bottom:0;right:-42px}.dashboard-kpi-card--ledger{--metric-accent:#2563eb;--metric-soft:#eff6ff;--metric-border:#bfdbfe}.dashboard-kpi-card--ribbon{--metric-accent:#059669;--metric-soft:#ecfdf5;--metric-border:#bbf7d0}.dashboard-kpi-card--signal{--metric-accent:#d97706;--metric-soft:#fffbeb;--metric-border:#fde68a}.dashboard-kpi-card--marker{--metric-accent:#e11d48;--metric-soft:#fff1f2;--metric-border:#fecdd3}.dashboard-kpi-card--panel{--metric-accent:#475569;--metric-soft:#f1f5f9;--metric-border:#cbd5e1}.dashboard-kpi-card__top,.dashboard-kpi-card__visual,.dashboard-kpi-card__value{z-index:1;position:relative}.dashboard-kpi-card__top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dashboard-kpi-card__label{color:#475569;font-size:13px;font-weight:600}.dashboard-kpi-card__badge{border:1px solid var(--metric-border);background:var(--metric-soft);min-width:34px;height:26px;color:var(--metric-accent);text-align:center;border-radius:999px;flex:none;padding:3px 8px;font-size:12px;font-weight:700;line-height:18px}.dashboard-kpi-card__value{color:#0f172a;font-variant-numeric:tabular-nums;margin-top:18px;font-size:30px;font-weight:750;line-height:1.16}.dashboard-kpi-card__desc{color:#64748b;max-width:180px;margin-top:6px;font-size:12px;line-height:18px}.dashboard-kpi-card__visual{min-height:44px;margin-top:14px}.dashboard-kpi-card__visual--ledger,.dashboard-kpi-card__visual--ribbon,.dashboard-kpi-card__visual--signal,.dashboard-kpi-card__visual--marker,.dashboard-kpi-card__visual--panel{align-items:end;gap:12px;display:grid}.dashboard-kpi-card__visual--ledger{grid-template-columns:minmax(0,1fr)}.dashboard-kpi-card__visual--ribbon{grid-template-columns:18px minmax(0,1fr)}.dashboard-kpi-card__visual--signal{grid-template-columns:52px minmax(0,1fr);align-items:center}.dashboard-kpi-card__visual--marker{grid-template-columns:minmax(0,1fr) 38px;align-items:center}.dashboard-kpi-card__visual--panel{grid-template-columns:minmax(0,1fr) 32px}.dashboard-kpi-card__meter{background:#e5e7eb;border-radius:999px;height:8px;display:block;position:relative;overflow:hidden}.dashboard-kpi-card__meter:after{width:var(--metric-progress);border-radius:inherit;background:var(--metric-accent);content:"";transition:width .18s ease-out;position:absolute;inset:0 auto 0 0}.dashboard-kpi-card__ticks{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin-top:12px;display:grid}.dashboard-kpi-card__ticks i{background:#e2e8f0;border-radius:3px;height:16px}.dashboard-kpi-card__ticks i.is-active{background:var(--metric-accent);opacity:.82}.dashboard-kpi-card__ribbon-track{background:var(--metric-soft);border-radius:999px;width:14px;height:44px;display:block;position:relative;overflow:hidden}.dashboard-kpi-card__ribbon-track i{border-radius:inherit;background:var(--metric-accent);min-height:8px;transition:height .18s ease-out;display:block;position:absolute;inset:auto 0 0}.dashboard-kpi-card__spark{justify-content:space-between;align-items:end;height:40px;padding:0 2px;display:flex}.dashboard-kpi-card__spark i{background:var(--metric-accent);opacity:.78;border-radius:999px 999px 2px 2px;width:6px;min-height:8px;transition:height .18s ease-out}.dashboard-kpi-card__signal{width:46px;height:42px;display:block;position:relative}.dashboard-kpi-card__signal i{border:1px solid var(--metric-accent);opacity:.26;border-radius:999px;animation:1.8s ease-in-out infinite dashboard-signal-pulse;position:absolute}.dashboard-kpi-card__signal i:first-child{background:var(--metric-accent);opacity:.74;inset:15px 17px}.dashboard-kpi-card__signal i:nth-child(2){animation-delay:.12s;inset:8px 10px}.dashboard-kpi-card__signal i:nth-child(3){animation-delay:.24s;inset:1px 3px}.dashboard-kpi-card__marker-line{background:repeating-linear-gradient(90deg, var(--metric-border) 0 10px, transparent 10px 16px);border-radius:999px;height:2px;display:block;position:relative}.dashboard-kpi-card__marker-line i{background:var(--metric-accent);width:14px;height:14px;box-shadow:0 0 0 1px var(--metric-accent);border:3px solid #fff;border-radius:999px;transition:left .18s ease-out;position:absolute;top:50%;transform:translate(-50%,-50%)}.dashboard-kpi-card__dot-grid{grid-template-columns:repeat(3,8px);justify-content:end;gap:5px;display:grid}.dashboard-kpi-card__dot-grid i{background:#e2e8f0;border-radius:2px;width:8px;height:8px}.dashboard-kpi-card__dot-grid i.is-active{background:var(--metric-accent)}.dashboard-kpi-card__panel-stack{align-items:end;gap:7px;height:44px;display:flex}.dashboard-kpi-card__panel-stack i{height:var(--panel-height);border:1px solid var(--metric-border);background:linear-gradient(180deg, var(--metric-soft) 0%, var(--metric-accent) 100%);opacity:.78;border-radius:6px 6px 3px 3px;flex:1 1 0;min-height:16px;transition:height .18s ease-out}.dashboard-kpi-card__corner{border-right:2px solid var(--metric-accent);border-bottom:2px solid var(--metric-accent);opacity:.32;width:28px;height:28px;position:absolute;bottom:12px;right:14px}.dashboard-kpi-card--signal .dashboard-kpi-card__meter{background-image:repeating-linear-gradient(90deg,#f8fafc 0 8px,#e2e8f0 8px 10px);height:12px}.dashboard-kpi-card--panel{background:linear-gradient(#fff 0%,#f8fafc 100%)}@keyframes dashboard-signal-pulse{0%,to{transform:scale(.96)}50%{transform:scale(1.04)}}.dashboard-kpi-card__desc.tone-success{color:#15803d}.dashboard-kpi-card__desc.tone-warning{color:#b45309}.dashboard-kpi-card__desc.tone-danger{color:#be123c}.dashboard-kpi-card__desc.tone-info{color:#1d4ed8}.dashboard-kpi-card__desc.tone-primary{color:#334155}@media (width<=1320px){.dashboard-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.dashboard-kpi-grid{grid-template-columns:1fr}}.el-overlay.is-message-box{padding:16px}.el-overlay.is-message-box .el-overlay-message-box{width:100%}.el-message-box{border-radius:8px;width:min(420px,100vw - 32px);max-width:calc(100vw - 32px)}.el-message-box__container{min-width:0}.el-message-box__message{overflow-wrap:anywhere;word-break:break-word;min-width:0;line-height:1.6}.el-message-box__btns{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.el-message{border-radius:8px;max-width:calc(100vw - 32px);min-width:min(320px,100vw - 32px)!important}.el-message .el-message__content{overflow-wrap:anywhere;word-break:break-word;min-width:0;line-height:1.5}@media (width<=480px){.el-message-box__btns .el-button{flex:96px;margin-left:0}}
