@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&display=swap');

:root {
    --primary-cyan: #00f2fe;
    --primary-blue: #4facfe;
    --accent-purple: #7000ff;
    --bg-dark: #00050a;
    --card-bg: rgba(6, 18, 38, 0.7);
}

body {
    font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
    background-color: var(--bg-dark);
    color: #e0f2ff;
    background-image: 
        radial-gradient(circle at center, transparent 30%, #00050a 120%),
        radial-gradient(circle at 50% 0%, rgba(0, 242, 254, 0.15) 0%, transparent 50%),
        radial-gradient(circle at 10% 90%, rgba(79, 172, 254, 0.1) 0%, transparent 40%),
        linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
    background-size: 100% 100%, 100% 100%, 40px 40px, 40px 40px;
    overflow-x: hidden;
}

/* 科技感卡片 */
.glass-card {
    background: var(--card-bg);
    border: 1px solid rgba(0, 242, 254, 0.2);
    position: relative;
    backdrop-filter: blur(10px);
    box-shadow: inset 0 0 20px rgba(0, 242, 254, 0.05);
}

/* 四角高亮装饰 */
.glass-card::before, .glass-card::after, 
.card-corner::before, .card-corner::after {
    content: '';
    position: absolute;
    width: 10px;
    height: 10px;
    border: 2px solid var(--primary-cyan);
    filter: drop-shadow(0 0 5px var(--primary-cyan));
}

.glass-card::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.glass-card::after { top: -1px; right: -1px; border-left: 0; border-bottom: 0; }
.card-corner::before { bottom: -1px; left: -1px; border-right: 0; border-top: 0; }
.card-corner::after { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }

.text-tech { font-family: 'Share Tech Mono', monospace; }

.glow-text {
    color: var(--primary-cyan);
    text-shadow: 0 0 10px rgba(0, 242, 254, 0.8);
}

/* 顶部装饰条 */
.header-line {
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(0, 242, 254, 0.5), transparent);
    position: relative;
    width: 80%;
    margin: 0 auto;
}
.header-line::after {
    content: '';
    position: absolute;
    top: -2px; left: 50%;
    transform: translateX(-50%);
    width: 200px; height: 4px;
    background: var(--primary-cyan);
    clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
    filter: drop-shadow(0 0 5px var(--primary-cyan));
}

/* 标签页样式 */
.tab-active {
    background: linear-gradient(180deg, rgba(0, 242, 254, 0.3) 0%, rgba(0, 242, 254, 0.05) 100%);
    border: 1px solid var(--primary-cyan);
    color: var(--primary-cyan);
    text-shadow: 0 0 10px rgba(0, 242, 254, 0.8);
    box-shadow: 0 0 15px rgba(0, 242, 254, 0.2), inset 0 0 10px rgba(0, 242, 254, 0.1);
    transform: skewX(-15deg);
}
.tab-active i, .tab-active span { transform: skewX(15deg); display: inline-block; }

.tab-inactive {
    background: rgba(0, 20, 40, 0.4);
    border: 1px solid rgba(0, 242, 254, 0.1);
    color: #5d7d8f;
    transform: skewX(-15deg);
}
.tab-inactive i, .tab-inactive span { transform: skewX(15deg); display: inline-block; }
.tab-inactive:hover {
    border-color: rgba(0, 242, 254, 0.5);
    color: #a0d0e0;
}

tr:hover { background: rgba(0, 242, 254, 0.05); }

