:root{--navy: #003087;--red: #c8102e;--func-blue: #0078d4;--light-blue: #eff6fc;--light-red: #fdf3f4;--bg: #f5f5f5;--border: #e0e0e0;--aux: #616161;--green: #107c10;--orange: #ff8c00;--card-shadow: 0 10px 28px rgba(0, 48, 135, .07);--card-shadow-soft: 0 4px 14px rgba(0, 48, 135, .05);--radius: 8px}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;min-height:100%;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#1a1a1a;background:var(--bg)}.app-shell{min-height:100vh;background:radial-gradient(1200px 520px at 100% 0%,rgba(0,120,212,.11),transparent 60%),radial-gradient(900px 460px at 0 100%,rgba(0,48,135,.07),transparent 56%),var(--bg)}.top-nav{height:60px;padding:0 20px;border-bottom:.5px solid #dde4ef;background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between}.brand-left{display:flex;align-items:center;gap:12px}.logo{height:28px;width:auto}.brand-divider{width:1px;height:20px;background:#d8e0ec}.brand-left h1{margin:0;font-size:17px;line-height:1.1;font-weight:700;letter-spacing:.2px;color:var(--navy)}.brand-right{display:flex;align-items:center;gap:10px}.version-badge{background:var(--red);color:#fff;border-radius:999px;font-weight:700}.body-shell{min-height:calc(100vh - 60px);padding:12px;gap:12px;display:flex}.left-nav{width:200px;flex-shrink:0;display:flex;flex-direction:column;justify-content:space-between;gap:12px}.fluent-rail{border:.5px solid #dce5f2;border-radius:12px;box-shadow:var(--card-shadow-soft);background:linear-gradient(180deg,#f8fbff,#f4f8fd);padding:8px}.rail-card{border:.5px solid #dfe6f2;border-radius:10px;box-shadow:none;padding:8px;background:#fff}.rail-card-head{padding:4px 4px 8px;color:#415776;font-size:12px}.nav-tab-list{margin-top:6px;gap:4px}.nav-tab-item{justify-content:flex-start;position:relative;border-radius:6px;min-height:34px;color:#3a506f;font-size:13px}.nav-tab-item:hover{background:#f4f8fd}.nav-tab-item[aria-selected=true]{background:#eaf2ff;color:#1f3f73;box-shadow:inset 0 0 0 1px #0078d433}.nav-tab-item[aria-selected=true]:before{content:"";position:absolute;left:-6px;top:7px;bottom:7px;width:2px;border-radius:999px;background:var(--func-blue)}.compliance-card{background:linear-gradient(180deg,#fff,#fdf9fa);color:#344864;border:.5px solid #e7d7db;border-left:3px solid #c8102e;border-radius:10px;box-shadow:none;padding:12px}.compliance-title{font-weight:700;margin-bottom:6px;color:#2d4264}.compliance-text{margin:0;line-height:1.45;font-size:12px;color:#425774}.compliance-caption{color:#6b7f99;margin-top:6px}.content-shell{flex:1;min-width:0;border-radius:14px;border:.5px solid #dfe6f2;background:#ffffffe6;box-shadow:var(--card-shadow);padding:16px;overflow:auto}.content-shell::-webkit-scrollbar{width:8px;height:8px}.content-shell::-webkit-scrollbar-thumb{border-radius:999px;background:#c8d2e1}.page-section{display:flex;flex-direction:column;gap:14px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.page-header-copy{min-width:0}.page-header-title{margin:0;color:var(--navy);font-size:29px;line-height:1.15;font-weight:800;letter-spacing:.2px}.page-header-subtitle{color:#5f6f85;margin-top:-4px;display:inline-block}.page-header-right{display:flex;align-items:center;gap:8px}.surface-card{border:.5px solid #dce5f2;border-radius:12px;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:var(--card-shadow-soft);padding:12px}.surface-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpi-card{border:.5px solid #d9e4f2;border-radius:12px;padding:12px;background:linear-gradient(150deg,#fff,#f4f8ff 82%)}.kpi-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.kpi-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--navy);border:.5px solid #bfd7f7;background:linear-gradient(135deg,#eaf3ff,#d8e9ff)}.kpi-value{font-size:28px;font-weight:800;color:var(--navy);line-height:1.1}.kpi-hint{color:var(--aux)}.dashboard-main-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:12px}.audit-list{display:flex;flex-direction:column;gap:8px}.audit-item{border:.5px solid #dfe6f2;border-radius:9px;padding:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff}.audit-item-main{display:flex;align-items:flex-start;gap:8px;min-width:0}.audit-item-copy{min-width:0}.audit-copy-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.audit-file-name{color:#4f6381;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.compliance-track-list{display:flex;flex-direction:column;gap:10px}.compliance-track-row{display:flex;flex-direction:column;gap:5px}.compliance-track-label{display:flex;align-items:center;justify-content:space-between;gap:8px}.compliance-pass-bar{margin:10px 0}.coverage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.coverage-item{border-radius:9px;border:.5px solid #dbe5f2;padding:10px;background:#fff;display:flex;flex-direction:column;gap:4px}.coverage-value{font-size:22px;font-weight:800;color:var(--navy)}.rules-page{gap:12px}.rules-main-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:12px}.rules-list{display:flex;flex-direction:column;gap:10px}.rule-card{border:.5px solid #dbe5f2;border-radius:10px;cursor:pointer;transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}.rule-card:hover{transform:translateY(-1px);border-color:#bdd0e8;box-shadow:0 8px 20px #00308714}.rule-card.expanded{border-color:#9dc0eb;box-shadow:0 10px 22px #0078d421}.rule-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.rule-copy{min-width:0}.rule-title-line{display:flex;align-items:center;gap:8px}.rule-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.rule-dot.on{background:var(--green);box-shadow:0 0 0 4px #107c1026}.rule-dot.off{background:#8c8c8c;box-shadow:0 0 0 4px #8c8c8c24}.rule-method{margin-top:4px;color:#5d6f8a;font-size:12px}.rule-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.rule-expand-panel{margin-top:10px;border-top:.5px solid #dbe5f2;padding-top:10px;display:flex;flex-direction:column;gap:9px}.rule-example-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rule-example-block{display:flex;flex-direction:column;gap:4px}.rule-example-label{color:#4b5f7d;font-size:12px}.rule-example-raw,.rule-example-masked{border-radius:7px;border:.5px solid #d9e3f1;background:#f4f7fb;padding:6px 8px;font-family:SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rule-example-masked{color:var(--red);border-color:#f2c8cf;background:var(--light-red);font-weight:700}.rule-command-row{display:flex;align-items:center;gap:8px}.rules-side-stack{display:flex;flex-direction:column;gap:12px}.rules-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.rules-kpi-card{padding:10px;border-radius:9px;border:.5px solid #d9e3f1;display:flex;flex-direction:column;gap:3px}.rules-kpi-value{font-size:22px;font-weight:800;color:var(--navy)}.rules-coverage-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.rules-note-card{background:linear-gradient(180deg,#f9fcff,#f3f8ff)}.rules-guideline-list{display:flex;flex-direction:column;gap:8px}.preview-page{gap:12px}.preview-toolbar-card{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.preview-toolbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.preview-table-card{border-radius:12px;overflow:auto;padding:0}.preview-table-card .fui-Table{min-width:980px}.preview-table-card .fui-TableHeaderCell,.preview-table-card .fui-TableCell{border-bottom:.5px solid #dfe5ef;padding-top:8px;padding-bottom:8px;font-size:12px}.preview-table-card .fui-TableHeaderCell{position:sticky;top:0;z-index:1;background:#f7fbff}.raw-head{background:#fdf3f4;color:#a73848}.masked-head{background:#fff4e8;color:#ba5d17}.raw-cell{background:#fdf8f9;color:#8f4452}.masked-cell{color:var(--red);font-weight:700}.preview-summary-bar{border-radius:12px;border:.5px solid #cfe2f8;background:var(--light-blue);box-shadow:none;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.preview-summary-left{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.upload-page{min-height:calc(100vh - 108px)}.upload-idle-panel{min-height:calc(100vh - 182px);border:.5px solid #d7e3f4;border-radius:12px;box-shadow:var(--card-shadow);background:radial-gradient(720px 260px at 0% 0%,rgba(0,120,212,.12),transparent 58%),linear-gradient(135deg,#fff,#f4f9ff 68%,#edf5ff);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:28px;transition:all .2s ease}.upload-idle-panel.dragging{outline:2px dashed var(--func-blue);outline-offset:-10px;background:radial-gradient(720px 260px at 0% 0%,rgba(0,120,212,.2),transparent 58%),#e9f4ff}.idle-panel-title{font-size:28px;line-height:1.2;color:var(--navy);font-weight:800;margin-bottom:2px}.idle-panel-subtitle{max-width:700px;color:#5f7090;margin:6px 0 16px;line-height:1.6}.upload-feature-row{display:flex;align-items:center;gap:6px;margin-bottom:14px;flex-wrap:wrap;justify-content:center}.upload-feature-pill{background:#f7f9fc;border-color:#d8e1ed;color:#49607f;font-size:12px}.hero-actions{display:flex;align-items:center;gap:10px}.processing-full-panel{min-height:calc(100vh - 182px);border:.5px solid #d5e3f5;border-radius:12px;background:linear-gradient(180deg,#fcfeff,#f5f9ff);box-shadow:var(--card-shadow);padding:14px;display:grid;grid-template-columns:1.65fr 1fr;gap:12px}.processing-main-card,.processing-side-card{border:.5px solid #d8e4f2;border-radius:10px;background:#fff;padding:14px}.processing-main-card{display:flex;flex-direction:column}.processing-top-line{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.processing-title{font-size:28px;line-height:1.2;color:var(--navy);font-weight:800}.processing-message-bar{margin-bottom:8px}.processing-fluent-progress{margin-bottom:10px}.processing-stages{display:flex;flex-direction:column;gap:8px}.stage-card{border:.5px solid #dce5f2;border-radius:8px;background:#fff;padding:10px;display:flex;align-items:flex-start;gap:10px}.stage-card.active{background:#edf5ff;border-color:#9fc5ee}.stage-card.done{background:#eef8ef;border-color:#bbe0bd}.stage-index{width:27px;height:27px;border-radius:50%;border:1px solid #b8cde8;font-size:12px;font-weight:700;display:grid;place-items:center;color:var(--navy);flex-shrink:0}.stage-card.active .stage-index{background:#dbeeff;color:var(--func-blue);border-color:#8dbce9}.stage-card.done .stage-index{background:#dcf2de;color:var(--green);border-color:#9ecda1}.stage-content{min-width:0}.stage-name{font-size:14px;color:#273e5f;font-weight:700}.stage-detail{font-size:12px;color:#64758d;margin-top:2px}.processing-side-card{display:flex;flex-direction:column;align-items:center}.processing-spinner{margin:8px 0}.processing-stage-badge{margin-bottom:10px}.processing-log-title{width:100%;margin-bottom:8px;font-size:14px;color:var(--navy);font-weight:700}.processing-log-list{width:100%;border:.5px solid #dbe3ee;border-radius:8px;background:#f8fbff;max-height:340px;overflow:auto;padding:8px;display:flex;flex-direction:column;gap:6px}.processing-log-item{display:grid;grid-template-columns:68px 1fr;gap:7px;font-size:12px}.processing-log-item>:first-child{color:var(--aux)}.result-full-panel{min-height:calc(100vh - 182px);border:.5px solid #dce4f1;border-radius:12px;padding:12px;background:#fff;box-shadow:var(--card-shadow);display:flex;flex-direction:column}.result-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.result-title-group{display:flex;flex-direction:column}.result-title{color:var(--navy);font-size:18px;margin:0}.result-subtitle{color:#60738f;font-size:12px}.result-message-bar{margin-bottom:10px}.result-split-scroll-area{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.result-pane{border:.5px solid #dce4f0;border-radius:10px;padding:10px;min-height:0;display:flex;flex-direction:column;background:#fff}.result-pane-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.result-pane-head h3{margin:0;color:var(--navy);font-size:16px}.masked-name{border:.5px solid #dae4f2;border-radius:7px;background:#f9fbff;padding:7px 9px;font-size:12px;color:#375374;margin-bottom:8px}.neutral-name{background:#f3f8ff}.sheet-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#5f6f84;margin-bottom:8px;font-size:12px}.sheet-table-wrap{flex:1;min-height:0;border:.5px solid #dce4f0;border-radius:7px;overflow:auto}.sheet-skeleton{border:.5px solid #dce4f0;border-radius:7px;padding:10px;display:flex;flex-direction:column;gap:8px;background:#fff}.sheet-skeleton-item{width:100%}.sheet-message-bar{margin-top:4px}.sheet-table{min-width:600px}.sheet-table-native{width:max-content;border-collapse:collapse}.sheet-table-native th,.sheet-table-native td{border-bottom:.5px solid #dfe5ef;border-right:.5px solid #e6edf6;font-size:12px;padding:7px 8px;line-height:1.5;vertical-align:top;min-width:88px;max-width:360px;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;background:#fff}.sheet-table-native tr:first-child>th,.sheet-table-native tr:first-child>td{position:sticky;top:0;z-index:1;background:#f7fbff;color:#456182}.sheet-table-native th{font-weight:600}.sheet-table.masked tr:first-child>th,.sheet-table.masked tr:first-child>td{background:var(--light-red);color:#a33d4e}.mono{font-family:SFMono-Regular,Menlo,Consolas,Liberation Mono,PingFang SC,Microsoft YaHei,monospace}@media(max-width:1366px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-main-grid,.rules-main-grid,.processing-full-panel,.result-split-scroll-area,.rule-example-grid,.rules-kpi-grid{grid-template-columns:1fr}}@media(max-width:760px){.body-shell{flex-direction:column;padding:10px;gap:10px}.left-nav{width:100%}.content-shell{padding:10px}.top-nav{padding:0 12px}.brand-left h1,.page-header-title,.idle-panel-title,.processing-title{font-size:22px}.preview-summary-left{gap:8px}}