/* 新增动画效果 */
.reveal-animation {
    animation: slideUpFade 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes slideUpFade {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.terminal-loading-bar {
    height: 4px;
    background: rgba(0, 242, 254, 0.1);
    border-radius: 2px;
    overflow: hidden;
    margin: 5px 0;
    width: 150px;
}

.terminal-loading-progress {
    height: 100%;
    background: var(--primary-cyan);
    width: 0%;
    transition: width 0.3s ease;
}

.loading-dots:after {
    content: ' .';
    animation: dots 1s steps(5, end) infinite;
}

@keyframes dots {
    0%, 20% { content: ' .'; }
    40% { content: ' ..'; }
    60% { content: ' ...'; }
    80%, 100% { content: ''; }
}

/* AI Assistant Widget */
#ai-assistant {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    z-index: 50;
}

.ai-chat-bubble {
    background: rgba(0, 13, 26, 0.95);
    border-radius: 1.25rem;
    box-shadow: 0 20px 50px -12px rgba(0, 0, 0, 0.8), 0 0 15px rgba(0, 242, 254, 0.1);
    width: 340px;
    height: 500px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(0, 242, 254, 0.2);
    backdrop-filter: blur(25px);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    transform-origin: bottom right;
}

.ai-chat-bubble.hidden {
    display: none;
    opacity: 0;
    transform: scale(0.8) translateY(20px);
}

/* 合同签订页待办提醒：与 AI 助手组成一条紧凑的右侧操作轨 */
.contract-task-rail {
    position: absolute;
    right: 16px;
    bottom: 69px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 3px 0;
}
.contract-task-rail.hidden { display: none; }
.contract-task-rail::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -9px;
    width: 1px;
    height: 9px;
    background: linear-gradient(rgba(89, 178, 196, .18), transparent);
}
.contract-task-rail-label {
    display: flex;
    align-items: center;
    height: 16px;
}
.contract-task-rail-label b {
    display: grid;
    width: 16px;
    height: 16px;
    place-items: center;
    border-radius: 50%;
    background: #ef4444;
    color: white;
    font-size: 9px;
    box-shadow: 0 0 12px rgba(239, 68, 68, .45);
}
.contract-task-trigger {
    position: relative;
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: rgba(112, 163, 176, .28);
    opacity: .62;
    transition: transform .14s ease, color .14s ease, opacity .14s ease, background .14s ease;
}
.contract-task-trigger:hover,
.contract-task-trigger.active {
    transform: translateX(-2px);
    background: rgba(30, 139, 160, .12);
    opacity: 1;
}
.contract-task-trigger svg { width: 11px; height: 11px; stroke-width: 1.5; }
.contract-task-trigger.task-urgent,
.contract-task-trigger.task-warning,
.contract-task-trigger.task-review { color: rgba(112, 163, 176, .38); }
.contract-task-trigger:hover,
.contract-task-trigger.active { color: rgba(112, 224, 238, .86); }
.contract-task-backdrop {
    position: fixed;
    inset: 0;
    z-index: 89;
    background: rgba(0, 5, 12, .78);
    animation: contractTaskBackdropIn .12s ease-out;
}
.contract-task-backdrop.hidden { display: none; }
.contract-task-popover {
    position: fixed;
    left: 50%;
    top: 50%;
    z-index: 90;
    width: min(420px, calc(100vw - 32px));
    overflow: hidden;
    border: 1px solid rgba(56, 217, 242, .32);
    border-radius: 16px;
    background: linear-gradient(145deg, rgba(6, 30, 52, .98), rgba(2, 13, 27, .98));
    box-shadow: 0 24px 48px rgba(0, 0, 0, .55), 0 0 24px rgba(17, 196, 224, .09);
    animation: contractTaskIn .24s ease-out;
    transform: translate(-50%, -50%);
    will-change: transform, opacity;
}
.contract-task-popover.hidden { display: none; }
.contract-task-popover::before {
    content: '';
    display: block;
    height: 3px;
    background: #38d9f2;
}
.contract-task-popover[data-tone="urgent"]::before { background: #fb7185; }
.contract-task-popover[data-tone="warning"]::before { background: #fbbf24; }
.contract-task-close {
    position: absolute;
    top: 12px;
    right: 11px;
    display: grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 8px;
    color: #7195aa;
}
.contract-task-close:hover { background: rgba(255,255,255,.06); color: white; }
.contract-task-close svg { width: 14px; height: 14px; }
.contract-task-popover-head { display: flex; gap: 13px; padding: 24px 52px 18px 22px; }
.contract-task-popover-head > span {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid rgba(56, 217, 242, .3);
    border-radius: 10px;
    background: rgba(22, 154, 181, .12);
    color: #5de6f7;
    font: 700 12px/1 'Share Tech Mono', monospace;
}
.contract-task-popover-head div { min-width: 0; }
.contract-task-popover-head small { display: block; margin-bottom: 4px; color: #4d94ae; font-size: 9px; letter-spacing: .14em; }
.contract-task-popover-head strong { display: block; color: #e5f7fb; font-size: 16px; line-height: 1.45; }
.contract-task-detail {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: calc(100% - 36px);
    margin: 0 18px 18px;
    padding: 16px;
    border: 1px solid rgba(66, 200, 225, .16);
    border-radius: 11px;
    background: rgba(7, 39, 62, .68);
    text-align: left;
    min-height: 76px;
    transition: border-color .12s ease, background .12s ease;
}
.contract-task-detail:hover,
.contract-task-popover.detail-focused .contract-task-detail { border-color: rgba(56, 217, 242, .48); background: rgba(10, 52, 78, .9); }
.contract-task-popover.detail-focused .contract-task-detail { display: none; }
.contract-task-detail > span { display: flex; align-items: center; gap: 7px; color: #70dceb; font-size: 13px; }
.contract-task-detail > span svg { width: 15px; height: 15px; }
.contract-task-detail-arrow { width: 15px; height: 15px; color: #45d4e9; transition: transform .2s ease; }
.contract-task-popover.detail-focused .contract-task-detail-arrow { transform: rotate(180deg); }
.contract-task-result {
    min-height: 76px;
    margin: 0 18px 18px;
    padding: 15px 16px;
    border-left: 2px solid #38d9f2;
    border-radius: 4px 10px 10px 4px;
    background: rgba(16, 64, 86, .48);
}
.contract-task-result.hidden {
    display: none;
}
.contract-task-result small { display: block; margin-bottom: 6px; color: #639db0; font-size: 10px; letter-spacing: .08em; }
.contract-task-result strong { display: block; color: #fff; font-size: 17px; line-height: 1.5; }
@keyframes contractTaskIn { from { opacity: 0; transform: translate(-50%, calc(-50% + 16px)) scale(.97); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
@keyframes contractTaskBackdropIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes contractTaskResultIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (max-width: 700px) {
    #ai-assistant { right: 1rem; bottom: 1rem; }
    .contract-task-popover { width: calc(100vw - 2rem); }
}

/* 模拟器滑块样式 */
input[type=range] {
    height: 4px;
    -webkit-appearance: none;
    width: 100%;
    background: rgba(0, 242, 254, 0.1);
    border-radius: 2px;
    outline: none;
}

input[type=range]::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    background: var(--primary-cyan);
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 0 10px var(--primary-cyan);
}
/* Terminal Styles */
.terminal-window {
    background: #000d1a;
    border: 1px solid var(--primary-cyan);
    box-shadow: 0 0 30px rgba(0, 242, 254, 0.2);
    font-family: 'Share Tech Mono', monospace;
    width: 800px;
    max-width: 95vw;
}
.terminal-header {
    background: rgba(0, 242, 254, 0.1);
    border-bottom: 1px solid rgba(0, 242, 254, 0.2);
    padding: 8px 15px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.terminal-body {
    height: 400px;
    overflow-y: auto;
    padding: 20px;
    color: #00f2fe;
    font-size: 13px;
    line-height: 1.6;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 229, 239, .72) #031625;
}
.terminal-body::-webkit-scrollbar {
    width: 9px;
}
.terminal-body::-webkit-scrollbar-track {
    margin: 7px 2px;
    border: 1px solid rgba(0, 229, 239, .16);
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(0, 229, 239, .06), rgba(2, 13, 27, .8));
}
.terminal-body::-webkit-scrollbar-thumb {
    min-height: 36px;
    border: 2px solid #031625;
    border-radius: 8px;
    background: linear-gradient(180deg, #78f6ff, #00a7c9);
    box-shadow: 0 0 8px rgba(0, 229, 239, .65);
}
.terminal-body::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #b7fdff, #00cfe5);
}
.terminal-body::-webkit-scrollbar-button {
    width: 0;
    height: 0;
}
.terminal-prompt { color: #4facfe; margin-right: 10px; }
.terminal-cursor {
    display: inline-block;
    width: 8px;
    height: 15px;
    background: var(--primary-cyan);
    animation: blink 1s infinite;
    vertical-align: middle;
}
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }

/* 科技感背景动画 */
@keyframes gridMove {
    0% { transform: perspective(500px) rotateX(60deg) translateY(0); }
    100% { transform: perspective(500px) rotateX(60deg) translateY(40px); }
}

.perspective-container::before {
    content: '';
    position: absolute;
    bottom: -100px;
    left: -50%;
    width: 200%;
    height: 100vh;
    background: 
        linear-gradient(rgba(0, 242, 254, 0.1) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 242, 254, 0.1) 1px, transparent 1px);
    background-size: 40px 40px;
    transform: perspective(500px) rotateX(60deg);
    animation: gridMove 3s linear infinite;
    z-index: -1;
    opacity: 0.3;
    pointer-events: none;
    mask-image: linear-gradient(to bottom, transparent, black 40%);
}

.perspective-container {
    perspective: 1200px;
    overflow: hidden;
}

.transform-style-3d {
    transform-style: preserve-3d;
}

.rotate-y-left {
    transform: rotateY(35deg) scale(0.9) translateZ(-100px) translateX(-20px);
    transform-origin: right center;
    transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
    box-shadow: -20px 0 50px rgba(0, 0, 0, 0.5);
    border-right: 1px solid rgba(0, 242, 254, 0.3);
}

.rotate-y-right {
    transform: rotateY(-35deg) scale(0.9) translateZ(-100px) translateX(20px);
    transform-origin: left center;
    transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
    box-shadow: 20px 0 50px rgba(0, 0, 0, 0.5);
    border-left: 1px solid rgba(0, 242, 254, 0.3);
}

.rotate-y-left:hover, .rotate-y-right:hover {
    transform: rotateY(0) scale(1) translateZ(0);
    z-index: 10;
    box-shadow: 0 0 80px rgba(0, 242, 254, 0.5);
    border-color: var(--primary-cyan);
}

.center-panel {
    z-index: 5;
    transform: scale(0.98) translateZ(80px);
    transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
    box-shadow: 0 0 100px rgba(0, 242, 254, 0.2);
    border: 1px solid rgba(0, 242, 254, 0.1);
}

.center-panel:hover {
    transform: scale(1) translateZ(100px);
}

/* HUD 装饰线 */
.glass-card {
    background: rgba(6, 18, 38, 0.6);
    border: 1px solid rgba(0, 242, 254, 0.15);
    clip-path: polygon(
        0 10px, 10px 0, 
        100% 0, 100% calc(100% - 10px), 
        calc(100% - 10px) 100%, 
        0 100%
    );
}

/* 增强的高亮装饰 */
.glass-card::before { 
    top: 0; left: 0; width: 20px; height: 2px; 
    background: var(--primary-cyan); 
    border: none;
    box-shadow: 0 0 10px var(--primary-cyan);
}
.glass-card::after { 
    bottom: 0; right: 0; width: 20px; height: 2px; 
    background: var(--primary-cyan); 
    border: none;
    box-shadow: 0 0 10px var(--primary-cyan);
}
.card-corner::before { 
    top: 0; right: 0; width: 2px; height: 20px; 
    background: var(--primary-cyan); 
    border: none;
    box-shadow: 0 0 10px var(--primary-cyan);
}
.card-corner::after { 
    bottom: 0; left: 0; width: 2px; height: 20px; 
    background: var(--primary-cyan); 
    border: none;
    box-shadow: 0 0 10px var(--primary-cyan);
}
/* Loading Progress */
.progress-circle-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
}
.loader-ring {
    width: 80px;
    height: 80px;
    border: 4px solid rgba(0, 242, 254, 0.1);
    border-top: 4px solid var(--primary-cyan);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    filter: drop-shadow(0 0 10px var(--primary-cyan));
}
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
.animate-spin-slow { animation: spin 3s linear infinite; }

/* Custom Scrollbar Styles */
.custom-scrollbar::-webkit-scrollbar {
    width: 2px;
    height: 2px;
}

.custom-scrollbar::-webkit-scrollbar-track {
    background: transparent;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
    background: rgba(0, 242, 254, 0.1);
    border-radius: 1px;
    transition: background 0.3s ease;
}

.custom-scrollbar:hover::-webkit-scrollbar-thumb {
    background: rgba(0, 242, 254, 0.3);
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 242, 254, 0.8);
}

/* For Firefox */
.custom-scrollbar {
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 242, 254, 0.1) transparent;
}

/* 智能决策支持：三子页面框架 / 方案决策 */
.decision-page-shell {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    padding: 2px 16px 8px;
}

.decision-subtabs {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 0 auto 8px;
    padding: 4px;
    border: 1px solid rgba(0, 242, 254, .13);
    border-radius: 8px;
    background: rgba(0, 12, 25, .68);
    box-shadow: inset 0 0 18px rgba(0, 242, 254, .035);
}

.decision-subtab {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 148px;
    padding: 6px 15px;
    border: 1px solid transparent;
    border-radius: 5px;
    color: #5d7d8f;
    background: transparent;
    font-size: 11px;
    transition: .22s ease;
}

.decision-subtab span {
    color: #416277;
    font-family: 'Share Tech Mono', monospace;
    font-size: 9px;
}

.decision-subtab:hover {
    border-color: rgba(0, 242, 254, .25);
    color: #a5d8e8;
    background: rgba(0, 242, 254, .04);
}

.decision-subtab.active {
    border-color: rgba(0, 242, 254, .55);
    color: #e7fbff;
    background: linear-gradient(180deg, rgba(0, 242, 254, .18), rgba(0, 80, 130, .08));
    box-shadow: 0 0 18px rgba(0, 242, 254, .11), inset 0 0 12px rgba(0, 242, 254, .05);
}

.decision-subtab.active span { color: var(--primary-cyan); }
.decision-subview { display: none; flex: 1; min-height: 0; }
.decision-subview.active { display: block; animation: decisionViewIn .28s ease-out; }
@keyframes decisionViewIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }

.decision-three-column {
    display: grid;
    grid-template-columns: minmax(270px, .78fr) minmax(520px, 1.55fr) minmax(280px, .78fr);
    gap: 18px;
    height: 100%;
    min-height: 0;
    width: 94%;
    max-width: 1660px;
    margin: 0 auto;
    perspective: 1200px;
    transform-style: preserve-3d;
}

.decision-three-column > article {
    min-width: 0;
    min-height: 0;
    padding: 16px;
    overflow: hidden;
}

.decision-three-column .decision-simulator-card.rotate-y-left {
    transform: rotateY(11deg) scale(.97) translateX(5px) translateZ(-24px);
    transform-origin: right center;
    box-shadow: -12px 0 34px rgba(0, 0, 0, .42);
}

.decision-three-column .decision-recommend-card.rotate-y-right {
    transform: rotateY(-11deg) scale(.97) translateX(-5px) translateZ(-24px);
    transform-origin: left center;
    box-shadow: 12px 0 34px rgba(0, 0, 0, .42);
}

.decision-three-column .decision-simulator-card.rotate-y-left:hover {
    transform: rotateY(5deg) scale(.985) translateX(2px) translateZ(-8px);
    box-shadow: -8px 0 38px rgba(0, 242, 254, .16);
}

.decision-three-column .decision-recommend-card.rotate-y-right:hover {
    transform: rotateY(-5deg) scale(.985) translateX(-2px) translateZ(-8px);
    box-shadow: 8px 0 38px rgba(0, 242, 254, .16);
}

.decision-three-column .decision-matrix-card.center-panel {
    transform: scale(.99) translateZ(18px);
}

.decision-card-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 11px;
    border-bottom: 1px solid rgba(0, 242, 254, .12);
}

.decision-kicker {
    display: block;
    margin-bottom: 3px;
    color: rgba(79, 172, 254, .55);
    font-family: 'Share Tech Mono', monospace;
    font-size: 8px;
    letter-spacing: .12em;
}

.decision-card-heading h3 {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #e7fbff;
    font-size: 13px;
    font-weight: 700;
}

.decision-card-heading h3 svg { color: var(--primary-cyan); }
.decision-heading-actions { display: flex; gap: 5px; }
.decision-heading-actions button {
    padding: 4px 8px;
    border: 1px solid rgba(0, 242, 254, .2);
    border-radius: 4px;
    color: #80a8bb;
    background: rgba(0, 25, 45, .55);
    font-size: 9px;
}
.decision-heading-actions button.primary { border-color: rgba(0, 242, 254, .48); color: #d9fbff; background: rgba(0, 178, 205, .2); }
.decision-card-note { margin: 11px 0 0; color: #577689; font-size: 9px; line-height: 1.6; }

.decision-section-label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    color: #9cd6e5;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;
}
.decision-section-label::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(0, 242, 254, .28), transparent); }
.decision-section-label small { order: 3; color: #365f73; font-family: 'Share Tech Mono', monospace; font-size: 8px; font-weight: 400; letter-spacing: .08em; }

.decision-simulator-card { display: flex; flex-direction: column; }
.decision-slider-list { display: grid; grid-template-rows: repeat(3, 1fr); gap: 12px; min-height: 176px; margin-top: 10px; }
.decision-slider-list label { display: flex; flex-direction: column; justify-content: center; }
.decision-slider-list label > div { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; color: #8db4c7; font-size: 10px; }
.decision-slider-list label strong { color: #d9f8ff; font-family: 'Share Tech Mono', monospace; font-size: 10px; font-weight: 400; }
.decision-slider-list label b { color: var(--primary-cyan); font-size: 13px; }
.decision-slider-list input[type=range] { height: 3px; }
.decision-slider-list input[type=range]::-webkit-slider-thumb { width: 13px; height: 13px; }

.decision-result-label { margin-top: 13px; }
.decision-sim-results { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 9px; }
.decision-sim-results > div { display: grid; grid-template-columns: 68px 1fr; align-items: center; padding: 10px 11px; border: 1px solid rgba(79, 172, 254, .12); border-radius: 6px; background: linear-gradient(90deg, rgba(20, 65, 105, .22), rgba(0, 12, 25, .18)); }
.decision-sim-results span { color: #7194a8; font-size: 9px; }
.decision-sim-results strong { color: #eafaff; font-family: 'Share Tech Mono', monospace; font-size: 17px; text-align: right; }
.decision-sim-results small { grid-column: 1 / -1; margin-top: 2px; color: #38566a; font-size: 8px; text-align: right; }
.decision-sim-results .profit { border-color: rgba(0, 242, 254, .23); background: linear-gradient(90deg, rgba(0, 242, 254, .12), rgba(0, 39, 67, .18)); }
.decision-sim-results .profit strong { color: var(--primary-cyan); text-shadow: 0 0 10px rgba(0, 242, 254, .35); }
.decision-sim-status { display: flex; align-items: center; gap: 7px; margin-top: auto; padding-top: 12px; border-top: 1px solid rgba(0, 242, 254, .09); color: #527386; font-size: 8px; }
.decision-sim-status i { width: 6px; height: 6px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 7px #22c55e; }
.decision-sim-status b { margin-left: auto; color: #71d6e7; font-family: 'Share Tech Mono', monospace; font-weight: 400; }

.decision-matrix-card { display: flex; flex-direction: column; }
.decision-ai-chip,.decision-recommend-badge { padding: 4px 8px; border: 1px solid rgba(0, 242, 254, .25); border-radius: 999px; color: #68dce9; background: rgba(0, 242, 254, .07); font-size: 8px; white-space: nowrap; }
.decision-matrix-wrap { display: flex; flex: 1; min-height: 0; margin-top: 12px; overflow: auto; border: 1px solid rgba(79, 172, 254, .1); border-radius: 7px; background: rgba(0, 8, 17, .28); }
.decision-matrix-table { width: 100%; height: 100%; border-collapse: collapse; table-layout: fixed; color: #9cc1d2; font-size: 9px; }
.decision-matrix-table thead { height: 64px; }
.decision-matrix-table tbody tr { height: 12.5%; }
.decision-matrix-table th,.decision-matrix-table td { padding: 10px 7px; border-right: 1px solid rgba(79, 172, 254, .08); border-bottom: 1px solid rgba(79, 172, 254, .08); text-align: center; }
.decision-matrix-table th:first-child,.decision-matrix-table td:first-child { width: 25%; color: #7296aa; text-align: left; }
.decision-matrix-table th:not(:first-child) { cursor: pointer; color: #d8f6ff; font-size: 10px; }
.decision-matrix-table th small { display: block; margin-top: 2px; color: #49697d; font-size: 7px; font-weight: 400; }
.decision-matrix-table .recommended { color: var(--primary-cyan); background: rgba(0, 242, 254, .075); }
.decision-matrix-table td.scenario-cell { cursor: pointer; transition: .2s ease; }
.decision-matrix-table td.scenario-cell:hover { color: #fff; background: rgba(0, 242, 254, .1); }
.decision-matrix-table td.selected { box-shadow: inset 2px 0 rgba(0, 242, 254, .55), inset -2px 0 rgba(0, 242, 254, .55); color: #eaffff; background: rgba(0, 242, 254, .11); }
.decision-matrix-table tr:last-child td.selected { box-shadow: inset 2px 0 rgba(0, 242, 254, .55), inset -2px 0 rgba(0, 242, 254, .55), inset 0 -2px rgba(0, 242, 254, .55); }
.decision-matrix-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 10px; color: #405f72; font-size: 8px; }
.decision-matrix-footer span { display: flex; align-items: center; gap: 6px; }
.decision-matrix-footer i { width: 5px; height: 5px; border-radius: 50%; background: var(--primary-cyan); box-shadow: 0 0 7px var(--primary-cyan); }
.decision-matrix-footer b { color: #426f83; font-family: 'Share Tech Mono', monospace; font-weight: 400; }

.decision-recommend-card { display: flex; flex-direction: column; }
.decision-recommend-badge { border-color: rgba(74, 222, 128, .28); color: #7eedaa; background: rgba(34, 197, 94, .08); }
.decision-score-block { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 12px; }
.decision-score-block > div { padding: 10px; border: 1px solid rgba(79, 172, 254, .11); border-radius: 6px; background: rgba(0, 25, 45, .4); }
.decision-score-block span,.decision-score-block small { display: block; color: #55778a; font-size: 8px; }
.decision-score-block strong { color: var(--primary-cyan); font-family: 'Share Tech Mono', monospace; font-size: 25px; line-height: 1; }
.decision-score-block b { display: block; margin: 5px 0 3px; color: #fbbf24; font-size: 12px; letter-spacing: 1px; }
.decision-selected-title { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 10px; border-left: 2px solid var(--primary-cyan); background: linear-gradient(90deg, rgba(0, 242, 254, .11), transparent); }
.decision-selected-title > span { display: grid; place-items: center; width: 43px; height: 32px; border-radius: 4px; color: #00131b; background: var(--primary-cyan); font-family: 'Share Tech Mono', monospace; font-size: 10px; font-weight: 700; box-shadow: 0 0 12px rgba(0, 242, 254, .28); }
.decision-selected-title strong,.decision-selected-title small { display: block; }
.decision-selected-title strong { color: #effdff; font-size: 12px; }.decision-selected-title small { margin-top: 2px; color: #56778a; font-size: 8px; }
.decision-selected-detail { margin-top: 10px; padding: 10px; border: 1px solid rgba(79, 172, 254, .09); border-radius: 6px; color: #789caf; background: rgba(0, 8, 17, .28); font-size: 9px; line-height: 1.65; }
.decision-impact-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 5px; margin-top: 9px; }
.decision-impact-grid > div { padding: 8px 5px; border: 1px solid rgba(79, 172, 254, .1); border-radius: 5px; background: rgba(4, 22, 40, .52); text-align: center; }
.decision-impact-grid span,.decision-impact-grid strong { display: block; }.decision-impact-grid span { color: #4e7185; font-size: 7px; }.decision-impact-grid strong { margin-top: 3px; color: #baf6ff; font-family: 'Share Tech Mono', monospace; font-size: 11px; }
.decision-action-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: auto; padding-top: 11px; }
.decision-action-buttons button { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 6px; border: 1px solid rgba(0, 242, 254, .26); border-radius: 5px; color: #8bdbea; background: rgba(0, 40, 65, .4); font-size: 9px; transition: .2s ease; }
.decision-action-buttons button:hover { border-color: rgba(0, 242, 254, .7); color: #fff; box-shadow: 0 0 14px rgba(0, 242, 254, .12); }
.decision-action-buttons button.decision-execute-btn { color: #001018; border-color: var(--primary-cyan); background: linear-gradient(90deg, #00d9e8, #4facfe); font-weight: 700; }
.decision-action-buttons svg { width: 11px; height: 11px; }

.decision-pending { display: grid; place-items: center; align-content: center; gap: 8px; height: 100%; color: #5e7d90; }
.decision-pending > span { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid rgba(0,242,254,.28); border-radius: 50%; color: var(--primary-cyan); font-family: 'Share Tech Mono', monospace; }
.decision-pending strong { color: #badfec; font-size: 15px; }.decision-pending p { font-size: 9px; }

@media (max-width: 1180px) {
    .decision-three-column { grid-template-columns: 1fr 1.35fr; width: 100%; overflow-y: auto; padding-right: 4px; }
    .decision-three-column .decision-simulator-card.rotate-y-left,
    .decision-three-column .decision-recommend-card.rotate-y-right,
    .decision-three-column .decision-simulator-card.rotate-y-left:hover,
    .decision-three-column .decision-recommend-card.rotate-y-right:hover,
    .decision-three-column .decision-matrix-card.center-panel { transform: none; }
    .decision-recommend-card { grid-column: 1 / -1; min-height: 430px; }
}

@media (max-width: 760px) {
    .decision-page-shell { padding-inline: 6px; }
    .decision-subtabs { width: 100%; gap: 3px; }
    .decision-subtab { min-width: 0; flex: 1; justify-content: center; padding-inline: 5px; font-size: 9px; }
    .decision-three-column { grid-template-columns: 1fr; overflow-y: auto; }
    .decision-recommend-card { grid-column: auto; }
}

/* 方案决策字号增强 */
.decision-subtab { font-size: 12px; }
.decision-subtab span { font-size: 10px; }
.decision-kicker { font-size: 9px; }
.decision-card-heading h3 { font-size: 15px; }
.decision-heading-actions button { font-size: 11px; }
.decision-card-note { font-size: 11px; }
.decision-slider-list label > div { font-size: 12px; }
.decision-slider-list label strong { font-size: 11px; }
.decision-slider-list label b { font-size: 15px; }
.decision-sim-results span { font-size: 11px; }
.decision-sim-results strong { font-size: 19px; }
.decision-sim-results small { font-size: 9px; }
.decision-sim-status { font-size: 10px; }
.decision-ai-chip,
.decision-recommend-badge { font-size: 9px; }
.decision-matrix-table { font-size: 11px; }
.decision-matrix-table th:not(:first-child) { font-size: 12px; }
.decision-matrix-table th small { font-size: 9px; }
.decision-matrix-footer { font-size: 9px; }
.decision-score-block span,
.decision-score-block small { font-size: 10px; }
.decision-score-block strong { font-size: 28px; }
.decision-score-block b { font-size: 14px; }
.decision-selected-title > span { font-size: 11px; }
.decision-selected-title strong { font-size: 14px; }
.decision-selected-title small { font-size: 10px; }
.decision-selected-detail { font-size: 11px; }
.decision-impact-grid span { font-size: 9px; }
.decision-impact-grid strong { font-size: 13px; }
.decision-section-label { font-size: 11px; }
.decision-section-label small { font-size: 9px; }
.decision-action-buttons button { font-size: 11px; }

/* =====================================================================
   推荐方案详情卡：弹性布局占满空白
   ===================================================================== */
#decision-scheme-view .decision-recommend-card { padding-bottom: 14px; }

/* 评分双格拉高，让头部更饱满 */
#decision-scheme-view .decision-score-block {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 15px;
}
#decision-scheme-view .decision-score-block > div {
    min-height: 92px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: 1px solid rgba(79, 172, 254, .16);
    border-radius: 10px;
    background: linear-gradient(160deg, rgba(0, 52, 84, .32), rgba(6, 18, 38, .4));
}
#decision-scheme-view .decision-score-block strong { font-size: 30px; margin: 4px 0 2px; }
#decision-scheme-view .decision-score-block small { display: inline; margin-left: 3px; }
#decision-scheme-view .decision-score-block b { font-size: 15px; margin: 4px 0 2px; }

/* 方案名行 */
#decision-scheme-view .decision-selected-title {
    margin-top: 14px;
    padding: 10px 12px;
    border: 1px solid rgba(79, 172, 254, .14);
    border-radius: 10px;
    background: rgba(0, 36, 64, .25);
}
#decision-scheme-view .decision-selected-title > span {
    width: 44px;
    height: 44px;
    border: 1px solid rgba(0, 242, 254, .5);
    border-radius: 10px;
    font-size: 12px;
}

/* 说明段落：吸收剩余高度（消除按钮上方大空白） */
#decision-scheme-view .decision-selected-detail {
    flex: 1 1 auto;
    min-height: 130px;
    margin-top: 12px;
    padding: 14px 15px;
    display: flex;
    align-items: flex-start;
    border: 1px solid rgba(16, 185, 129, .18);
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(16, 185, 129, .1), rgba(6, 26, 24, .28));
    color: #a7d8c8;
    font-size: 12px;
    line-height: 1.8;
}

/* 三项效果指标略微加高 */
#decision-scheme-view .decision-impact-grid { gap: 10px; margin-top: 12px; }
#decision-scheme-view .decision-impact-grid > div {
    min-height: 74px;
    padding: 12px 6px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 1px solid rgba(79, 172, 254, .14);
    border-radius: 10px;
    background: linear-gradient(160deg, rgba(0, 52, 84, .26), rgba(6, 18, 38, .36));
}

/* 按钮组：不再贴底留白，紧随内容 */
#decision-scheme-view .decision-action-buttons { margin-top: 14px; padding-top: 2px; }

/* ---- 左卡模拟推演：滑杆区占满纵向空间 ---- */
#decision-scheme-view .decision-slider-list { flex: 1; }

/* 全局 Toast 轻提示 */
#global-toast {
    position: fixed;
    left: 50%;
    top: 26px;
    transform: translate(-50%, -10px);
    z-index: 300;
    max-width: 80vw;
    padding: 10px 22px;
    border-radius: 10px;
    background: rgba(6, 18, 38, .96);
    border: 1px solid rgba(0, 242, 254, .45);
    color: #d9f8ff;
    font-size: 12px;
    letter-spacing: .5px;
    box-shadow: 0 10px 34px rgba(0, 0, 0, .55), 0 0 22px rgba(0, 242, 254, .16);
    opacity: 0;
    pointer-events: none;
    transition: opacity .28s ease, transform .28s ease;
}
#global-toast.show { opacity: 1; transform: translate(-50%, 0); }

/* =====================================================================

/* =====================================================================
   02 供应商推荐：原页面（数智农链 P6-01）模块样式移植
   ===================================================================== */
:root {
    --primary: #3b82f6;
    --text: #f1f5f9;
    --text-secondary: #94a3b8;
}

/* ---- 基础组件（源自原页面） ---- */
.chip {
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-secondary);
    border: 1px solid rgba(255, 255, 255, 0.05);
}
.chip-green { color: #6ee7b7; border-color: rgba(16, 185, 129, .35); background: rgba(16, 185, 129, .12); }

.btn {
    padding: 8px 16px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.05);
    color: var(--text);
    cursor: pointer;
    font-size: 13px;
    transition: all 0.2s;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.btn:hover { background: rgba(255, 255, 255, 0.1); }
.btn-primary {
    background: var(--primary);
    border-color: var(--primary);
    color: white;
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}
.btn-primary:hover { background: #2563eb; box-shadow: 0 6px 16px rgba(59, 130, 246, 0.4); }
.btn:disabled { opacity: 0.6; cursor: not-allowed; filter: grayscale(1); }
.btn.is-loading { pointer-events: none; }
.btn-spinner {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, .32);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: buttonSpin .7s linear infinite;
}
@keyframes buttonSpin { to { transform: rotate(360deg); } }

/* ---- 自定义下拉（源自原页面） ---- */
.native-select-source { display: none; }
.custom-select { position: relative; width: 100%; }
.custom-select-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 7px;
    background: rgba(15, 23, 42, .72);
    color: var(--text);
    cursor: pointer;
    font: inherit;
    text-align: left;
}
.custom-select-trigger:hover, .custom-select.open .custom-select-trigger {
    border-color: #60a5fa;
    box-shadow: 0 0 0 2px rgba(59, 130, 246, .14);
}
.custom-select-caret {
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid #94a3b8;
    transition: transform .18s ease;
}
.custom-select.open .custom-select-caret { transform: rotate(180deg); }
.custom-select-menu {
    display: none;
    position: absolute;
    z-index: 80;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    overflow: hidden;
    border: 1px solid rgba(96, 165, 250, .36);
    border-radius: 8px;
    background: #172236;
    box-shadow: 0 14px 30px rgba(0, 0, 0, .35);
}
.custom-select.open .custom-select-menu { display: block; animation: selectMenuIn .16s ease-out; }
.custom-select-option {
    display: block;
    width: 100%;
    padding: 9px 10px;
    border: 0;
    background: transparent;
    color: var(--text);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    text-align: left;
}
.custom-select-option:hover, .custom-select-option.selected { background: rgba(59, 130, 246, .18); color: #fff; }
@keyframes selectMenuIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }

/* ---- 02 视图容器 ---- */
#decision-supplier-view .procure-supplier-layout {
    height: 100%;
    min-height: 0;
    overflow-y: auto;
    padding: 14px 16px 18px;
}
#decision-supplier-view .supplier-card { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }

/* ---- 模块头部 / 采购表单（布局规则与原页面一致） ---- */
.p6-module-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin: 0 2px 14px; }
.p6-module-title { font-size: 18px; font-weight: 700; color: #f8fafc; }
.p6-module-head p { margin: 5px 0 0; color: #64748b; font-size: 12px; }
.p6-module-head .chip { margin-top: 2px; }

.procure-form { padding: 14px; border: 1px solid rgba(74, 222, 128, .16); border-radius: 11px; background: linear-gradient(145deg, rgba(16, 185, 129, .09), rgba(15, 23, 42, .28)); }
.procure-form-title, .procure-section-label { font-weight: 600; font-size: 13px; }
.procure-form label { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; color: var(--text-secondary); font-size: 11px; }
.procure-form input {
    width: 100%;
    min-height: 34px;
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 7px;
    background: rgba(15, 23, 42, .72);
    color: var(--text);
    padding: 7px 9px;
    outline: none;
    font: inherit;
}
.procure-form input:focus { border-color: #4ade80; box-shadow: 0 0 0 2px rgba(74, 222, 128, .12); }
.procure-form input[type="number"] { appearance: textfield; -moz-appearance: textfield; }
.procure-form input[type="number"]::-webkit-inner-spin-button,
.procure-form input[type="number"]::-webkit-outer-spin-button { appearance: none; -webkit-appearance: none; margin: 0; }
.procure-form small { color: #64748b; margin-top: -2px; }
.procure-form-row { display: contents; }
.procure-match-btn { width: 100%; justify-content: center; margin-top: 14px; }

.procure-supplier-layout .procure-form {
    display: grid;
    grid-template-columns: minmax(180px, 1.35fr) minmax(110px, .68fr) minmax(145px, .9fr) minmax(145px, .9fr) auto;
    gap: 10px;
    align-items: end;
    padding: 18px;
    border-color: rgba(45, 212, 191, .22);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(13, 148, 136, .1), rgba(15, 23, 42, .52));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025);
}
.procure-supplier-layout .procure-form-title { grid-column: 1 / -1; display: flex; align-items: center; gap: 9px; margin-bottom: 2px; }
.procure-supplier-layout .procure-form-title span { color: #f8fafc; font-size: 14px; font-weight: 650; }
.procure-supplier-layout .p6-form-hint { margin: 0; padding-left: 9px; border-left: 1px solid rgba(148, 163, 184, .2); color: #64748b; font-size: 10px; font-weight: 400; }
.procure-supplier-layout .procure-form > label { margin-top: 0; }
.procure-supplier-layout .procure-form-row label { margin-top: 0; }
.procure-supplier-layout .procure-form label { gap: 7px; color: #94a3b8; font-size: 11px; }
.procure-supplier-layout .procure-form input,
.procure-supplier-layout .custom-select-trigger { min-height: 40px; border-color: rgba(148, 163, 184, .16); border-radius: 9px; background: rgba(8, 15, 30, .62); }
.procure-supplier-layout .custom-select-trigger { padding: 8px 10px; }
.p6-input-suffix-wrap { position: relative; }
.p6-input-suffix-wrap input { padding-right: 42px; }
.p6-input-suffix-wrap > span {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    padding-left: 9px;
    border-left: 1px solid rgba(148, 163, 184, .16);
    color: #64748b;
    font-size: 10px;
    pointer-events: none;
}
.procure-supplier-layout .procure-match-btn { min-height: 40px; padding: 8px 18px; border-radius: 9px; background: linear-gradient(135deg, #2563eb, #0ea5e9); box-shadow: 0 8px 18px rgba(37, 99, 235, .22); }

/* ---- 推荐结果区 / 供应商卡片（与原页面一致） ---- */
.procure-section-label { display: flex; justify-content: space-between; align-items: flex-end; margin: 20px 2px 11px; }
.procure-section-label strong { display: block; color: #f8fafc; font-size: 14px; }
.procure-section-label small { display: block; margin-top: 3px; color: #64748b; font-size: 10px; font-weight: 400; }
.procure-section-label > span { padding: 4px 9px; border-radius: 999px; background: rgba(148, 163, 184, .08); color: #94a3b8; }

.supplier-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.supplier-item {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 245px;
    padding: 17px;
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, .13);
    border-radius: 14px;
    background: linear-gradient(155deg, rgba(30, 41, 59, .92), rgba(21, 31, 49, .82));
    box-shadow: 0 12px 28px rgba(2, 6, 23, .12);
}
.supplier-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(96, 165, 250, .55), transparent);
    opacity: .45;
}
.supplier-item.best, .supplier-item.selected {
    border-color: rgba(45, 212, 191, .38);
    background: linear-gradient(155deg, rgba(13, 148, 136, .14), rgba(21, 31, 49, .9));
}
.supplier-item.best::before, .supplier-item.selected::before {
    height: 3px;
    opacity: 1;
    background: linear-gradient(90deg, #10b981, #22d3ee);
}
.supplier-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.supplier-identity { display: flex; align-items: center; gap: 10px; min-width: 0; }
.supplier-rank {
    display: grid;
    place-items: center;
    min-width: 38px;
    height: 28px;
    padding: 0 7px;
    border-radius: 8px;
    background: rgba(96, 165, 250, .1);
    color: #93c5fd;
    font-size: 9px;
    font-weight: 700;
}
.supplier-item.best .supplier-rank { background: rgba(16, 185, 129, .16); color: #6ee7b7; }
.supplier-name { overflow: hidden; color: #f8fafc; font-size: 14px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.supplier-type { margin-top: 3px; color: #64748b; font-size: 9px; }
.supplier-score { display: flex; flex-direction: column; align-items: flex-end; color: #fbbf24; }
.supplier-score strong { font-size: 25px; line-height: 1; letter-spacing: -1px; }
.supplier-score span { margin-top: 3px; color: #64748b; font-size: 9px; }
.supplier-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px 13px;
    margin: 17px 0 13px;
    padding: 13px 0;
    border-top: 1px solid rgba(148, 163, 184, .09);
    border-bottom: 1px solid rgba(148, 163, 184, .09);
}
.supplier-metric { display: grid; grid-template-columns: 27px minmax(30px, 1fr) 22px; align-items: center; gap: 6px; color: #94a3b8; font-size: 9px; }
.supplier-metric-track { height: 4px; overflow: hidden; border-radius: 99px; background: rgba(148, 163, 184, .1); }
.supplier-metric-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #3b82f6, #2dd4bf); }
.supplier-metric b { color: #cbd5e1; font-size: 9px; font-weight: 600; text-align: right; }
.supplier-reason { display: flex; gap: 8px; min-height: 32px; color: #94a3b8; }
.supplier-reason > span { flex: 0 0 auto; color: #64748b; font-size: 9px; }
.supplier-reason p { margin: 0; color: #cbd5e1; font-size: 10px; line-height: 1.45; }
.supplier-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 12px; }
.supplier-card-footer > span { color: #64748b; font-size: 9px; }
.supplier-card-footer .btn { flex: 0 0 auto; min-height: 30px; margin: 0; padding: 5px 10px; border-radius: 8px; }
.supplier-empty-state {
    grid-column: 1 / -1;
    display: grid;
    place-items: center;
    min-height: 190px;
    border: 1px dashed rgba(148, 163, 184, .18);
    border-radius: 14px;
    background: rgba(15, 23, 42, .24);
    text-align: center;
}
.supplier-empty-icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    margin: 0 auto 11px;
    border-radius: 14px;
    background: rgba(59, 130, 246, .1);
    color: #60a5fa;
    font-size: 22px;
}
.supplier-empty-state strong { display: block; color: #cbd5e1; font-size: 13px; }
.supplier-empty-state p { margin: 6px 0 0; color: #64748b; font-size: 10px; }
.supplier-skeleton {
    position: relative;
    min-height: 245px;
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, .1);
    border-radius: 14px;
    background: rgba(30, 41, 59, .48);
}
.supplier-skeleton::after {
    content: '';
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent, rgba(148, 163, 184, .08), transparent);
    animation: supplierShimmer 1.05s infinite;
}
.supplier-skeleton-lines { padding: 18px; }
.supplier-skeleton-lines i { display: block; height: 9px; margin-bottom: 14px; border-radius: 99px; background: rgba(148, 163, 184, .09); }
.supplier-skeleton-lines i:nth-child(1) { width: 56%; height: 15px; }
.supplier-skeleton-lines i:nth-child(2) { width: 90%; }
.supplier-skeleton-lines i:nth-child(3) { width: 76%; }
.supplier-skeleton-lines i:nth-child(4) { width: 84%; }
.supplier-skeleton-lines i:nth-child(5) { width: 42%; margin-top: 34px; }
@keyframes supplierShimmer { to { transform: translateX(100%); } }

@media (max-width: 1040px) {
    .procure-supplier-layout .procure-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .procure-supplier-layout .procure-form-title { grid-column: 1 / -1; }
    .procure-supplier-layout .procure-match-btn { width: 100%; grid-column: 1 / -1; }
}
@media (max-width: 720px) {
    .supplier-list { grid-template-columns: 1fr; }
    .procure-supplier-layout .procure-form { grid-template-columns: 1fr; }
    .procure-supplier-layout .procure-form-title,
    .procure-supplier-layout .procure-match-btn { grid-column: auto; }
}

/* =====================================================================
   03 合同签订与存证：原页面（数智农链 P6 02/03）模块样式移植
   ===================================================================== */
/* ---- 卡片基础（源自原页面） ---- */
.card {
    background: rgba(30, 41, 59, 0.4);
    border: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 16px;
    padding: 20px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}
.card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}
.card-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 10px;
}
.chip-chain { color: #c4b5fd; border-color: rgba(139, 92, 246, .35); background: rgba(139, 92, 246, .12); }

/* ---- 进度条 ---- */
.progress-bar { height: 6px; background: rgba(255, 255, 255, 0.05); border-radius: 3px; overflow: hidden; margin: 10px 0; }
.progress-fill { height: 100%; background: linear-gradient(90deg, #3b82f6, #60a5fa); border-radius: 3px; transition: width 1s ease; }

/* ---- 03 视图三栏容器 ---- */
#decision-contract-view .s3-grid {
    display: grid;
    grid-template-columns: minmax(290px, .95fr) minmax(330px, 1.1fr) minmax(330px, 1.02fr);
    gap: 16px;
    height: 100%;
    min-height: 0;
    padding: 12px 14px 16px;
    overflow-y: auto;
}
#decision-contract-view .s3-card {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
}

/* ---- 左栏：资金额度 ---- */
.s3-funds { flex: 0 0 auto; }
.p6-fund-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.p6-fund-metric { min-width: 0; padding: 14px; border: 1px solid rgba(148, 163, 184, .1); border-radius: 11px; background: rgba(15, 23, 42, .38); }
.p6-fund-metric > span, .p6-fund-metric > strong, .p6-fund-metric > small { display: block; }
.p6-fund-metric > span { color: #94a3b8; font-size: 10px; }
.p6-fund-metric > strong { margin: 8px 0 7px; color: #f8fafc; font-size: 19px; line-height: 1; }
.p6-fund-metric > small { color: #64748b; font-size: 9px; white-space: nowrap; }
.p6-fund-metric > small b { color: #94a3b8; font-weight: 500; }
.p6-fund-metric > small i { display: inline-block; width: 1px; height: 9px; margin: 0 7px; background: rgba(148, 163, 184, .22); vertical-align: -1px; }
.p6-fund-metric.demand { border-color: rgba(245, 158, 11, .18); background: linear-gradient(145deg, rgba(245, 158, 11, .08), rgba(15, 23, 42, .35)); }
.p6-fund-metric.demand > strong { color: #fbbf24; }
.p6-fund-metric.available { border-color: rgba(16, 185, 129, .18); background: linear-gradient(145deg, rgba(16, 185, 129, .08), rgba(15, 23, 42, .35)); }
.p6-fund-metric.available > strong { color: #34d399; }
.p6-fund-metric .progress-bar { margin-top: 10px; }
.fund-assessment { margin: 12px 0 0; border-radius: 9px; padding: 11px; font-size: 12px; }
.fund-assessment.success { background: rgba(16, 185, 129, .11); color: #6ee7b7; }
.fund-assessment strong, .fund-assessment span { display: block; }
.fund-assessment span { color: #a7f3d0; margin-top: 5px; }
.fund-assessment p { color: var(--text-secondary); margin: 6px 0 0; font-size: 11px; }

/* ---- 左栏：采购时间线（节点卡，纵向排列） ---- */
.p6-divider { height: 1px; background: rgba(255, 255, 255, .07); margin: 17px 0 14px; }
.timeline-title { font-size: 12px; font-weight: 650; color: #e2e8f0; margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; }
.timeline-title::after { content: '按到货紧急程度排序'; color: #64748b; font-size: 9px; font-weight: 400; }
.s3-left .p6-procure-timeline { display: grid; grid-template-columns: 1fr; gap: 8px; }
.p6-timeline-node {
    padding: 9px 12px;
    border: 1px solid rgba(245, 158, 11, .14);
    border-radius: 10px;
    background: linear-gradient(145deg, rgba(245, 158, 11, .06), rgba(15, 23, 42, .3));
    display: grid;
    grid-template-columns: 56px minmax(40px, 1fr) auto;
    align-items: center;
    gap: 10px;
}
.p6-timeline-node.urgent { border-color: rgba(244, 63, 94, .16); background: linear-gradient(145deg, rgba(244, 63, 94, .07), rgba(15, 23, 42, .3)); }
.p6-timeline-when { color: #fbbf24; font-size: 10px; font-weight: 650; }
.p6-timeline-node.urgent .p6-timeline-when { color: #fb7185; }
.p6-timeline-track { height: 5px; overflow: hidden; border-radius: 99px; background: rgba(148, 163, 184, .12); }
.p6-timeline-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #f59e0b, #fbbf24); }
.p6-timeline-node.urgent .p6-timeline-track i { background: linear-gradient(90deg, #ef4444, #fb7185); }
.p6-timeline-info { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.p6-timeline-info strong { overflow: hidden; color: #e2e8f0; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.p6-timeline-info span { flex: 0 0 auto; color: #94a3b8; font-size: 9px; }

/* ---- 中栏：资金需求表 ---- */
.p6-table-wrap { overflow-x: auto; }
.p6-plan-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.p6-plan-table th, .p6-plan-table td { padding: 9px 7px; text-align: left; border-bottom: 1px solid rgba(255, 255, 255, .06); white-space: nowrap; }
.p6-plan-table th { color: #64748b; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; padding-top: 8px; padding-bottom: 11px; }
.p6-plan-table td { height: 50px; padding: 8px 7px; transition: background .18s ease; }
.p6-plan-table tbody tr:hover td { background: rgba(59, 130, 246, .045); }
.p6-plan-table td input { width: 54px; border: 0; border-bottom: 1px solid rgba(96, 165, 250, .35); background: transparent; color: var(--text); outline: none; font: inherit; padding: 2px; }
.p6-plan-table td input[type="number"] { appearance: textfield; -moz-appearance: textfield; }
.p6-plan-table td input[type="number"]::-webkit-inner-spin-button,
.p6-plan-table td input[type="number"]::-webkit-outer-spin-button { appearance: none; -webkit-appearance: none; margin: 0; }
.p6-plan-table td:last-child { color: #a7f3d0; }
.p6-material-name { color: #e2e8f0; font-size: 11px; }
.p6-subtotal { color: #f8fafc; font-weight: 650; }
.p6-supplier-pill {
    display: inline-block;
    max-width: 140px;
    overflow: hidden;
    padding: 4px 7px;
    border-radius: 6px;
    background: rgba(16, 185, 129, .09);
    color: #6ee7b7;
    font-size: 9px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.p6-qty-stepper { display: inline-flex; align-items: center; min-height: 30px; overflow: hidden; border: 1px solid rgba(148, 163, 184, .13); border-radius: 8px; background: rgba(8, 15, 30, .45); }
.p6-qty-stepper button { display: grid; place-items: center; width: 27px; height: 28px; border: 0; background: transparent; color: #94a3b8; cursor: pointer; font: inherit; font-size: 15px; transition: color .18s ease, background .18s ease; }
.p6-qty-stepper button:hover { background: rgba(59, 130, 246, .12); color: #60a5fa; }
.p6-qty-stepper input { width: 44px !important; height: 28px; padding: 0 2px !important; border: 0 !important; border-left: 1px solid rgba(148, 163, 184, .1) !important; background: transparent; text-align: center; }
.p6-qty-stepper span { min-width: 24px; padding: 0 6px; border-right: 1px solid rgba(148, 163, 184, .1); color: #64748b; font-size: 9px; text-align: center; }
.s3-mid .plan-total {
    margin-top: 8px;
    padding: 12px 14px;
    border-radius: 10px;
    background: rgba(245, 158, 11, .07);
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
}
.s3-mid .plan-total strong { color: #fbbf24; font-size: 22px; }

/* ---- 右栏：合同与存证 ---- */
.contract-template-row { display: grid; grid-template-columns: 58px minmax(0, 1fr); align-items: center; gap: 9px; color: var(--text-secondary); font-size: 12px; }
.contract-actions { display: flex; gap: 9px; margin-top: 14px; }
.contract-actions .btn { flex: 1; justify-content: center; }
.contract-status-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    margin-top: 14px;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 9px;
    overflow: hidden;
    background: rgba(255, 255, 255, .07);
}
.contract-status-grid > div { padding: 10px; background: #182338; }
.contract-status-grid span, .contract-status-grid strong, .contract-status-grid small { display: block; }
.contract-status-grid span, .contract-status-grid small { color: var(--text-secondary); font-size: 10px; }
.contract-status-grid strong { margin: 4px 0; color: #fcd34d; font-size: 12px; }
.contract-status-grid small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.evidence-flow {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 16px 0 14px;
    padding: 3px 0;
    color: #94a3b8;
    font-size: 10px;
}
.evidence-flow span { position: relative; display: grid; place-items: center; min-height: 28px; padding: 4px 8px; text-align: center; line-height: 1.35; }
.evidence-flow span:not(:last-of-type)::after { content: ''; position: absolute; top: 50%; right: -28px; width: 47px; height: 1px; background: #64748b; transform: translateY(-50%); }
.evidence-flow span:not(:last-of-type)::before { content: ''; position: absolute; top: 50%; right: -28px; width: 5px; height: 5px; border-top: 1px solid #64748b; border-right: 1px solid #64748b; transform: translateY(-50%) rotate(45deg); }
.evidence-flow span.done { color: #6ee7b7; }
.evidence-flow span.done:not(:last-of-type)::after { background: #6ee7b7; }
.evidence-flow span.done:not(:last-of-type)::before { border-color: #6ee7b7; }
.evidence-flow i { display: none; }
.contract-verify-btn { width: 100%; justify-content: center; margin-top: 9px; color: #c4b5fd; }

@media (max-width: 1240px) {
    #decision-contract-view .s3-grid { grid-template-columns: 1fr; height: auto; overflow: visible; }
    #decision-contract-view .s3-card { height: auto; }
    .s3-left .p6-procure-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .p6-fund-metrics { grid-template-columns: 1fr; }
    .s3-left .p6-procure-timeline { grid-template-columns: 1fr; }
}

/* =====================================================================
   03 合同签订与存证：样式统一为驾驶舱玻璃霓虹青风格（仅限本子页）
   ===================================================================== */
#decision-contract-view .s3-card {
    background: linear-gradient(180deg, rgba(16, 30, 54, .92), rgba(7, 16, 30, .95));
    border: 1px solid rgba(0, 242, 254, .16);
    border-radius: 14px;
    box-shadow: 0 10px 26px rgba(0, 0, 0, .26);
}
#decision-contract-view .s3-card:hover { border-color: rgba(0, 242, 254, .34); }
#decision-contract-view .card-title { color: #f1f9ff; font-weight: 700; letter-spacing: .4px; }

/* 标签（chip）统一为驾驶舱圆角胶囊 */
#decision-contract-view .chip {
    border-radius: 999px;
    padding: 2px 10px;
    border: 1px solid rgba(0, 242, 254, .32);
    background: rgba(0, 242, 254, .08);
    color: #8be3ef;
    letter-spacing: .4px;
}
#decision-contract-view .chip-green { color: #6ee7b7; border-color: rgba(16, 185, 129, .38); background: rgba(16, 185, 129, .1); }
#decision-contract-view .chip-chain { color: #a5b4fc; border-color: rgba(139, 92, 246, .4); background: rgba(139, 92, 246, .12); }

/* ---- 左栏：资金额度 ---- */
#decision-contract-view .p6-fund-metric {
    background: rgba(8, 19, 38, .6);
    border: 1px solid rgba(0, 242, 254, .14);
    border-radius: 12px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .03);
}
#decision-contract-view .p6-fund-metric > span { color: #8fb8cc; letter-spacing: .6px; }
#decision-contract-view .p6-fund-metric > strong { color: #f1f9ff; text-shadow: 0 0 18px rgba(0, 242, 254, .18); }
#decision-contract-view .p6-fund-metric > small { color: #5f7c90; }
#decision-contract-view .p6-fund-metric > small b { color: #a9cfe0; }
#decision-contract-view .p6-fund-metric.demand { border-color: rgba(245, 158, 11, .28); background: linear-gradient(145deg, rgba(245, 158, 11, .12), rgba(8, 19, 38, .6)); }
#decision-contract-view .p6-fund-metric.demand > strong { color: #fbbf24; text-shadow: 0 0 18px rgba(251, 191, 36, .2); }
#decision-contract-view .p6-fund-metric.available { border-color: rgba(52, 211, 153, .3); background: linear-gradient(145deg, rgba(16, 185, 129, .12), rgba(8, 19, 38, .6)); }
#decision-contract-view .p6-fund-metric.available > strong { color: #34d399; text-shadow: 0 0 18px rgba(52, 211, 153, .22); }
#decision-contract-view .progress-bar { background: rgba(148, 163, 184, .14); }
#decision-contract-view .progress-fill { background: linear-gradient(90deg, #00d9e8, #4facfe); box-shadow: 0 0 10px rgba(0, 242, 254, .5); }

/* ---- 左栏：时间线 ---- */
#decision-contract-view .p6-divider { background: rgba(0, 242, 254, .12); }
#decision-contract-view .timeline-title { color: #eafaff; }
#decision-contract-view .p6-timeline-node {
    border-color: rgba(0, 242, 254, .14);
    background: linear-gradient(145deg, rgba(0, 80, 110, .14), rgba(7, 16, 30, .6));
}
#decision-contract-view .p6-timeline-node.urgent { border-color: rgba(244, 63, 94, .2); background: linear-gradient(145deg, rgba(244, 63, 94, .1), rgba(7, 16, 30, .6)); }
#decision-contract-view .p6-timeline-when { color: #7fe9f5; }
#decision-contract-view .p6-timeline-node.urgent .p6-timeline-when { color: #fb7185; }
#decision-contract-view .p6-timeline-track { background: rgba(148, 163, 184, .14); }
#decision-contract-view .p6-timeline-track i { background: linear-gradient(90deg, #00d9e8, #4facfe); box-shadow: 0 0 8px rgba(0, 242, 254, .45); }
#decision-contract-view .p6-timeline-node.urgent .p6-timeline-track i { background: linear-gradient(90deg, #ef4444, #fb7185); }
#decision-contract-view .p6-timeline-info strong { color: #eafaff; }
#decision-contract-view .p6-timeline-info span { color: #8fb8cc; }

/* ---- 中栏：资金需求表 ---- */
#decision-contract-view .p6-plan-table th { color: #6f8da0; border-color: rgba(0, 242, 254, .1); }
#decision-contract-view .p6-plan-table td { border-color: rgba(0, 242, 254, .08); }
#decision-contract-view .p6-plan-table tbody tr:hover td { background: rgba(0, 242, 254, .045); }
#decision-contract-view .p6-material-name { color: #eafaff; }
#decision-contract-view .p6-subtotal { color: #f8fafc; }
#decision-contract-view .p6-supplier-pill {
    background: rgba(16, 185, 129, .1);
    color: #6ee7b7;
    border: 1px solid rgba(16, 185, 129, .22);
}
#decision-contract-view .p6-qty-stepper { border-color: rgba(0, 242, 254, .18); background: rgba(8, 19, 38, .6); }
#decision-contract-view .p6-qty-stepper button { color: #7fe9f5; }
#decision-contract-view .p6-qty-stepper button:hover { background: rgba(0, 242, 254, .12); color: #00f2fe; }
#decision-contract-view .p6-qty-stepper input { color: #eafaff; }
#decision-contract-view .p6-qty-stepper span { border-color: rgba(0, 242, 254, .1); color: #6f8da0; }
#decision-contract-view .plan-total { background: rgba(0, 242, 254, .06); border: 1px solid rgba(0, 242, 254, .14); }
#decision-contract-view .plan-total span { color: #a9cfe0; }

/* ---- 右栏：合同与存证 ---- */
#decision-contract-view .contract-template-row { color: #8fb8cc; }
#decision-contract-view .custom-select-trigger {
    background: rgba(3, 13, 28, .85);
    border-color: rgba(0, 242, 254, .22);
    color: #eafaff;
}
#decision-contract-view .custom-select-trigger:hover,
#decision-contract-view .custom-select.open .custom-select-trigger { border-color: rgba(0, 242, 254, .7); box-shadow: 0 0 0 2px rgba(0, 242, 254, .1); }
#decision-contract-view .custom-select-menu { border-color: rgba(0, 242, 254, .4); background: #0a1830; }
#decision-contract-view .custom-select-option:hover,
#decision-contract-view .custom-select-option.selected { background: rgba(0, 242, 254, .16); color: #fff; }

#decision-contract-view .btn {
    border-color: rgba(0, 242, 254, .35);
    background: rgba(0, 242, 254, .06);
    color: #8be3ef;
}
#decision-contract-view .btn:hover { border-color: rgba(0, 242, 254, .85); color: #fff; box-shadow: 0 0 14px rgba(0, 242, 254, .16); }
#decision-contract-view .btn-primary {
    color: #001018;
    border-color: var(--primary-cyan);
    background: linear-gradient(90deg, #00d9e8, #4facfe);
    font-weight: 700;
    box-shadow: 0 6px 18px rgba(0, 242, 254, .22);
}
#decision-contract-view .btn-primary:hover { background: linear-gradient(90deg, #00d9e8, #4facfe); filter: brightness(1.1); }
#decision-contract-view .btn:disabled { opacity: .55; }

#decision-contract-view .contract-status-grid { border-color: rgba(0, 242, 254, .16); background: rgba(0, 242, 254, .14); }
#decision-contract-view .contract-status-grid > div { background: #0a1a2e; }
#decision-contract-view .contract-status-grid span { color: #8fb8cc; }
#decision-contract-view .contract-status-grid small { color: #5f7c90; }
#decision-contract-view .evidence-flow { color: #54707f; }
#decision-contract-view .evidence-flow span:not(:last-of-type)::after { background: #4a6b7e; }
#decision-contract-view .evidence-flow span:not(:last-of-type)::before { border-color: #4a6b7e; }
#decision-contract-view .contract-verify-btn { color: #7fe9f5; }

/* 03 与方案决策统一：切角玻璃卡、信息标与透视层级 */
#decision-contract-view .s3-grid {
    grid-template-columns: minmax(240px, .72fr) minmax(530px, 1.56fr) minmax(250px, .78fr);
    width: 94%;
    max-width: 1660px;
    margin: 0 auto;
    padding: 0;
    gap: 18px;
    perspective: 1200px;
    transform-style: preserve-3d;
}
#decision-contract-view .s3-card {
    position: relative;
    padding: 16px;
    border-radius: 0;
    background: rgba(6, 18, 38, .64);
    border-color: rgba(0, 242, 254, .18);
    box-shadow: inset 0 0 20px rgba(0, 242, 254, .05), 0 12px 30px rgba(0, 0, 0, .24);
    clip-path: polygon(0 10px, 10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%);
    transition: transform .24s ease, border-color .24s ease, box-shadow .24s ease;
}
#decision-contract-view .s3-left { transform: rotateY(10deg) scale(.97) translateX(5px) translateZ(-24px); transform-origin: right center; }
#decision-contract-view .s3-mid { transform: scale(.99) translateZ(18px); }
#decision-contract-view .s3-right { transform: rotateY(-10deg) scale(.97) translateX(-5px) translateZ(-24px); transform-origin: left center; }
#decision-contract-view .s3-left:hover { transform: rotateY(5deg) scale(.985) translateX(2px) translateZ(-8px); }
#decision-contract-view .s3-right:hover { transform: rotateY(-5deg) scale(.985) translateX(-2px) translateZ(-8px); }
#decision-contract-view .s3-card:hover { border-color: rgba(0, 242, 254, .42); box-shadow: inset 0 0 22px rgba(0, 242, 254, .08), 0 14px 32px rgba(0, 0, 0, .3); }

#decision-contract-view .s3-heading { min-height: 49px; margin-bottom: 13px; padding-bottom: 10px; }
#decision-contract-view .s3-heading h3 { font-size: 15px; }
#decision-contract-view .s3-heading .decision-kicker { color: rgba(79, 172, 254, .62); }
#decision-contract-view .chip { font-family: 'Share Tech Mono', monospace; font-size: 9px; }
#decision-contract-view .p6-fund-metrics { gap: 8px; grid-template-columns: 1fr; }
#decision-contract-view .p6-fund-metric { padding: 11px; border-radius: 6px; }
#decision-contract-view .p6-fund-metric > strong { margin: 7px 0 5px; font-family: 'Share Tech Mono', monospace; }
#decision-contract-view .p6-fund-metric.available { display: flex; flex-direction: column; align-items: stretch; padding: 13px 15px; }
#decision-contract-view .p6-fund-metric.available > span { flex: 0 0 auto; font-size: 11px; font-weight: 600; }
#decision-contract-view .p6-fund-metric.available > strong { flex: 0 0 auto; margin: 4px 0 10px; font-size: 24px; }
#decision-contract-view .p6-fund-metric.available .progress-bar { width: 100%; max-width: none; margin: 0; }
#decision-contract-view .fund-assessment { border: 1px solid rgba(34, 197, 94, .22); border-radius: 6px; }
#decision-contract-view .p6-divider { margin: 14px 0 11px; }
#decision-contract-view .timeline-title { padding-left: 8px; border-left: 2px solid var(--primary-cyan); font-size: 12px; }
#decision-contract-view .p6-timeline-node { border-radius: 5px; }
#decision-contract-view .p6-plan-table th { font-family: 'Share Tech Mono', monospace; font-size: 10px; }
#decision-contract-view .p6-plan-table th,
#decision-contract-view .p6-plan-table td { padding-inline: 8px; }
#decision-contract-view .p6-qty-stepper,
#decision-contract-view .p6-supplier-pill,
#decision-contract-view .plan-total,
#decision-contract-view .contract-status-grid,
#decision-contract-view .contract-template-row .custom-select-trigger,
#decision-contract-view .btn { border-radius: 5px; }
#decision-contract-view .contract-actions { margin-top: 12px; }
#decision-contract-view .contract-status-grid > div { background: rgba(3, 13, 28, .82); }
#decision-contract-view .evidence-flow { margin: 14px 0 11px; font-family: 'Share Tech Mono', monospace; font-size: 9px; }

@media (max-width: 1240px) {
    #decision-contract-view .s3-grid { width: 100%; }
    #decision-contract-view .s3-left,
    #decision-contract-view .s3-mid,
    #decision-contract-view .s3-right,
    #decision-contract-view .s3-left:hover,
    #decision-contract-view .s3-right:hover { transform: none; }
}

/* 03 纵向空间利用：以原有数据填充中、右工作区 */
#decision-contract-view .s3-mid .p6-table-wrap {
    display: flex;
    flex: 1;
    min-height: 0;
    margin-bottom: 10px;
    overflow: hidden auto;
}
#decision-contract-view .s3-mid .p6-plan-table { height: 100%; }
#decision-contract-view .s3-mid .p6-plan-table thead { height: 56px; }
#decision-contract-view .s3-mid .p6-plan-table tbody tr { height: 18%; }
#decision-contract-view .s3-mid .p6-plan-table td { vertical-align: middle; }
#decision-contract-view .s3-mid .plan-total { margin-top: auto; }

#decision-contract-view .s3-right .contract-status-grid { min-height: 102px; }
#decision-contract-view .s3-right .contract-status-grid > div { display: flex; flex-direction: column; justify-content: center; }
#decision-contract-view .s3-right .evidence-flow {
    display: grid;
    flex: 1;
    min-height: 0;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(4, minmax(42px, 1fr));
    align-content: stretch;
    gap: 8px;
    margin: 14px 0;
    padding: 0;
}
#decision-contract-view .s3-right .evidence-flow span {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-height: 0;
    padding: 9px 12px;
    border: 1px solid rgba(0, 242, 254, .13);
    border-radius: 5px;
    background: linear-gradient(90deg, rgba(0, 76, 106, .18), rgba(3, 13, 28, .38));
    text-align: left;
}
#decision-contract-view .s3-right .evidence-flow span:not(:last-of-type)::after {
    top: auto;
    right: auto;
    bottom: -9px;
    left: 20px;
    width: 1px;
    height: 9px;
    transform: none;
    background: rgba(0, 242, 254, .34);
}
#decision-contract-view .s3-right .evidence-flow span:not(:last-of-type)::before { display: none; }
#decision-contract-view .s3-right .evidence-flow span.done { border-color: rgba(34, 197, 94, .28); background: linear-gradient(90deg, rgba(34, 197, 94, .11), rgba(3, 13, 28, .38)); }
#decision-contract-view .s3-right .evidence-flow span.done:not(:last-of-type)::after { background: #6ee7b7; }
#decision-contract-view .s3-right .contract-verify-btn { margin-top: auto; }

/* 03 右栏：桌面端内容完整收纳，存证步骤居中对齐 */
@media (min-width: 1241px) {
    #decision-contract-view .s3-grid { overflow: hidden; }
}
#decision-contract-view .s3-right .evidence-flow span {
    justify-content: center;
    padding-inline: 16px;
    color: #8cb6c7;
    font-family: 'Share Tech Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .06em;
    text-align: center;
}
#decision-contract-view .s3-right .evidence-flow span:not(:last-of-type)::after {
    left: 50%;
    transform: translateX(-50%);
}
#decision-contract-view .s3-right .evidence-flow span.done { color: #6ee7b7; }

/* 信用风险与画像：沿用驾驶舱的三栏透视布局 */
#credit-risk-section { min-height: 0; overflow: hidden; }
.credit-page-shell {
    width: min(96%, 1740px);
    height: 100%;
    margin: 0 auto;
    padding: 8px 0 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    perspective: 1500px;
}
.credit-record-ticker {
    width: 49%;
    min-height: 30px;
    align-self: flex-end;
    display: flex;
    align-items: center;
    overflow: hidden;
    border: 1px solid rgba(0, 242, 254, .2);
    border-radius: 4px;
    background: linear-gradient(90deg, rgba(1, 19, 39, .9), rgba(0, 107, 132, .16));
    box-shadow: inset 0 0 18px rgba(0, 242, 254, .04);
}
.credit-record-label { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; padding: 0 12px; color: #67e8f9; font: 700 10px 'Share Tech Mono', monospace; letter-spacing: .08em; border-right: 1px solid rgba(0, 242, 254, .16); }
.credit-record-label svg { width: 13px; height: 13px; }
.credit-record-track { display: flex; gap: 28px; min-width: max-content; padding: 0 18px; animation: credit-ticker 22s linear infinite; color: #9fc3d3; font-size: 10px; white-space: nowrap; }
.credit-record-track b { color: #cceffd; font-weight: 700; }
.credit-record-track em { font-style: normal; font-weight: 700; }
.credit-record-track .is-paid { color: #4ade80; }.credit-record-track .is-pending { color: #fbbf24; }.credit-record-track .is-rejected { color: #fb7185; }
@keyframes credit-ticker { from { transform: translateX(0); } to { transform: translateX(-20%); } }

.credit-three-column { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(250px, .76fr) minmax(520px, 1.56fr) minmax(270px, .82fr); gap: 24px; align-items: stretch; transform-style: preserve-3d; }
.credit-card { min-height: 0; padding: 18px 18px 16px; display: flex; flex-direction: column; overflow: hidden; }
.credit-forecast-card { transform: rotateY(8deg) scale(.98); transform-origin: right center; }
.credit-portrait-card { transform: translateZ(22px); z-index: 2; }
.credit-fund-card { transform: rotateY(-8deg) scale(.98); transform-origin: left center; }
.credit-heading { flex: 0 0 auto; padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid rgba(0, 242, 254, .18); }
.credit-heading h3 { margin: 2px 0 0; font-size: 18px; color: #e6f8ff; line-height: 1.2; }
.credit-heading h3 svg { width: 19px; height: 19px; margin-right: 7px; vertical-align: -4px; color: #00f2fe; }
.credit-expand { display: inline-flex; align-items: center; gap: 6px; border: 1px solid rgba(0,242,254,.45); border-radius: 5px; padding: 6px 9px; color: #67e8f9; background: rgba(0,95,125,.14); font-size: 11px; transition: .2s; }
.credit-expand:hover { color: #fff; background: rgba(0, 199, 232, .25); box-shadow: 0 0 16px rgba(0,242,254,.18); }.credit-expand svg { width: 13px; height: 13px; }

.credit-forecast-tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; padding: 3px; border-radius: 5px; background: rgba(0, 40, 68, .32); }
.credit-forecast-tabs button { min-height: 30px; border: 1px solid transparent; border-radius: 4px; color: #729bb0; background: transparent; font-size: 11px; transition: .2s; }.credit-forecast-tabs button.active { color: #d9fbff; background: linear-gradient(90deg, rgba(0,202,220,.28), rgba(34,89,160,.36)); border-color: rgba(0,242,254,.45); box-shadow: inset 0 0 14px rgba(0,242,254,.12); }
.credit-forecast-period { margin: 13px 0 7px; color: #bdeeff; font-size: 12px; font-weight: 700; }
.credit-forecast-list { display: grid; gap: 7px; }
.credit-forecast-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; align-items: center; padding: 9px 8px; border: 1px solid rgba(0, 151, 197, .17); border-radius: 4px; background: rgba(0, 16, 35, .3); color: #94bdcf; font-size: 11px; }
.credit-forecast-list span { display: flex; align-items: center; gap: 5px; min-width: 0; }.credit-forecast-list strong { color: #d7eff8; font: 700 11px 'Share Tech Mono', monospace; }.credit-forecast-list em { min-width: 26px; color: #6a9aad; font-size: 9px; font-style: normal; text-align: right; }.credit-forecast-list .dot { width: 5px; height: 5px; border-radius: 50%; background: #38bdf8; box-shadow: 0 0 8px #38bdf8; }.credit-forecast-list .urgent { background: #fb7185; box-shadow: 0 0 8px #fb7185; }
.credit-forecast-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }.credit-forecast-summary > div { padding: 10px 8px; border-radius: 4px; border: 1px solid rgba(0, 242, 254, .2); background: linear-gradient(135deg, rgba(0, 117, 145, .17), rgba(2, 16, 33, .52)); }.credit-forecast-summary span { display: block; color: #7fa9bd; font-size: 9px; }.credit-forecast-summary strong { display: block; margin-top: 4px; color: #00f2fe; font: 700 15px 'Share Tech Mono', monospace; white-space: nowrap; }
.credit-sufficiency { display: flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 13px; color: #6ee7b7; border-top: 1px solid rgba(34,197,94,.16); font-size: 10px; }.credit-sufficiency svg { width: 14px; height: 14px; }

.credit-score-overview { display: grid; grid-template-columns: .9fr 1fr .64fr; gap: 10px; padding: 10px; border: 1px solid rgba(0,242,254,.2); border-radius: 6px; background: radial-gradient(circle at 20% 0%, rgba(0,242,254,.12), transparent 48%), rgba(1, 17, 34, .58); }.credit-score-core,.credit-rating { display: flex; flex-direction: column; justify-content: center; }.credit-score-core > span,.credit-rating > span { color: #719caf; font-size: 10px; }.credit-score-core strong { margin-top: 2px; color: #00f2fe; font: 700 36px/1 'Share Tech Mono', monospace; text-shadow: 0 0 16px rgba(0,242,254,.45); }.credit-score-core small { color: #6691a5; font-size: 9px; }.credit-rating { border-left: 1px solid rgba(0,242,254,.15); padding-left: 12px; }.credit-rating b { color: #faad14; font: 700 31px/1 'Share Tech Mono', monospace; text-shadow: 0 0 16px rgba(250,173,20,.35); }.credit-rating small { margin-top: 5px; color: #93bfd0; font-size: 10px; }.credit-rating-scale { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; color: #f9c950; font: 700 10px 'Share Tech Mono', monospace; }.credit-rating-scale i { width: 34px; height: 6px; border-radius: 8px; background: linear-gradient(90deg,#22c55e,#faad14); box-shadow: 0 0 10px rgba(250,173,20,.35); }
.credit-dimension-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin-top: 10px; }.credit-dimension-card { min-height: 122px; position: relative; overflow: hidden; padding: 9px; border: 1px solid rgba(0, 152, 197, .2); border-radius: 5px; background: linear-gradient(150deg, rgba(0, 70, 100, .18), rgba(1, 13, 28, .5)); }.credit-dimension-card:nth-child(4) { grid-column: span 1; }.credit-dimension-card:nth-child(5) { grid-column: span 2; }.dimension-title { display: flex; align-items: baseline; justify-content: space-between; color: #9ec4d4; font-size: 11px; font-weight: 700; }.dimension-title b { color: #dffaff; font: 700 15px 'Share Tech Mono', monospace; }.credit-dimension-card p { position: absolute; left: 9px; right: 9px; bottom: 8px; margin: 0; color: #678fa3; font-size: 9px; line-height: 1.35; }
.mini-gauge { --value: 80; position: relative; width: 56px; height: 56px; margin: 8px auto 0; border-radius: 50%; background: conic-gradient(#00e5ef calc(var(--value) * 1%), rgba(0, 93, 120, .23) 0); }.mini-gauge::before { content: ''; position: absolute; inset: 5px; border-radius: inherit; background: #061729; }.mini-gauge span { position: absolute; inset: 0; z-index: 1; display: flex; align-items: center; justify-content: center; color: #c9faff; font: 700 16px 'Share Tech Mono', monospace; }.mini-gauge small,.mini-wave small { margin-left: 2px; color: #6da4b9; font-size: 8px; }.ring-gold { background: conic-gradient(#faad14 calc(var(--value) * 1%), rgba(130, 85, 0, .26) 0); }.trend-card .mini-trend { display: flex; align-items: flex-end; gap: 7px; height: 57px; margin: 8px 11px 0; padding-bottom: 7px; border-bottom: 1px solid rgba(0,242,254,.18); }.mini-trend i { flex: 1; max-width: 16px; min-height: 8px; border-radius: 2px 2px 0 0; background: linear-gradient(#04e7ef, rgba(0, 155, 186, .25)); box-shadow: 0 0 8px rgba(0,242,254,.22); }.mini-trend b { position: absolute; top: 37px; right: 9px; color: #5e94aa; font-size: 8px; font-weight: 400; }.supply-card .mini-bars { display: flex; align-items: flex-end; gap: 7px; height: 57px; margin: 8px 11px 0; padding-bottom: 7px; border-bottom: 1px solid rgba(0,242,254,.18); }.mini-bars i { width: 16%; min-height: 10px; border-radius: 2px 2px 0 0; background: linear-gradient(#59e5b1, rgba(25, 140, 101, .25)); }.mini-wave { position: relative; width: 62px; height: 47px; margin: 8px auto 0; overflow: hidden; border: 1px solid rgba(0,242,254,.4); border-radius: 45% 45% 47% 47%; background: #062039; }.mini-wave::before { content: ''; position: absolute; left: -30%; bottom: -20%; width: 160%; height: 72%; border-radius: 45%; background: rgba(0,224,245,.5); animation: credit-wave 4s ease-in-out infinite; }.mini-wave span { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; height: 100%; color: #e7feff; font: 700 17px 'Share Tech Mono', monospace; }@keyframes credit-wave { 50% { transform: translateX(14%) translateY(-8%); } }

.credit-fund-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.credit-fund-metrics > div { min-height: 63px; padding: 9px; border: 1px solid rgba(0, 151, 197, .2); border-radius: 5px; background: rgba(1, 18, 37, .5); }.credit-fund-metrics span { display: block; color: #749caf; font-size: 9px; }.credit-fund-metrics strong { display: block; margin-top: 6px; color: #dffbff; font: 700 16px 'Share Tech Mono', monospace; white-space: nowrap; }.credit-fund-metrics .available strong { color: #4ade80; }.credit-fund-metrics .gap strong { color: #00f2fe; }.credit-limit-meter { position: relative; margin: 11px 0; height: 8px; border-radius: 6px; background: #1c2e45; overflow: hidden; }.credit-limit-meter i { display: block; width: 24%; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#00e5ef,#3b82f6); box-shadow: 0 0 10px #00e5ef; }.credit-limit-meter span { position: absolute; top: 11px; right: 0; color: #6a94a8; font-size: 9px; }
.credit-funding-form { margin-top: 15px; padding: 10px; border: 1px solid rgba(0,242,254,.2); border-radius: 5px; background: rgba(0, 35, 59, .21); }.credit-form-title { margin-bottom: 9px; color: #c2f7ff; font-size: 12px; font-weight: 700; }.credit-funding-form label { display: block; color: #759dae; font-size: 9px; }.credit-funding-form input,.credit-funding-form select { width: 100%; height: 30px; margin-top: 4px; border: 1px solid rgba(0, 175, 209, .32); border-radius: 4px; outline: none; padding: 0 8px; color: #caeff9; background: rgba(0, 12, 29, .72); font-size: 10px; }.credit-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 8px; }.credit-funding-form p { display: flex; align-items: center; gap: 4px; margin: 9px 0; color: #6ee7b7; font-size: 9px; }.credit-funding-form p svg { width: 11px; height: 11px; }.credit-funding-form button { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; min-height: 31px; border-radius: 4px; background: linear-gradient(90deg,#08c8d8,#338be2); color: #00131b; font-size: 11px; font-weight: 800; }.credit-funding-form button svg { width: 12px; height: 12px; }
.credit-risk-alerts { margin-top: auto; padding-top: 12px; }.credit-alert-title { display: flex; justify-content: space-between; align-items: center; margin-bottom: 7px; color: #bceefa; font-size: 12px; font-weight: 700; }.credit-alert-title b { color: #4ade80; font: 700 9px 'Share Tech Mono', monospace; letter-spacing: .1em; }.credit-risk-alerts > div:not(.credit-alert-title) { display: flex; align-items: flex-start; gap: 6px; margin-top: 5px; padding: 7px; border-radius: 3px; background: rgba(0, 51, 48, .14); color: #8cb5c5; font-size: 9px; line-height: 1.35; }.credit-risk-alerts svg { flex: 0 0 auto; width: 12px; height: 12px; color: #4ade80; }.credit-risk-alerts .notice { background: rgba(105, 69, 0, .12) !important; }.credit-risk-alerts .notice svg { color: #fbbf24; }

.credit-expanded-modal { width: min(1220px, 100%); height: min(760px, 100%); margin: 0 auto; padding: 22px; overflow: auto; }.credit-expanded-modal .credit-dimension-grid { grid-template-columns: repeat(5, 1fr); }.credit-expanded-modal .credit-dimension-card,.credit-expanded-modal .credit-dimension-card:nth-child(4),.credit-expanded-modal .credit-dimension-card:nth-child(5) { grid-column: span 1; min-height: 210px; }.credit-expanded-modal .credit-score-overview { padding: 18px; }.credit-expanded-modal .credit-score-core strong { font-size: 58px; }.credit-expanded-modal .credit-rating b { font-size: 46px; }.credit-expanded-modal .mini-gauge { width: 100px; height: 100px; margin-top: 22px; }.credit-expanded-modal .mini-gauge span { font-size: 26px; }.credit-expanded-modal .mini-trend,.credit-expanded-modal .mini-bars { height: 104px; margin-top: 24px; }.credit-expanded-modal .mini-wave { width: 120px; height: 90px; margin-top: 22px; }.credit-expanded-modal .mini-wave span { font-size: 27px; }.credit-expanded-modal .credit-dimension-card p { font-size: 11px; }
@media (max-width: 1240px) { .credit-page-shell { overflow: auto; }.credit-three-column { grid-template-columns: 1fr; }.credit-card { min-height: auto; }.credit-forecast-card,.credit-fund-card { transform: none; }.credit-record-ticker { width: 100%; }.credit-portrait-card { order: -1; }.credit-dimension-grid { grid-template-columns: repeat(2, 1fr); }.credit-dimension-card:nth-child(5) { grid-column: span 1; } }

/* 信用风险页交互与原信用画像入口 */
@media (min-width: 1241px) {
    .credit-forecast-card,.credit-fund-card { transition: transform .48s cubic-bezier(.2,.8,.2,1), box-shadow .48s ease, border-color .3s ease; will-change: transform; }
    .credit-forecast-card:hover { transform: rotateY(0) scale(1) translateZ(20px); }
    .credit-fund-card:hover { transform: rotateY(0) scale(1) translateZ(20px); }
    .credit-forecast-card:hover,.credit-fund-card:hover { border-color: rgba(0,242,254,.5); box-shadow: inset 0 0 24px rgba(0,242,254,.08), 0 20px 42px rgba(0,0,0,.36), 0 0 24px rgba(0,242,254,.12); }
}
.credit-fund-card .credit-limit-meter { margin: 8px 0 0; }
.credit-fund-card .credit-funding-form { margin-top: 6px; }
.credit-original-portrait { display: flex; flex: 1; min-height: 0; flex-direction: column; }
.credit-original-topline { display: flex; align-items: center; justify-content: space-between; color: #d7f9ff; font-size: 13px; font-weight: 700; }
.credit-original-topline b { padding: 4px 9px; border: 1px solid rgba(250,173,20,.38); border-radius: 20px; color: #fbbf24; background: rgba(245,158,11,.11); font-size: 10px; }
.credit-original-score-wrap { display: flex; flex-direction: column; align-items: center; padding: 7px 0 1px; text-align: center; }
.credit-original-score-wrap span,.credit-original-score-wrap small { color: #7ca7b8; font-size: 10px; }.credit-original-score-wrap strong { color: #fbbf24; font: 800 47px/1.04 'Share Tech Mono', monospace; letter-spacing: -2px; text-shadow: 0 0 18px rgba(251,191,36,.32); }.credit-original-score-wrap small { margin-top: 4px; }
.credit-original-radar { flex: 1; width: 100%; min-width: 0; min-height: 205px; margin: -4px -8px 0; }
.credit-original-indicators { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 3px; }.credit-original-indicators span { padding: 5px 7px; border-radius: 4px; font-size: 9px; }.credit-original-indicators .positive { color: #6ee7b7; background: rgba(16,185,129,.11); }.credit-original-indicators .warning { color: #fcd34d; background: rgba(245,158,11,.11); }
.credit-original-report { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; min-height: 32px; margin-top: auto; border: 1px solid rgba(0,242,254,.32); border-radius: 4px; color: #94eafa; background: rgba(0, 83, 115, .13); font-size: 10px; transition: .2s; }.credit-original-report:hover { color: #fff; border-color: rgba(0,242,254,.65); background: rgba(0, 167, 200, .2); }.credit-original-report svg { width: 13px; height: 13px; }
@media (max-height: 820px) and (min-width: 1241px) { .credit-original-radar { min-height: 165px; }.credit-original-score-wrap strong { font-size: 39px; }.credit-original-indicators span { font-size: 8px; }.credit-original-report { min-height: 29px; } }

/* 中栏重排：评分、雷达并列，指标与入口收束在底部 */
.credit-portrait-actions { display: flex; align-items: center; gap: 8px; }
.credit-aaa-chip { padding: 5px 9px; border: 1px solid rgba(250,173,20,.42); border-radius: 20px; color: #fbbf24; background: rgba(245,158,11,.11); font: 700 10px 'Share Tech Mono', monospace; }
@media (min-width: 1241px) {
    .credit-original-portrait {
        display: grid;
        grid-template-columns: minmax(180px, .7fr) minmax(300px, 1.3fr);
        grid-template-rows: minmax(0, 1fr) auto 34px;
        column-gap: 12px;
        row-gap: 9px;
        align-items: stretch;
    }
    .credit-original-score-wrap {
        grid-column: 1;
        grid-row: 1;
        min-height: 0;
        justify-content: center;
        padding: 20px 12px;
        border: 1px solid rgba(250,173,20,.24);
        border-radius: 7px;
        background: radial-gradient(circle at 50% 32%, rgba(250,173,20,.15), transparent 43%), linear-gradient(150deg, rgba(65,50,3,.24), rgba(2,14,29,.64));
    }
    .credit-original-score-wrap strong { margin: 9px 0 3px; font-size: clamp(52px, 4.4vw, 72px); }
    .credit-original-score-wrap small { color: #e8c85d; font-size: 13px; font-weight: 700; }
    .credit-original-score-wrap em { margin-top: 7px; color: #7da4b4; font-size: 10px; font-style: normal; }
    .credit-original-radar {
        grid-column: 2;
        grid-row: 1;
        width: 100%;
        height: 100%;
        min-height: 0;
        margin: 0;
        border: 1px solid rgba(0,242,254,.16);
        border-radius: 7px;
        background: radial-gradient(circle at 50% 52%, rgba(0,110,138,.12), transparent 54%), rgba(1,14,29,.35);
    }
    .credit-original-indicators {
        grid-column: 1 / -1;
        grid-row: 2;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 6px;
        margin: 0;
    }
    .credit-original-indicators span { padding: 7px 8px; font-size: 10px; white-space: nowrap; }
    .credit-original-report { grid-column: 1 / -1; grid-row: 3; margin: 0; min-height: 34px; }
}
@media (max-height: 820px) and (min-width: 1241px) {
    .credit-original-score-wrap { padding: 12px 10px; }
    .credit-original-score-wrap strong { font-size: 48px; }
    .credit-original-score-wrap small { font-size: 11px; }
    .credit-original-indicators span { padding: 5px 7px; font-size: 9px; }
}

/* 信用页：复用驾驶舱统一下拉组件，并补充分数、雷达出场 */
.credit-funding-form .custom-select { margin-top: 4px; }
.credit-funding-form .custom-select-trigger { min-height: 30px; padding: 5px 8px; border-color: rgba(0,175,209,.32); border-radius: 4px; background: rgba(0,12,29,.72); color: #caeff9; font-size: 10px; }
.credit-funding-form .custom-select-trigger:hover,.credit-funding-form .custom-select.open .custom-select-trigger { border-color: rgba(0,242,254,.7); box-shadow: 0 0 0 2px rgba(0,242,254,.1); }
.credit-funding-form .custom-select-menu { z-index: 100; border-color: rgba(0,242,254,.4); border-radius: 5px; background: #08182b; }
.credit-funding-form .custom-select-option { padding: 8px; color: #b6e5ef; font-size: 10px; }.credit-funding-form .custom-select-option:hover,.credit-funding-form .custom-select-option.selected { background: rgba(0,242,254,.14); color: #fff; }
.credit-score-enter { animation: creditScoreEnter .62s cubic-bezier(.18,.86,.28,1) both; }
.credit-radar-enter { animation: creditRadarEnter .78s cubic-bezier(.18,.86,.28,1) both; }
@keyframes creditScoreEnter { from { opacity: 0; transform: translateY(12px) scale(.78); filter: blur(4px); } 65% { opacity: 1; transform: translateY(-2px) scale(1.05); filter: blur(0); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes creditRadarEnter { from { opacity: .35; filter: blur(1px); } to { opacity: 1; filter: blur(0); } }

/* 融资记录：固定标题与独立滚动窗口，整屏无缝循环 */
.credit-record-ticker { width: 100vw; min-height: 38px; margin-left: calc(50% - 50vw); align-self: stretch; border-radius: 0; }
.credit-record-label { position: relative; z-index: 2; min-height: 38px; padding: 0 22px; background: linear-gradient(90deg, #041c31, #06233a); box-shadow: 9px 0 18px rgba(1,10,23,.7); }
.credit-record-viewport { flex: 1; min-width: 0; overflow: hidden; }
.credit-record-track { display: flex; width: max-content; min-width: 0; padding: 0; animation: credit-record-marquee 38s linear infinite; will-change: transform; }
.credit-record-set { display: flex; align-items: center; gap: 36px; padding-right: 36px; white-space: nowrap; }
.credit-record-set > span { display: inline-flex; align-items: center; gap: 3px; }
.credit-record-ticker:hover .credit-record-track { animation-play-state: paused; }
@keyframes credit-record-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* 融资申请下拉：紧凑的驾驶舱选择器 */
.credit-funding-form .custom-select-trigger { position: relative; min-height: 34px; padding: 0 39px 0 10px; border-color: rgba(36,197,221,.38); border-radius: 6px; background: linear-gradient(135deg, rgba(5,41,62,.96), rgba(4,20,38,.96)); box-shadow: inset 0 1px 0 rgba(180,252,255,.06), 0 4px 12px rgba(0,0,0,.16); }
.credit-funding-form .custom-select-trigger::before { content: ''; position: absolute; top: 7px; bottom: 7px; right: 31px; width: 1px; background: rgba(78,201,218,.18); }
.credit-funding-form .custom-select-caret { position: absolute; top: 50%; right: 8px; width: 20px; height: 20px; margin-top: -10px; border: 1px solid rgba(77,205,222,.23); border-radius: 4px; background: rgba(0,157,185,.12); transition: background .2s ease, border-color .2s ease; }
.credit-funding-form .custom-select-caret::after { content: ''; position: absolute; top: 6px; left: 6px; width: 6px; height: 6px; border-right: 1.5px solid #7ee9f4; border-bottom: 1.5px solid #7ee9f4; transform: rotate(45deg); transition: transform .2s ease; }
.credit-funding-form .custom-select.open .custom-select-caret { transform: none; border-color: rgba(0,242,254,.68); background: rgba(0,201,224,.2); }.credit-funding-form .custom-select.open .custom-select-caret::after { top: 8px; transform: rotate(225deg); }
.credit-funding-form .custom-select-menu { top: calc(100% + 5px); padding: 4px; border-color: rgba(0,242,254,.34); border-radius: 6px; background: linear-gradient(160deg, #0a2840, #061426); box-shadow: 0 14px 30px rgba(0,0,0,.46), inset 0 1px 0 rgba(130,241,255,.08); }
.credit-funding-form .custom-select-option { margin: 0; padding: 8px 9px; border-radius: 4px; color: #a9d7e4; }.credit-funding-form .custom-select-option:hover,.credit-funding-form .custom-select-option.selected { background: linear-gradient(90deg, rgba(0,222,238,.18), rgba(51,139,226,.18)); color: #e9feff; }

/* 评分沿用原页面的阶段性色彩递进：蓝 → 银 → AAA 金 */
.credit-original-score-wrap strong { transition: color .22s ease, text-shadow .22s ease; }
.credit-original-score-wrap strong.credit-score-grade-a { color: #60a5fa; text-shadow: 0 0 18px rgba(96,165,250,.36); }
.credit-original-score-wrap strong.credit-score-grade-aa { color: #d1d5db; text-shadow: 0 0 18px rgba(209,213,219,.3); }
.credit-original-score-wrap strong.credit-score-grade-aaa { color: #fbbf24; text-shadow: 0 0 20px rgba(251,191,36,.42); }

/* 资金申请表单：收敛为统一的单层字段，避免系统控件与高亮菜单抢视觉 */
.credit-funding-form { padding: 12px; border-color: rgba(0,151,197,.18); background: rgba(1,20,39,.5); }
.credit-funding-form input,
.credit-funding-form .custom-select-trigger { min-height: 34px; height: 34px; border: 1px solid rgba(44,170,196,.28); border-radius: 5px; background: rgba(2,16,32,.78); box-shadow: inset 0 1px 2px rgba(0,0,0,.28); }
.credit-funding-form input { padding: 0 10px; color: #c5e8f1; }.credit-funding-form input::placeholder { color: #55788b; }
.credit-funding-form input:focus,.credit-funding-form .custom-select.open .custom-select-trigger { border-color: rgba(0,218,235,.68); box-shadow: 0 0 0 2px rgba(0,242,254,.08); }
.credit-funding-form input[type="number"] { appearance: textfield; -moz-appearance: textfield; }.credit-funding-form input[type="number"]::-webkit-inner-spin-button,.credit-funding-form input[type="number"]::-webkit-outer-spin-button { appearance: none; -webkit-appearance: none; margin: 0; }
.credit-funding-form .custom-select-trigger { padding: 0 29px 0 10px; color: #c5e8f1; font-size: 10px; font-weight: 600; }
.credit-funding-form .custom-select-trigger::before { display: none; }
.credit-funding-form .custom-select-caret { top: 50%; right: 10px; width: 10px; height: 10px; margin-top: -7px; border: 0; border-right: 1.5px solid #5ba8bb; border-bottom: 1.5px solid #5ba8bb; border-radius: 0; background: transparent; transform: rotate(45deg); }
.credit-funding-form .custom-select-caret::after { display: none; }
.credit-funding-form .custom-select.open .custom-select-caret { transform: rotate(225deg); border-color: #7be9f4; background: transparent; }
.credit-funding-form .custom-select-menu { top: calc(100% + 4px); padding: 4px; border: 1px solid rgba(32,174,201,.32); border-radius: 5px; background: #071b2e; box-shadow: 0 12px 24px rgba(0,0,0,.38); }
.credit-funding-form .custom-select-option { position: relative; padding: 8px 9px 8px 12px; border-radius: 3px; color: #92bdca; background: transparent; font-size: 10px; }.credit-funding-form .custom-select-option::before { content: ''; position: absolute; left: 4px; top: 9px; bottom: 9px; width: 2px; border-radius: 2px; background: transparent; }
.credit-funding-form .custom-select-option:hover { background: rgba(0,171,196,.1); color: #dffbff; }.credit-funding-form .custom-select-option.selected { background: rgba(0,171,196,.13); color: #dffbff; }.credit-funding-form .custom-select-option.selected::before { background: #00d9e8; box-shadow: 0 0 7px rgba(0,217,232,.6); }

/* 记录条仅覆盖中、右工作区，保留顶部的层次与留白 */
.credit-record-ticker { width: 70%; min-height: 34px; margin-left: auto; margin-right: 0; align-self: flex-end; border-radius: 5px; }
.credit-record-label { min-height: 34px; padding: 0 14px; font-size: 9px; }.credit-record-track { animation-duration: 34s; }.credit-record-set { gap: 30px; padding-right: 30px; }
@media (max-width: 1240px) { .credit-record-ticker { width: 100%; margin-left: 0; } }

/* 信用风险页：资金测算、画像生成按用户操作显式触发 */
.credit-three-column { grid-template-columns: minmax(280px, .88fr) minmax(500px, 1.44fr) minmax(300px, .92fr); }
.credit-measure-btn,.credit-generate-btn { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 30px; padding: 0 10px; border: 1px solid rgba(0,242,254,.45); border-radius: 5px; color: #bffaff; background: linear-gradient(90deg, rgba(0,176,199,.22), rgba(31,107,191,.25)); font-size: 10px; font-weight: 700; transition: .2s; }
.credit-measure-btn:hover,.credit-generate-btn:hover { color: #fff; border-color: rgba(0,242,254,.85); box-shadow: 0 0 14px rgba(0,242,254,.18); }
.credit-measure-btn svg,.credit-generate-btn svg { width: 13px; height: 13px; }.credit-generate-btn.is-generating svg { animation: credit-button-spin .8s linear infinite; }
.credit-measure-btn.is-measured { color: #6ee7b7; border-color: rgba(74,222,128,.5); background: rgba(16,185,129,.14); }
.credit-gap-results { display: none; flex: 1; grid-template-columns: 1fr; grid-template-rows: minmax(175px, 1.15fr) minmax(160px, .85fr); gap: 14px; min-height: 0; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .28s ease, transform .28s ease, visibility 0s linear .28s; }
.credit-gap-results.is-measured { display: grid; opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.credit-gap-results.is-measured > div { animation: credit-measure-result-in .36s ease-out both; }.credit-gap-results.is-measured > div:nth-child(2) { animation-delay: .1s; }
.credit-gap-primary { position: relative; display: flex; min-height: 0; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; padding: 18px; border: 1px solid rgba(0,242,254,.28); border-radius: 8px; background: radial-gradient(circle at 50% 38%, rgba(0,213,231,.17), transparent 38%), linear-gradient(145deg, rgba(0,80,110,.24), rgba(1,16,34,.72)); text-align: center; }
.credit-gap-primary::before { content: ''; position: absolute; inset: 9px; border: 1px solid rgba(0,242,254,.1); border-radius: 5px; pointer-events: none; }.credit-gap-primary > span { position: relative; color: #81bbca; font-size: 11px; letter-spacing: .08em; }.credit-gap-primary > strong { position: relative; margin: 7px 0 5px; color: #00f2fe; font: 800 clamp(30px, 2.8vw, 44px)/1 'Share Tech Mono', monospace; letter-spacing: -1px; text-shadow: 0 0 22px rgba(0,242,254,.42); }.credit-gap-primary > small { position: relative; color: #78a0af; font-size: 9px; }
.credit-gap-progress { position: relative; width: min(260px, 88%); height: 7px; margin: 15px 0 5px; overflow: hidden; border-radius: 9px; background: rgba(126,158,172,.17); }.credit-gap-progress i { display: block; width: 5.3%; min-width: 15px; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #00e5ef, #facc15); box-shadow: 0 0 10px rgba(0,242,254,.62); }.credit-gap-progress b { position: absolute; top: 12px; left: 50%; color: #70a3b4; font-size: 9px; font-weight: 500; white-space: nowrap; transform: translateX(-50%); }
.credit-gap-primary em { position: relative; display: flex; align-items: center; justify-content: center; gap: 5px; max-width: 310px; margin-top: 20px; color: #72dcb4; font-size: 9px; font-style: normal; line-height: 1.35; }.credit-gap-primary em svg { width: 12px; height: 12px; }
.credit-gap-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; min-height: 0; }.credit-gap-detail-grid > div { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: 12px; border: 1px solid rgba(0,151,197,.2); border-radius: 6px; background: linear-gradient(145deg, rgba(4,33,56,.88), rgba(1,15,32,.66)); }.credit-gap-detail-grid span { color: #749caf; font-size: 9px; }.credit-gap-detail-grid strong { margin-top: 7px; color: #dffbff; font: 700 clamp(13px, 1.2vw, 17px) 'Share Tech Mono', monospace; white-space: nowrap; }.credit-gap-detail-grid .available { border-color: rgba(74,222,128,.24); background: linear-gradient(145deg, rgba(16,105,79,.18), rgba(1,18,35,.72)); }.credit-gap-detail-grid .available strong { color: #4ade80; }.credit-gap-detail-grid .gap { border-color: rgba(0,242,254,.34); background: linear-gradient(145deg, rgba(0,110,137,.22), rgba(1,18,35,.72)); }.credit-gap-detail-grid .gap strong { color: #00f2fe; }
.credit-measure-empty { display: flex; flex: 1; min-height: 150px; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: #719caf; text-align: center; font-size: 11px; }.credit-measure-empty.hidden { display: none; }.credit-measure-empty svg { width: 28px; height: 28px; color: #3da9c2; }
.credit-portrait-actions { justify-content: flex-end; }
@keyframes credit-measure-result-in { from { opacity: 0; transform: translateY(12px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes credit-button-spin { to { transform: rotate(360deg); } }

/* 右栏：融资服务与风险预警按卡片高度分区，消除中间留白 */
.credit-fund-card .credit-funding-form { flex: 0 0 auto; padding: 14px; }
.credit-finance-quick-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin: 11px 0; }.credit-finance-quick-stats > div { min-width: 0; padding: 8px 6px; border: 1px solid rgba(0,173,197,.17); border-radius: 4px; background: rgba(0,72,94,.14); text-align: center; }.credit-finance-quick-stats span { display: block; overflow: hidden; color: #729eaf; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.credit-finance-quick-stats b { display: block; margin-top: 4px; color: #8ff5ff; font: 700 11px 'Share Tech Mono', monospace; white-space: nowrap; }
.credit-fund-card .credit-risk-alerts { display: flex; flex: 1; min-height: 0; flex-direction: column; margin-top: 16px; padding-top: 0; }.credit-fund-card .credit-alert-title { flex: 0 0 auto; margin-bottom: 9px; padding-bottom: 8px; border-bottom: 1px solid rgba(0,242,254,.16); }.credit-fund-card .credit-risk-alerts > div:not(.credit-alert-title) { flex: 1; align-items: center; margin-top: 7px; padding: 11px 10px; border: 1px solid rgba(20,171,163,.12); background: linear-gradient(90deg, rgba(0,79,73,.17), rgba(1,18,35,.26)); font-size: 10px; }.credit-fund-card .credit-risk-alerts > div:not(.credit-alert-title) span { line-height: 1.5; }.credit-fund-card .credit-risk-alerts .notice { border-color: rgba(245,158,11,.15); background: linear-gradient(90deg, rgba(105,69,0,.18), rgba(1,18,35,.26)) !important; }

/* 合同签订左栏：采购需求在上，额度与资金状态紧随其后 */
#decision-contract-view .s3-left .s3-demand-tabs { margin-top: 1px; }
#decision-contract-view .s3-left .s3-demand-list { gap: 6px; }
#decision-contract-view .s3-left .s3-demand-list > div { padding: 8px; }
#decision-contract-view .s3-left .s3-funds { margin-top: 14px; }
#decision-contract-view .s3-left .p6-fund-metrics { grid-template-columns: 1fr; }
#decision-contract-view .s3-left .p6-fund-metric { padding: 11px; }
#decision-contract-view .s3-left .fund-assessment { margin-top: 8px; }

/* 02 供应商推荐与 03 合同签订：统一的低亮度选择器 */
#decision-supplier-view .procure-supplier-layout .custom-select-trigger,
#decision-contract-view .contract-template-row .custom-select-trigger {
    position: relative;
    min-height: 40px;
    height: 40px;
    padding: 0 30px 0 11px;
    border: 1px solid rgba(44,170,196,.28);
    border-radius: 5px;
    background: rgba(2,16,32,.78);
    color: #c5e8f1;
    box-shadow: inset 0 1px 2px rgba(0,0,0,.28);
    font-size: 11px;
    font-weight: 600;
}
#decision-supplier-view .procure-supplier-layout .custom-select-trigger:hover,
#decision-supplier-view .procure-supplier-layout .custom-select.open .custom-select-trigger,
#decision-contract-view .contract-template-row .custom-select-trigger:hover,
#decision-contract-view .contract-template-row .custom-select.open .custom-select-trigger {
    border-color: rgba(0,218,235,.68);
    box-shadow: 0 0 0 2px rgba(0,242,254,.08);
}
#decision-supplier-view .procure-supplier-layout .custom-select-caret,
#decision-contract-view .contract-template-row .custom-select-caret {
    position: absolute;
    top: 50%;
    right: 11px;
    width: 9px;
    height: 9px;
    margin-top: -7px;
    border: 0;
    border-right: 1.5px solid #5ba8bb;
    border-bottom: 1.5px solid #5ba8bb;
    background: transparent;
    transform: rotate(45deg);
}
#decision-supplier-view .procure-supplier-layout .custom-select.open .custom-select-caret,
#decision-contract-view .contract-template-row .custom-select.open .custom-select-caret {
    border-color: #7be9f4;
    transform: rotate(225deg);
}
#decision-supplier-view .procure-supplier-layout .custom-select-menu,
#decision-contract-view .contract-template-row .custom-select-menu {
    z-index: 100;
    top: calc(100% + 4px);
    padding: 4px;
    border: 1px solid rgba(32,174,201,.32);
    border-radius: 5px;
    background: #071b2e;
    box-shadow: 0 12px 24px rgba(0,0,0,.38);
}
#decision-supplier-view .procure-supplier-layout .custom-select-option,
#decision-contract-view .contract-template-row .custom-select-option {
    position: relative;
    margin: 0;
    padding: 9px 10px 9px 13px;
    border-radius: 3px;
    color: #92bdca;
    background: transparent;
    font-size: 11px;
}
#decision-supplier-view .procure-supplier-layout .custom-select-option::before,
#decision-contract-view .contract-template-row .custom-select-option::before {
    content: '';
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: 4px;
    width: 2px;
    border-radius: 2px;
    background: transparent;
}
#decision-supplier-view .procure-supplier-layout .custom-select-option:hover,
#decision-contract-view .contract-template-row .custom-select-option:hover { background: rgba(0,171,196,.1); color: #dffbff; }
#decision-supplier-view .procure-supplier-layout .custom-select-option.selected,
#decision-contract-view .contract-template-row .custom-select-option.selected { background: rgba(0,171,196,.13); color: #dffbff; }
#decision-supplier-view .procure-supplier-layout .custom-select-option.selected::before,
#decision-contract-view .contract-template-row .custom-select-option.selected::before { background: #00d9e8; box-shadow: 0 0 7px rgba(0,217,232,.6); }

/* 融资记录置于“信用风险与画像”导航右侧，内容区不再占位 */
.top-navigation-row { position: relative; min-height: 42px; margin-bottom: 2px; }
.top-navigation-row > nav { margin: 0; }
#credit-record-ticker {
    position: absolute;
    top: 0;
    left: calc(50% + 300px);
    right: 2.5%;
    width: auto;
    min-height: 31px;
    margin: 0;
    align-self: auto;
    border-radius: 4px;
}
#credit-record-ticker .credit-record-label { min-height: 31px; padding: 0 10px; font-size: 8px; }
#credit-record-ticker .credit-record-label svg { width: 11px; height: 11px; }
#credit-record-ticker .credit-record-set { gap: 24px; padding-right: 24px; }
#credit-record-ticker .credit-record-track { font-size: 9px; animation-duration: 30s; }
@media (max-width: 1280px) {
    .top-navigation-row { min-height: 70px; }
    #credit-record-ticker { top: 38px; left: 25%; right: 2.5%; }
}
@media (max-width: 820px) {
    .top-navigation-row { min-height: 104px; }
    #credit-record-ticker { top: 70px; left: 4%; right: 4%; }
}

/* 全屏信用报告：多区域驾驶舱而非居中展板 */
#credit-portrait-overlay { padding: 0 !important; }
.credit-expanded-modal { width: 100vw; max-width: none; height: 100vh; max-height: none; margin: 0; padding: 16px 24px 18px; overflow: hidden; border: 0; border-radius: 0; background: radial-gradient(circle at 50% -20%, rgba(0,125,159,.22), transparent 42%), #020d1d; }
.credit-report-header { display: flex; align-items: center; justify-content: space-between; min-height: 51px; padding-bottom: 10px; border-bottom: 1px solid rgba(0,242,254,.22); }.credit-report-header h3 { margin: 2px 0 0; color: #e4fbff; font-size: 19px; }.credit-report-header h3 svg { width: 20px; height: 20px; margin-right: 7px; color: #00f2fe; vertical-align: -4px; }.credit-report-header-actions { display: flex; align-items: center; gap: 10px; }.credit-report-header-actions > span { display: flex; align-items: center; gap: 5px; color: #7fc4d2; font: 700 10px 'Share Tech Mono', monospace; }.credit-report-header-actions > span svg { width: 13px; height: 13px; color: #4ade80; }
.credit-full-report { display: grid; grid-template-rows: 82px minmax(0, 1fr); height: calc(100% - 62px); gap: 12px; padding-top: 12px; }
.credit-report-kpis { display: grid; grid-template-columns: 1.12fr 1fr 1.2fr 1fr; gap: 10px; }.credit-report-kpis > div { position: relative; padding: 10px 14px; overflow: hidden; border: 1px solid rgba(0,192,216,.2); border-radius: 6px; background: linear-gradient(135deg, rgba(0,73,101,.22), rgba(3,15,30,.72)); }.credit-report-kpis > div::after { content: ''; position: absolute; right: -12px; bottom: -21px; width: 74px; height: 74px; border: 1px solid rgba(0,242,254,.09); border-radius: 50%; }.credit-report-kpis span { position: relative; z-index: 1; display: block; color: #76a5b7; font-size: 10px; }.credit-report-kpis strong { position: relative; z-index: 1; display: inline-block; margin-top: 4px; color: #e3fbff; font: 700 23px/1 'Share Tech Mono', monospace; }.credit-report-kpis strong.gold { color: #fbbf24; }.credit-report-kpis strong.cyan { color: #00e5ef; }.credit-report-kpis strong.green { color: #4ade80; }.credit-report-kpis em { position: relative; z-index: 1; display: block; margin-top: 4px; color: #6d9bae; font-size: 9px; font-style: normal; }
.credit-report-dashboard { display: grid; min-height: 0; grid-template-columns: 1fr 1.32fr 1.03fr; grid-template-rows: minmax(220px, 1.22fr) minmax(140px, .8fr) minmax(175px, .95fr); grid-template-areas: 'score dimensions profile' 'trend trend risk' 'detail detail detail'; gap: 11px; }.credit-report-panel { min-width: 0; min-height: 0; overflow: hidden; padding: 11px 13px; border: 1px solid rgba(0,180,209,.18); border-radius: 6px; background: linear-gradient(145deg, rgba(1,40,66,.38), rgba(2,13,29,.72)); box-shadow: inset 0 1px 0 rgba(139,244,255,.035); }.report-score-panel { grid-area: score; display: flex; flex-direction: column; align-items: center; }.report-dimension-panel { grid-area: dimensions; }.report-profile-panel { grid-area: profile; }.report-trend-panel { grid-area: trend; }.report-risk-panel { grid-area: risk; }.report-detail-panel { grid-area: detail; }
.report-panel-title { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; color: #d7f8ff; font-size: 12px; font-weight: 700; }.report-panel-title small { color: #477e94; font: 700 8px 'Share Tech Mono', monospace; letter-spacing: .08em; }
.report-score-orb { position: relative; display: grid; place-items: center; width: 112px; height: 112px; margin: 2px auto 5px; border-radius: 50%; background: conic-gradient(#fbbf24 0 78.5%, rgba(250,173,20,.12) 78.5% 100%); box-shadow: 0 0 22px rgba(250,173,20,.15); }.report-score-orb::before { content: ''; position: absolute; top: 8px; left: 8px; width: 96px; height: 96px; border-radius: 50%; background: #07192b; }.report-score-orb div { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; }.report-score-orb b { color: #fbbf24; font: 700 30px/1 'Share Tech Mono', monospace; }.report-score-orb span { margin-top: 2px; color: #7598a8; font-size: 8px; }.report-score-grade { display: flex; align-items: baseline; gap: 7px; }.report-score-grade b { color: #f8c83d; font: 700 19px 'Share Tech Mono', monospace; }.report-score-grade span { color: #a9d8e3; font-size: 10px; }.report-score-note { display: flex; align-items: center; gap: 5px; margin-top: auto; color: #6cd9b3; font-size: 9px; }.report-score-note svg { width: 12px; height: 12px; }
.report-dimension-list { display: grid; gap: 8px; margin-top: 13px; }.report-dimension-list > div { display: grid; grid-template-columns: 76px minmax(0,1fr) 30px 20px; gap: 8px; align-items: center; color: #9fc6d4; font-size: 10px; }.report-dimension-list i,.report-dimension-foot i { height: 7px; overflow: hidden; border-radius: 5px; background: rgba(17,63,83,.82); }.report-dimension-list i b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#00d5df,#69e6b4); box-shadow: 0 0 8px rgba(0,229,239,.26); }.report-dimension-list strong { color: #ecfbff; font: 700 11px 'Share Tech Mono', monospace; text-align: right; }.report-dimension-list em { color: #69e6b4; font-size: 9px; font-style: normal; }.report-dimension-foot { display: grid; grid-template-columns: 82px 1fr 78px; gap: 7px; align-items: center; margin-top: 14px; color: #638fa2; font-size: 9px; }.report-dimension-foot i b { display: block; width: 75%; height: 100%; background: #fbbf24; }.report-dimension-foot strong { color: #e5c662; font-size: 9px; }
.report-profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }.report-profile-grid > div { padding: 7px; border-radius: 4px; background: rgba(0,28,49,.46); }.report-profile-grid span { display: block; color: #638fa2; font-size: 9px; }.report-profile-grid b { display: block; margin: 3px 0; color: #d8f8ff; font: 700 14px 'Share Tech Mono', monospace; }.report-profile-grid em { color: #62d8b1; font-size: 8px; font-style: normal; }
.report-trend-panel { display: flex; flex-direction: column; }.report-trend-bars { position: relative; display: flex; flex: 1; align-items: end; gap: 36px; padding: 14px 36px 7px; border-bottom: 1px solid rgba(0,242,254,.15); }.report-trend-bars > div { position: relative; display: flex; flex: 1; max-width: 42px; height: 100%; align-items: flex-end; justify-content: center; }.report-trend-bars i { width: 24px; border-radius: 3px 3px 0 0; background: linear-gradient(#22d3ee, rgba(0,144,171,.36)); box-shadow: 0 0 10px rgba(0,229,239,.2); }.report-trend-bars span { position: absolute; top: -15px; color: #d7faff; font: 700 10px 'Share Tech Mono', monospace; }.report-trend-bars em { position: absolute; bottom: -18px; color: #608da0; font-size: 8px; font-style: normal; }.report-trend-bars > b { position: absolute; top: 18px; right: 14px; padding: 3px 7px; color: #f2d06a; border: 1px solid rgba(250,173,20,.22); border-radius: 10px; background: rgba(250,173,20,.08); font-size: 8px; font-weight: 600; }
.report-risk-lines { display: grid; gap: 7px; }.report-risk-lines > div { display: flex; align-items: center; gap: 6px; padding: 6px; border-radius: 4px; color: #90bdca; font-size: 9px; }.report-risk-lines .safe { background: rgba(12,91,71,.14); }.report-risk-lines .watch { background: rgba(119,83,1,.12); }.report-risk-lines svg { width: 12px; height: 12px; color: #4ade80; }.report-risk-lines .watch svg { color: #fbbf24; }.report-funding-summary { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; align-items: center; margin-top: 10px; color: #779faf; font-size: 9px; }.report-funding-summary i { height: 6px; overflow: hidden; border-radius: 5px; background: #193147; }.report-funding-summary i b { display: block; width: 24%; height: 100%; background: linear-gradient(90deg,#00e5ef,#3b82f6); }.report-funding-summary strong { color: #73e4ec; font: 700 10px 'Share Tech Mono', monospace; }
.report-detail-table { display: grid; grid-template-columns: 1fr; }.report-detail-table > div { display: grid; grid-template-columns: 1.05fr 2.6fr .7fr .45fr; gap: 10px; align-items: center; min-height: 24px; padding: 3px 8px; border-bottom: 1px solid rgba(0,242,254,.08); color: #89b3c1; font-size: 9px; }.report-detail-table .report-detail-head { min-height: 22px; color: #56899d; background: rgba(0,91,117,.16); text-transform: uppercase; font: 700 8px 'Share Tech Mono', monospace; }.report-detail-table b { color: #65dfb1; font-size: 9px; }.report-detail-table b.good { color: #e6c35c; }
@media (max-width: 1050px) { .credit-expanded-modal { overflow: auto; }.credit-full-report { height: auto; min-height: calc(100% - 62px); }.credit-report-dashboard { grid-template-columns: 1fr 1fr; grid-template-rows: auto; grid-template-areas: 'score dimensions' 'profile trend' 'risk risk' 'detail detail'; }.credit-report-panel { min-height: 190px; }.report-detail-panel { min-height: 205px; } }

/* 全屏信用画像：回归说明书的五维霓虹玻璃卡片 */
#credit-portrait-overlay { background: rgba(0, 6, 16, .97) !important; }
.credit-expanded-modal {
    position: relative;
    isolation: isolate;
    padding: 16px 26px 22px;
    background:
        linear-gradient(rgba(0, 182, 210, .028) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 182, 210, .028) 1px, transparent 1px),
        radial-gradient(ellipse at 48% -12%, rgba(0, 184, 220, .22), transparent 48%),
        #020b18;
    background-size: 28px 28px, 28px 28px, auto, auto;
}
.credit-expanded-modal::before,
.credit-expanded-modal::after { content: ''; position: absolute; z-index: -1; width: 22vw; height: 22vw; border-radius: 50%; filter: blur(55px); opacity: .11; pointer-events: none; }
.credit-expanded-modal::before { top: 20%; left: 8%; background: #00e5ef; }
.credit-expanded-modal::after { right: 8%; bottom: -9%; background: #1476df; }
.credit-doc-header { min-height: 58px; padding: 0 0 12px; border-bottom: 1px solid rgba(0, 242, 254, .32); }
.credit-doc-header h3 { font-size: 21px; letter-spacing: .05em; text-shadow: 0 0 16px rgba(0, 229, 239, .36); }
.credit-doc-report { display: grid; grid-template-rows: 136px minmax(0, 1fr); gap: 13px; height: calc(100% - 70px); padding-top: 13px; }
.credit-doc-overview,
.credit-doc-card { position: relative; overflow: hidden; border: 1px solid rgba(0, 211, 235, .27); background: linear-gradient(132deg, rgba(4, 39, 65, .88), rgba(2, 15, 32, .88) 58%, rgba(3, 25, 47, .76)); box-shadow: inset 0 1px rgba(135, 248, 255, .06), 0 0 24px rgba(0, 142, 184, .07); }
.credit-doc-overview::before,
.credit-doc-card::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 36px; background: #00e5ef; box-shadow: 0 0 15px #00e5ef; }
.credit-doc-overview::after,
.credit-doc-card::after { content: ''; position: absolute; top: 0; right: 0; width: 56px; height: 1px; background: linear-gradient(90deg, transparent, rgba(0, 242, 254, .78)); }
.credit-doc-overview { display: grid; grid-template-columns: 1.05fr .9fr 1.1fr; align-items: center; padding: 16px 28px; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 11px), calc(100% - 15px) 100%, 0 100%); }
.credit-doc-overview-copy { display: grid; grid-template-columns: auto auto; align-items: end; column-gap: 10px; }
.credit-doc-overview-copy .decision-kicker { grid-column: 1 / -1; margin-bottom: 3px; }
.credit-doc-score-label { grid-column: 1 / -1; color: #8ebdcc; font-size: 11px; }
.credit-doc-overview-copy strong { color: #ffc12e; font: 700 54px/.92 'Share Tech Mono', monospace; letter-spacing: -.04em; text-shadow: 0 0 15px rgba(251, 191, 36, .34); }
.credit-doc-score-unit { padding-bottom: 5px; color: #7099a9; font: 11px 'Share Tech Mono', monospace; }
.credit-doc-overview-copy p { grid-column: 1 / -1; margin: 5px 0 0; color: #a2d5df; font-size: 12px; }
.credit-doc-overview-copy p b { margin-right: 6px; color: #ffc12e; font: 700 18px 'Share Tech Mono', monospace; }
.credit-doc-overview-radar { position: relative; width: 114px; height: 114px; margin: 0 auto; transform: rotate(45deg); border: 1px solid rgba(0, 229, 239, .23); box-shadow: 0 0 20px rgba(0, 229, 239, .08); }
.credit-doc-overview-radar::before,.credit-doc-overview-radar::after,.credit-doc-overview-radar i { content: ''; position: absolute; inset: 18px; border: 1px solid rgba(0, 229, 239, .18); }.credit-doc-overview-radar::after { inset: 37px; }.credit-doc-overview-radar i:nth-of-type(1) { inset: -1px; transform: rotate(30deg); }.credit-doc-overview-radar i:nth-of-type(2) { inset: -1px; transform: rotate(60deg); }.credit-doc-overview-radar i:nth-of-type(3) { inset: 12px; background: rgba(0, 229, 239, .08); transform: rotate(18deg); }.credit-doc-overview-radar b { position: absolute; inset: 34px; background: rgba(255, 193, 46, .25); border: 1px solid #ffc12e; box-shadow: 0 0 12px rgba(255, 193, 46, .35); }
.credit-doc-overview-side { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }.credit-doc-overview-side div { padding: 11px 9px; border: 1px solid rgba(0, 210, 235, .15); background: rgba(0, 11, 26, .42); }.credit-doc-overview-side span { display: block; margin-bottom: 5px; color: #6594a7; font-size: 10px; }.credit-doc-overview-side b { color: #d7f7ff; font: 700 18px 'Share Tech Mono', monospace; }.credit-doc-overview-side .rise { color: #00e5ef; }.credit-doc-overview-side .good { color: #3ee8a8; }
.credit-doc-dimension-grid { display: grid; grid-template-columns: 1fr 1.25fr 1fr; grid-template-rows: 1fr 1fr; gap: 13px; min-height: 0; }
.credit-doc-card { min-width: 0; min-height: 0; padding: 15px 18px; clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px)); }
.business-card { grid-column: span 2; }
.credit-doc-title { display: flex; align-items: center; justify-content: space-between; padding-bottom: 10px; border-bottom: 1px solid rgba(0, 229, 239, .14); }.credit-doc-title > span { display: flex; align-items: center; gap: 7px; color: #d8faff; font-size: 15px; font-weight: 800; }.credit-doc-title svg { width: 17px; height: 17px; color: #00e5ef; }.credit-doc-title > b { color: #00e5ef; font: 700 22px 'Share Tech Mono', monospace; }.credit-doc-title em { margin-left: 3px; color: #68d9bf; font: 10px sans-serif; font-style: normal; }
.tax-visual,.contract-visual,.finance-visual { display: flex; align-items: center; min-height: calc(100% - 70px); gap: 17px; }.tax-gauge { position: relative; display: grid; place-content: end center; flex: 0 0 112px; width: 112px; height: 58px; overflow: hidden; background: conic-gradient(from 270deg at 50% 100%, #00e5ef 0 47.5%, rgba(0, 229, 239, .14) 47.5% 50%, transparent 50%); border-radius: 112px 112px 0 0; }.tax-gauge::before { content: ''; position: absolute; inset: 11px 11px 0; border-radius: 100px 100px 0 0; background: #061a2c; }.tax-gauge strong,.tax-gauge span { position: relative; z-index: 1; }.tax-gauge strong { color: #00e5ef; font: 700 24px/1 'Share Tech Mono', monospace; }.tax-gauge span { margin-bottom: 6px; color: #6ea3b5; font-size: 8px; }.tax-copy { display: grid; gap: 6px; }.tax-copy b { color: #cef9ff; font-size: 12px; }.tax-copy span { color: #82b4c3; font-size: 10px; }.tax-copy small { color: #53dca6; font-size: 9px; }.credit-doc-tags { display: flex; gap: 6px; }.credit-doc-tags span { padding: 4px 7px; color: #57dcb6; border: 1px solid rgba(65, 222, 174, .2); border-radius: 2px; background: rgba(11, 117, 89, .13); font-size: 9px; }
.business-chart { position: relative; min-height: 112px; margin: 8px 6px 0; overflow: hidden; }.business-gridline { position: absolute; inset: 14px 0 20px; background: repeating-linear-gradient(to bottom, transparent 0 27px, rgba(0, 229, 239, .09) 28px); }.business-chart svg { position: absolute; inset: 0; width: 100%; height: 108px; }.business-chart svg circle { fill: #0ee0ed; filter: drop-shadow(0 0 4px #0ee0ed); }.business-chart-values { position: absolute; right: 2%; bottom: 0; left: 2%; display: flex; justify-content: space-between; }.business-chart-values span { color: #d5fbff; font: 700 11px 'Share Tech Mono', monospace; text-align: center; }.business-chart-values small { display: block; margin-top: 2px; color: #5f90a3; font: 8px sans-serif; }.business-chart > b { position: absolute; top: 7px; right: 2px; padding: 3px 7px; color: #f6c753; border: 1px solid rgba(250, 173, 20, .28); background: rgba(99, 68, 0, .18); font-size: 8px; }.credit-doc-footnote { display: flex; align-items: center; gap: 5px; margin-top: 2px; color: #67e4bd; font-size: 9px; }.credit-doc-footnote svg { width: 12px; height: 12px; }.credit-doc-footnote.warn { color: #efc350; }
.contract-ring { position: relative; display: grid; place-items: center; flex: 0 0 112px; width: 112px; height: 112px; border-radius: 50%; background: conic-gradient(#12ddeb 0 92%, rgba(0, 218, 236, .13) 92% 100%); box-shadow: 0 0 18px rgba(0, 229, 239, .13); }.contract-ring::after { content: ''; position: absolute; inset: 10px; border-radius: 50%; background: #071a2c; box-shadow: inset 0 0 17px rgba(0, 229, 239, .1); }.contract-ring > div { position: relative; z-index: 1; text-align: center; }.contract-ring strong { display: block; color: #00e5ef; font: 700 29px 'Share Tech Mono', monospace; }.contract-ring span { color: #82aab8; font-size: 8px; }.contract-metrics { display: grid; grid-template-columns: 1fr 1fr; flex: 1; gap: 7px; }.contract-metrics div { padding: 8px; border: 1px solid rgba(0, 207, 231, .12); background: rgba(0, 8, 22, .29); }.contract-metrics span { display: block; margin-bottom: 3px; color: #668fa0; font-size: 8px; }.contract-metrics b { color: #d5f7ff; font: 700 12px 'Share Tech Mono', monospace; }
.supply-visual { display: grid; grid-template-columns: 1.25fr .9fr; align-items: center; min-height: calc(100% - 55px); gap: 15px; }.supply-bars { display: flex; align-items: end; justify-content: space-between; height: 110px; padding: 4px 4px 13px; border-bottom: 1px solid rgba(0, 229, 239, .2); }.supply-bars span { position: relative; display: block; width: 22px; min-height: 20px; background: linear-gradient(#1addec, rgba(0, 101, 140, .42)); box-shadow: 0 0 9px rgba(0, 229, 239, .24); }.supply-bars span:nth-child(3) { background: linear-gradient(#ffc436, rgba(120, 80, 0, .42)); box-shadow: 0 0 9px rgba(251, 191, 36, .2); }.supply-bars b { position: absolute; top: -17px; left: 50%; color: #d8f8ff; font: 700 9px 'Share Tech Mono', monospace; transform: translateX(-50%); }.supply-bars em { position: absolute; bottom: -14px; left: 50%; color: #608ea1; font-size: 8px; font-style: normal; white-space: nowrap; transform: translateX(-50%); }.supply-notes { display: grid; gap: 8px; }.supply-notes span { padding-bottom: 6px; color: #83adba; border-bottom: 1px dashed rgba(0, 229, 239, .13); font-size: 9px; }.supply-notes b { display: block; margin-top: 2px; color: #66e1b8; font: 700 12px 'Share Tech Mono', monospace; }
.finance-wave { position: relative; display: grid; place-items: center; flex: 0 0 112px; width: 112px; height: 112px; overflow: hidden; border: 1px solid rgba(0, 229, 239, .44); border-radius: 50%; background: #061b2e; box-shadow: inset 0 0 20px rgba(0, 229, 239, .12), 0 0 16px rgba(0, 229, 239, .1); }.finance-wave::before,.finance-wave::after { content: ''; position: absolute; width: 175px; height: 130px; border-radius: 42%; background: rgba(0, 224, 239, .24); transform: translate(-12px, 40px) rotate(14deg); }.finance-wave::after { background: rgba(22, 108, 220, .28); transform: translate(18px, 51px) rotate(-12deg); }.finance-wave div { position: relative; z-index: 1; text-align: center; }.finance-wave strong { display: block; color: #d8fbff; font: 700 28px 'Share Tech Mono', monospace; }.finance-wave span { color: #77a7b8; font-size: 8px; }.finance-metrics { display: grid; grid-template-columns: 1fr 1fr; flex: 1; gap: 7px; }.finance-metrics div { padding: 8px; border-left: 2px solid rgba(0, 229, 239, .42); background: rgba(0, 40, 60, .24); }.finance-metrics span { display: block; color: #719cad; font-size: 8px; }.finance-metrics b { display: block; margin-top: 3px; color: #9af6ff; font: 700 13px 'Share Tech Mono', monospace; }
@media (max-width: 1120px) { .credit-expanded-modal { overflow: auto; }.credit-doc-report { height: auto; min-height: calc(100% - 70px); }.credit-doc-overview { grid-template-columns: 1fr 120px; }.credit-doc-overview-side { display: none; }.credit-doc-dimension-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }.business-card { grid-column: span 1; }.credit-doc-card { min-height: 230px; } }
@media (max-width: 680px) { .credit-expanded-modal { padding: 13px; }.credit-doc-header { align-items: flex-start; }.credit-doc-header .credit-report-header-actions > span { display: none; }.credit-doc-overview { grid-template-columns: 1fr; min-height: 190px; }.credit-doc-overview-radar { display: none; }.credit-doc-dimension-grid { grid-template-columns: 1fr; }.tax-visual,.contract-visual,.finance-visual { min-height: 145px; }.credit-doc-title > span { font-size: 13px; } }

/* 信用画像打开、关闭与交互反馈 */
#credit-portrait-overlay.is-opening { animation: credit-overlay-in .32s ease-out both; }
#credit-portrait-overlay.is-closing { pointer-events: none; animation: credit-overlay-out .28s ease-in both; }
#credit-portrait-overlay.is-opening .credit-expanded-modal { animation: credit-modal-in .48s cubic-bezier(.18,.85,.24,1) both; }
#credit-portrait-overlay.is-closing .credit-expanded-modal { animation: credit-modal-out .24s ease-in both; }
#credit-portrait-overlay.is-opening .credit-doc-header { animation: credit-header-in .38s .04s both; }
#credit-portrait-overlay.is-opening .credit-doc-overview { animation: credit-panel-in .46s .12s cubic-bezier(.2,.8,.25,1) both; }
#credit-portrait-overlay.is-opening .credit-doc-card { animation: credit-panel-in .44s cubic-bezier(.2,.8,.25,1) both; }
#credit-portrait-overlay.is-opening .tax-card { animation-delay: .2s; }
#credit-portrait-overlay.is-opening .business-card { animation-delay: .27s; }
#credit-portrait-overlay.is-opening .contract-card { animation-delay: .34s; }
#credit-portrait-overlay.is-opening .supply-card { animation-delay: .41s; }
#credit-portrait-overlay.is-opening .finance-card { animation-delay: .48s; }
#credit-portrait-overlay.is-opening .credit-doc-overview-copy strong { animation: credit-score-flare .82s .34s both; }
#credit-portrait-overlay.is-opening .credit-doc-overview-radar { animation: credit-radar-activate .8s .32s cubic-bezier(.15,.78,.18,1) both; }
#credit-portrait-overlay.is-opening .tax-gauge { animation: credit-gauge-in .52s .47s both; }
#credit-portrait-overlay.is-opening .contract-ring { animation: credit-ring-in .6s .58s cubic-bezier(.18,.8,.18,1) both; }
#credit-portrait-overlay.is-opening .business-chart svg { animation: credit-chart-wipe .62s .54s both; }
#credit-portrait-overlay.is-opening .supply-bars span { transform-origin: bottom; animation: credit-bar-rise .48s both; }
#credit-portrait-overlay.is-opening .supply-bars span:nth-child(1) { animation-delay: .58s; }
#credit-portrait-overlay.is-opening .supply-bars span:nth-child(2) { animation-delay: .65s; }
#credit-portrait-overlay.is-opening .supply-bars span:nth-child(3) { animation-delay: .72s; }
#credit-portrait-overlay.is-opening .supply-bars span:nth-child(4) { animation-delay: .79s; }
#credit-portrait-overlay.is-opening .finance-wave::before { animation: credit-wave-one 3.8s .66s ease-in-out infinite; }
#credit-portrait-overlay.is-opening .finance-wave::after { animation: credit-wave-two 4.4s .72s ease-in-out infinite; }

.credit-doc-overview,
.credit-doc-card { transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease, background .28s ease; }
.credit-doc-overview:hover { transform: translateY(-3px); border-color: rgba(0, 242, 254, .56); box-shadow: inset 0 1px rgba(177, 255, 255, .13), 0 12px 30px rgba(0, 150, 195, .16); }
.credit-doc-card:hover { z-index: 2; transform: translateY(-5px) scale(1.008); border-color: rgba(0, 242, 254, .65); background: linear-gradient(132deg, rgba(5, 54, 82, .94), rgba(2, 18, 38, .94) 58%, rgba(3, 37, 64, .84)); box-shadow: inset 0 1px rgba(181, 255, 255, .12), 0 13px 30px rgba(0, 165, 213, .18), 0 0 18px rgba(0, 229, 239, .09); }
.credit-doc-card:hover::before { height: 100%; opacity: .65; transition: height .34s ease; }
.credit-doc-card:hover .credit-doc-title svg { filter: drop-shadow(0 0 6px #00e5ef); transform: scale(1.15) rotate(-7deg); }
.credit-doc-title svg { transition: transform .25s ease, filter .25s ease; }
.credit-doc-overview-radar { transition: transform .42s cubic-bezier(.2,.8,.2,1), filter .3s ease; }
.credit-doc-overview:hover .credit-doc-overview-radar { transform: rotate(90deg) scale(1.08); filter: drop-shadow(0 0 12px rgba(0, 229, 239, .4)); }
.tax-gauge,.contract-ring,.finance-wave { transition: transform .3s ease, box-shadow .3s ease, filter .3s ease; }
.tax-card:hover .tax-gauge,.contract-card:hover .contract-ring,.finance-card:hover .finance-wave { transform: scale(1.08); box-shadow: 0 0 27px rgba(0, 229, 239, .25); }
.business-card:hover .business-chart svg { filter: drop-shadow(0 0 6px rgba(0, 229, 239, .38)); }
.supply-card:hover .supply-bars span { filter: brightness(1.22); box-shadow: 0 0 15px rgba(0, 229, 239, .42); }
.credit-doc-tags span,.contract-metrics div,.finance-metrics div,.supply-notes span,.credit-doc-overview-side div { transition: border-color .25s ease, background .25s ease, transform .25s ease; }
.credit-doc-card:hover .credit-doc-tags span,.credit-doc-card:hover .contract-metrics div,.credit-doc-card:hover .finance-metrics div,.credit-doc-card:hover .supply-notes span { border-color: rgba(0, 229, 239, .32); background: rgba(0, 86, 112, .2); }
.credit-doc-overview:hover .credit-doc-overview-side div { transform: translateY(-2px); border-color: rgba(0, 229, 239, .3); }

@keyframes credit-overlay-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes credit-overlay-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes credit-modal-in { from { opacity: 0; transform: scale(.975) translateY(18px); filter: brightness(.65); } to { opacity: 1; transform: none; filter: none; } }
@keyframes credit-modal-out { to { opacity: 0; transform: scale(.985) translateY(10px); filter: brightness(.7); } }
@keyframes credit-header-in { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
@keyframes credit-panel-in { from { opacity: 0; transform: translateY(15px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes credit-score-flare { 0% { opacity: 0; transform: translateY(14px) scale(.88); color: #00e5ef; } 58% { opacity: 1; color: #fff0aa; text-shadow: 0 0 28px rgba(255, 205, 60, .8); } 100% { transform: none; color: #ffc12e; } }
@keyframes credit-radar-activate { from { opacity: 0; transform: rotate(-28deg) scale(.35); } to { opacity: 1; transform: rotate(45deg) scale(1); } }
@keyframes credit-gauge-in { from { opacity: 0; transform: translateX(-16px) scaleX(.35); } to { opacity: 1; transform: none; } }
@keyframes credit-ring-in { from { opacity: 0; transform: scale(.32) rotate(-85deg); } to { opacity: 1; transform: none; } }
@keyframes credit-chart-wipe { from { clip-path: inset(0 100% 0 0); opacity: .25; } to { clip-path: inset(0 0 0 0); opacity: 1; } }
@keyframes credit-bar-rise { from { opacity: 0; transform: scaleY(.08); } to { opacity: 1; transform: scaleY(1); } }
@keyframes credit-wave-one { 0%,100% { transform: translate(-12px, 40px) rotate(14deg); } 50% { transform: translate(8px, 28px) rotate(-7deg); } }
@keyframes credit-wave-two { 0%,100% { transform: translate(18px, 51px) rotate(-12deg); } 50% { transform: translate(-9px, 37px) rotate(10deg); } }
@media (prefers-reduced-motion: reduce) { #credit-portrait-overlay.is-opening, #credit-portrait-overlay.is-closing, #credit-portrait-overlay.is-opening * { animation: none !important; }.credit-doc-overview,.credit-doc-card,.credit-doc-overview-radar,.tax-gauge,.contract-ring,.finance-wave { transition: none !important; } }

/* 性能版动效：只让 opacity / transform 参与打开与关闭，避免整页重绘 */
#credit-portrait-overlay { backdrop-filter: none !important; }
.credit-expanded-modal::before,
.credit-expanded-modal::after { display: none; }
.credit-doc-overview,
.credit-doc-card { contain: layout paint style; will-change: transform, opacity; }
#credit-portrait-overlay.is-opening .credit-expanded-modal { animation: credit-modal-in-lite .24s ease-out both; }
#credit-portrait-overlay.is-closing .credit-expanded-modal { animation: credit-modal-out-lite .18s ease-in both; }
#credit-portrait-overlay.is-opening .credit-doc-header { animation-duration: .2s; }
#credit-portrait-overlay.is-opening .credit-doc-overview { animation: credit-panel-in-lite .26s .06s ease-out both; }
#credit-portrait-overlay.is-opening .credit-doc-card { animation: credit-panel-in-lite .26s ease-out both; }
#credit-portrait-overlay.is-opening .tax-card { animation-delay: .11s; }
#credit-portrait-overlay.is-opening .business-card { animation-delay: .15s; }
#credit-portrait-overlay.is-opening .contract-card { animation-delay: .19s; }
#credit-portrait-overlay.is-opening .supply-card { animation-delay: .23s; }
#credit-portrait-overlay.is-opening .finance-card { animation-delay: .27s; }
#credit-portrait-overlay.is-opening .credit-doc-overview-copy strong,
#credit-portrait-overlay.is-opening .credit-doc-overview-radar,
#credit-portrait-overlay.is-opening .tax-gauge,
#credit-portrait-overlay.is-opening .contract-ring,
#credit-portrait-overlay.is-opening .business-chart svg,
#credit-portrait-overlay.is-opening .supply-bars span,
#credit-portrait-overlay.is-opening .finance-wave::before,
#credit-portrait-overlay.is-opening .finance-wave::after { animation: none; }
.credit-doc-card:hover { transform: translateY(-3px); box-shadow: inset 0 1px rgba(181, 255, 255, .1), 0 8px 18px rgba(0, 165, 213, .12); }
.credit-doc-card:hover::before { height: 36px; opacity: 1; }
.credit-doc-card:hover .credit-doc-title svg { filter: none; }
.business-card:hover .business-chart svg { filter: none; }
.supply-card:hover .supply-bars span { filter: none; box-shadow: 0 0 9px rgba(0, 229, 239, .24); }
@keyframes credit-modal-in-lite { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes credit-modal-out-lite { to { opacity: 0; transform: translateY(6px); } }
@keyframes credit-panel-in-lite { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

/* 动画结束后不保留合成层；悬停只做即时亮边，避免鼠标反馈滞后 */
.credit-doc-overview,
.credit-doc-card { contain: none; will-change: auto; transition: transform .12s ease-out, border-color .12s linear, box-shadow .12s linear !important; }
#credit-portrait-overlay.is-opening .credit-doc-overview,
#credit-portrait-overlay.is-opening .credit-doc-card { will-change: transform, opacity; }
.credit-doc-overview:hover { transform: translateY(-2px); border-color: rgba(0, 242, 254, .68); box-shadow: inset 0 1px rgba(177, 255, 255, .1), 0 6px 14px rgba(0, 150, 195, .1); }
.credit-doc-card:hover { transform: translateY(-2px); border-color: rgba(0, 242, 254, .75); background: linear-gradient(132deg, rgba(4, 39, 65, .88), rgba(2, 15, 32, .88) 58%, rgba(3, 25, 47, .76)); box-shadow: inset 0 1px rgba(181, 255, 255, .1), 0 6px 14px rgba(0, 165, 213, .1); }
.credit-doc-card:hover::before { transition: none; }
.credit-doc-title svg,
.credit-doc-overview-radar,
.tax-gauge,
.contract-ring,
.finance-wave,
.credit-doc-tags span,
.contract-metrics div,
.finance-metrics div,
.supply-notes span,
.credit-doc-overview-side div { transition-delay: 0s !important; }

/* 经营趋势：折线按宽度拉伸，圆点与标签改用同一组百分比坐标 */
.business-chart svg circle { display: none; }
.business-point { position: absolute; z-index: 2; top: var(--y); left: var(--x); width: 10px; height: 10px; border: 2px solid #8ffaff; border-radius: 50%; background: #00ddea; box-shadow: 0 0 8px rgba(0, 229, 239, .8); transform: translate(-50%, -50%); pointer-events: none; }
.business-chart-values { top: auto; right: auto; bottom: 0; left: 0; width: 100%; display: block; }
.business-chart-values span { position: absolute; bottom: 0; left: var(--x); min-width: 34px; transform: translateX(-50%); }
.business-chart-values span:nth-child(1) { --x:4.09%; }.business-chart-values span:nth-child(2) { --x:32.95%; }.business-chart-values span:nth-child(3) { --x:63.64%; }.business-chart-values span:nth-child(4) { --x:94.09%; }

/* 各维度的细节同样有轻量出场；全部只动画 opacity 与 transform */
#credit-portrait-overlay.is-opening .credit-doc-overview-side,
#credit-portrait-overlay.is-opening .tax-copy,
#credit-portrait-overlay.is-opening .credit-doc-tags,
#credit-portrait-overlay.is-opening .contract-metrics,
#credit-portrait-overlay.is-opening .supply-visual,
#credit-portrait-overlay.is-opening .finance-metrics,
#credit-portrait-overlay.is-opening .credit-doc-footnote { animation: credit-detail-in .2s ease-out both; }
#credit-portrait-overlay.is-opening .credit-doc-overview-side { animation-delay: .17s; }
#credit-portrait-overlay.is-opening .tax-copy,#credit-portrait-overlay.is-opening .credit-doc-tags { animation-delay: .26s; }
#credit-portrait-overlay.is-opening .contract-metrics { animation-delay: .31s; }
#credit-portrait-overlay.is-opening .supply-visual { animation-delay: .35s; }
#credit-portrait-overlay.is-opening .finance-metrics { animation-delay: .4s; }
#credit-portrait-overlay.is-opening .credit-doc-footnote { animation-delay: .42s; }
#credit-portrait-overlay.is-opening .business-point { animation: credit-point-in .18s ease-out both; }
#credit-portrait-overlay.is-opening .business-point:nth-of-type(1) { animation-delay: .27s; }
#credit-portrait-overlay.is-opening .business-point:nth-of-type(2) { animation-delay: .31s; }
#credit-portrait-overlay.is-opening .business-point:nth-of-type(3) { animation-delay: .35s; }
#credit-portrait-overlay.is-opening .business-point:nth-of-type(4) { animation-delay: .39s; }
@keyframes credit-detail-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes credit-point-in { from { opacity: 0; transform: translate(-50%, -50%) scale(.4); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }

/* 常驻呼吸光效：仅透明度与小范围位移，保持低开销 */
.credit-doc-overview::before,
.credit-doc-card::before { animation: credit-edge-breathe 2.8s ease-in-out infinite; }
.tax-card::before { animation-delay: .15s; }.business-card::before { animation-delay: .45s; }.contract-card::before { animation-delay: .75s; }.supply-card::before { animation-delay: 1.05s; }.finance-card::before { animation-delay: 1.35s; }
.business-point { animation: credit-point-breathe 2.4s ease-in-out infinite; }
.business-point:nth-of-type(2) { animation-delay: .28s; }.business-point:nth-of-type(3) { animation-delay: .56s; }.business-point:nth-of-type(4) { animation-delay: .84s; }
.tax-gauge strong,.tax-gauge span { animation: credit-health-float 2.6s ease-in-out infinite; }
.finance-wave > div { animation: credit-health-float 2.9s .35s ease-in-out infinite; }
.tax-gauge span { animation-delay: .04s; }
.contract-ring { animation: credit-ring-breathe 3.2s ease-in-out infinite; }
@keyframes credit-edge-breathe { 0%,100% { opacity: .55; } 50% { opacity: 1; } }
@keyframes credit-point-breathe { 0%,100% { opacity: .72; } 50% { opacity: 1; } }
@keyframes credit-health-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes credit-ring-breathe { 0%,100% { opacity: .86; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .credit-doc-overview::before,.credit-doc-card::before,.business-point,.tax-gauge strong,.tax-gauge span,.finance-wave > div,.contract-ring { animation: none !important; } }

/* 财务健康度：保持文字稳定，改为圆形容器内的双层液面流动 */
.tax-gauge strong,.tax-gauge span,.finance-wave > div { animation: none; }
.finance-wave::before,.finance-wave::after { will-change: transform; }
.finance-wave::before { animation: credit-finance-water-front 4.8s linear infinite; }
.finance-wave::after { animation: credit-finance-water-back 6.4s linear infinite; }
@keyframes credit-finance-water-front { 0%,100% { transform: translate(-24px, 42px) rotate(12deg); } 50% { transform: translate(8px, 33px) rotate(18deg); } }
@keyframes credit-finance-water-back { 0%,100% { transform: translate(22px, 54px) rotate(-13deg); } 50% { transform: translate(-12px, 45px) rotate(-7deg); } }
@media (prefers-reduced-motion: reduce) { .finance-wave::before,.finance-wave::after { animation: none !important; } }

/* 数据运行层：用局部流光、轨道点与律动补足动态感 */
.credit-doc-overview-radar i:nth-of-type(3) { animation: credit-radar-scan 7s linear infinite; }
.business-chart::after { content: ''; position: absolute; z-index: 1; top: 17px; left: 0; width: 42%; height: 1px; pointer-events: none; background: linear-gradient(90deg, transparent, rgba(148, 253, 255, .82), transparent); animation: credit-chart-scan 4.8s ease-in-out infinite; }
.supply-bars span { animation: credit-supply-pulse 3.6s ease-in-out infinite; }
.supply-bars span:nth-child(2) { animation-delay: .45s; }.supply-bars span:nth-child(3) { animation-delay: .9s; }.supply-bars span:nth-child(4) { animation-delay: 1.35s; }
.contract-ring::before { content: ''; position: absolute; z-index: 3; top: 50%; left: 50%; width: 5px; height: 5px; border-radius: 50%; background: #b8ffff; box-shadow: 0 0 8px #00e5ef; animation: credit-contract-orbit 6s linear infinite; }
@keyframes credit-radar-scan { from { transform: rotate(18deg); } to { transform: rotate(378deg); } }
@keyframes credit-chart-scan { 0%,16% { opacity: 0; transform: translateX(-115%); } 35%,65% { opacity: .82; } 84%,100% { opacity: 0; transform: translateX(270%); } }
@keyframes credit-supply-pulse { 0%,100% { opacity: .78; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }
@keyframes credit-contract-orbit { from { transform: rotate(0deg) translateY(-51px); } to { transform: rotate(360deg) translateY(-51px); } }
@media (prefers-reduced-motion: reduce) { .credit-doc-overview-radar i:nth-of-type(3),.business-chart::after,.supply-bars span,.contract-ring::before { animation: none !important; } }

/* 实时成本利润：标题右侧的实际/预测图例 */
.cost-trend-legend { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; color: #88a0b0; font-size: 9px; white-space: nowrap; }
.cost-trend-legend span { display: inline-flex; align-items: center; gap: 3px; }.cost-trend-legend i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; }.cost-trend-legend .actual { border: 1px solid #7000ff; background: #7000ff; box-shadow: 0 0 5px rgba(112,0,255,.65); }.cost-trend-legend .forecast { border: 1px solid #00f2fe; background: #00f2fe; box-shadow: 0 0 5px rgba(0,242,254,.55); }

/* 实时成本利润：参考经营数据大屏的四象限布局 */
.cost-board-shell { position: relative; flex: 1; min-height: 0; padding: 12px 16px 16px; overflow: hidden; }
.cost-board-grid { display: grid; grid-template-columns: minmax(0, .98fr) minmax(0, 1.02fr); grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; width: 100%; height: 100%; min-height: 0; }
.chart-import-pending .cost-board-card { opacity: 0; transform: translateY(12px) scale(.985); pointer-events: none; }
.chart-imported .cost-board-card { animation: cost-chart-card-in .48s cubic-bezier(.2,.8,.2,1) both; }
.chart-imported .cost-board-card:nth-child(2) { animation-delay: .09s; }.chart-imported .cost-board-card:nth-child(3) { animation-delay: .18s; }.chart-imported .cost-board-card:nth-child(4) { animation-delay: .27s; }
.cost-chart-import-placeholder,.cost-chart-import-loader { position: absolute; z-index: 5; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; text-align: center; pointer-events: none; }
.cost-chart-import-placeholder.hidden,.cost-chart-import-loader.hidden { display: none; }
.cost-chart-import-placeholder span { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(0,242,254,.36); border-radius: 50%; color: #5eeef5; background: rgba(0,75,98,.15); box-shadow: 0 0 22px rgba(0,242,254,.1); }.cost-chart-import-placeholder span svg { width: 19px; height: 19px; }.cost-chart-import-placeholder b,.cost-chart-import-loader b { color: #dffcff; font-size: 14px; letter-spacing: .08em; }.cost-chart-import-placeholder small,.cost-chart-import-loader small { color: #6e9dac; font-size: 10px; }
.cost-chart-loader-orbit { position: relative; width: 50px; height: 50px; border: 1px solid rgba(0,242,254,.2); border-radius: 50%; animation: cost-chart-loader-spin 1.05s linear infinite; }.cost-chart-loader-orbit::before { content: ''; position: absolute; inset: 7px; border: 1px dashed rgba(79,172,254,.6); border-radius: 50%; }.cost-chart-loader-orbit i { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: #00f2fe; box-shadow: 0 0 10px #00f2fe; }.cost-chart-loader-orbit i:nth-child(1) { top: -3px; left: 50%; }.cost-chart-loader-orbit i:nth-child(2) { right: 2px; bottom: 8px; background: #4facfe; box-shadow: 0 0 10px #4facfe; }.cost-chart-loader-orbit i:nth-child(3) { left: 3px; bottom: 8px; background: #facc15; box-shadow: 0 0 10px #facc15; }
#chart-import-trigger.is-importing { opacity: .68; cursor: wait; }#chart-import-trigger.is-imported { border-color: rgba(52,211,153,.5); color: #7ef0c4; background: rgba(16,185,129,.11); cursor: default; }
@keyframes cost-chart-loader-spin { to { transform: rotate(360deg); } }@keyframes cost-chart-card-in { from { opacity: 0; transform: translateY(12px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
.cost-board-card { position: relative; display: flex; min-width: 0; min-height: 0; flex-direction: column; padding: 0; overflow: hidden; border-color: rgba(0, 242, 254, .2); border-radius: 0; background: var(--card-bg); box-shadow: inset 0 0 20px rgba(0, 242, 254, .05); }
.cost-board-card::before { content: ''; position: absolute; z-index: 2; top: -1px; left: -1px; width: 10px; height: 10px; border: 2px solid var(--primary-cyan); border-right: 0; border-bottom: 0; background: transparent; box-shadow: none; filter: drop-shadow(0 0 5px var(--primary-cyan)); }
.cost-board-card::after { content: ''; position: absolute; z-index: 2; bottom: -1px; right: -1px; top: auto; width: 10px; height: 10px; border: 2px solid var(--primary-cyan); border-left: 0; border-top: 0; background: transparent; box-shadow: none; transform: none; filter: drop-shadow(0 0 5px var(--primary-cyan)); }
.cost-board-heading { position: relative; z-index: 3; flex: 0 0 auto; min-height: 68px; padding: 11px 17px 8px; border-bottom: 1px solid rgba(0, 242, 254, .13); background: linear-gradient(90deg, rgba(0, 242, 254, .06), transparent 68%); }
.cost-board-heading::after { content: ''; position: absolute; bottom: -1px; left: 17px; width: 88px; height: 1px; background: linear-gradient(90deg, var(--primary-cyan), transparent); box-shadow: 0 0 8px rgba(0, 242, 254, .52); }
.cost-board-heading > span, .cost-board-heading-row > div > span { display: block; margin-bottom: 6px; color: #60a5fa; font: 700 9px 'Share Tech Mono', monospace; letter-spacing: .11em; text-transform: uppercase; }
.cost-board-heading h3 { display: flex; align-items: center; gap: 7px; margin: 0; color: #e0f2ff; font-size: 15px; font-weight: 800; }
.cost-board-heading h3 svg { width: 15px; height: 15px; color: var(--primary-cyan); filter: drop-shadow(0 0 5px rgba(0, 242, 254, .55)); }
.cost-board-heading-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.cost-board-heading-row .cost-trend-legend { display: none; }
.cost-board-chart { position: relative; z-index: 1; flex: 1; min-width: 0; min-height: 0; padding: 3px 6px 8px; }
.cost-board-cost { grid-column: 1; grid-row: 1; }.cost-board-forecast { grid-column: 2; grid-row: 1; }.cost-board-detail { grid-column: 1; grid-row: 2; }.cost-board-profit { grid-column: 2; grid-row: 2; }
.cost-kpi-cache { display: none; }
@media (max-width: 920px) { .cost-board-shell { overflow-y: auto; }.cost-board-grid { grid-template-columns: 1fr; grid-template-rows: repeat(4, minmax(270px, 1fr)); height: auto; }.cost-board-cost,.cost-board-forecast,.cost-board-detail,.cost-board-profit { grid-column: auto; grid-row: auto; } }

/* ===== 方案决策：三栏布局常驻，内容由“空占位”切换为实数据（生成方案 → 出矩阵；点选方案 → 出详情） ===== */
#decision-scheme-view .decision-pending { flex: 1; margin-top: 12px; text-align: center; }
#decision-scheme-view .decision-pending strong { font-size: 14px; }
#decision-scheme-view .decision-pending p { max-width: 300px; line-height: 1.7; }

/* 初始：中栏矩阵正文、右栏详情正文隐藏，卡片内仅标题 + 占位提示 */
#decision-scheme-view .decision-matrix-wrap,
#decision-scheme-view .decision-matrix-footer { display: none; }
#decision-scheme-view .decision-recommend-card > :not(.decision-card-heading):not(.decision-pending) { display: none; }

/* 点击“生成方案”后：中栏由占位切换为方案对比矩阵 */
#decision-scheme-view.state-matrix #decision-matrix-pending { display: none; }
#decision-scheme-view.state-matrix .decision-matrix-wrap { display: flex; }
#decision-scheme-view.state-matrix .decision-matrix-footer { display: flex; }

/* 点选某方案（如 B）后：右栏由占位切换为推荐方案详情 */
#decision-scheme-view.state-detail #decision-recommend-pending { display: none; }
#decision-scheme-view.state-detail .decision-recommend-card > .decision-score-block { display: grid; }
#decision-scheme-view.state-detail .decision-recommend-card > .decision-selected-title { display: flex; }
#decision-scheme-view.state-detail .decision-recommend-card > .decision-selected-detail { display: block; }
#decision-scheme-view.state-detail .decision-recommend-card > .decision-impact-grid { display: grid; }
#decision-scheme-view.state-detail .decision-recommend-card > .decision-action-buttons { display: grid; }

/* 方案决策三栏：鼠标悬停卡片期间保持摆正（方便拖拽滑杆/点击按钮），移出后才恢复 3D 倾斜 */
#decision-scheme-view .decision-simulator-card.rotate-y-left {
    transform: rotateY(11deg) scale(.97) translateX(5px) translateZ(-24px);
    transform-origin: right center;
    box-shadow: -12px 0 34px rgba(0, 0, 0, .42);
}
#decision-scheme-view .decision-recommend-card.rotate-y-right {
    transform: rotateY(-11deg) scale(.97) translateX(-5px) translateZ(-24px);
    transform-origin: left center;
    box-shadow: 12px 0 34px rgba(0, 0, 0, .42);
}
#decision-scheme-view .decision-matrix-card.center-panel { transform: scale(.99) translateZ(18px); }

#decision-scheme-view .decision-simulator-card.rotate-y-left:hover,
#decision-scheme-view .decision-recommend-card.rotate-y-right:hover,
#decision-scheme-view .decision-matrix-card.center-panel:hover { transform: none; box-shadow: 0 16px 34px rgba(0, 0, 0, .3); }

/* 方案矩阵：表头选中态（突出所选方案列，优先于“推荐”提示底色） */
.decision-matrix-table thead th.selected { color: #fff; background: rgba(0, 242, 254, .22); box-shadow: inset 0 -2px rgba(0, 242, 254, .8); text-shadow: 0 0 8px rgba(0, 242, 254, .7); }
.decision-matrix-table thead th.selected small { color: #bdf6ff; }
