* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --primary-blue: #1e90ff;
    --secondary-blue: #4169e1;
    --accent-cyan: #00ced1;
    --dark-bg: #0a0f1b;
    --panel-bg: rgba(15, 25, 45, 0.85);
    --border-color: rgba(30, 144, 255, 0.3);
    --text-primary: #ffffff;
    --text-secondary: rgba(255, 255, 255, 0.7);
    --success: #52c41a;
    --warning: #faad14;
    --danger: #ff4d4f;
    --info: #1890ff;
}

body {
    font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
    background: var(--dark-bg);
    color: var(--text-primary);
    overflow: hidden;
    height: 100vh;
    margin: 0;
}

/* Ã¨Æ’Å’Ã¦â„¢Â¯Ã¥Å Â¨Ã§â€Â» */
.bg-animation {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 0;
}

.grid-lines {
    position: absolute;
    width: 100%;
    height: 100%;
    background-image: 
        linear-gradient(rgba(30, 144, 255, 0.1) 1px, transparent 1px),
        linear-gradient(90deg, rgba(30, 144, 255, 0.1) 1px, transparent 1px);
    background-size: 50px 50px;
    animation: gridMove 20s linear infinite;
}

@keyframes gridMove {
    0% { transform: translate(0, 0); }
    100% { transform: translate(50px, 50px); }
}

.floating-particles {
    position: absolute;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 20% 80%, rgba(30, 144, 255, 0.2) 0%, transparent 50%),
                radial-gradient(circle at 80% 20%, rgba(0, 206, 209, 0.2) 0%, transparent 50%);
    animation: float 15s ease-in-out infinite;
}

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-20px); }
}

/* ========== Ã¦â€“Â°Ã¥Â¢Å¾Ã§Â§â€˜Ã¦Å â‚¬Ã§â€°Â¹Ã¦â€¢Ë†Ã¦ Â·Ã¥Â¼Â ========== */

/* Ã§Â§â€˜Ã¦Å â‚¬Ã§â€°Â¹Ã¦â€¢Ë†Ã¥Â®Â¹Ã¥â„¢Â¨ */
.tech-effects {
    position: absolute;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

/* Ã§Â¥Å¾Ã§Â»ÂÃ§Â½â€˜Ã§Â»Å“canvas */
#neuralNetwork {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.3;
}

/* Ã¦â€°Â«Ã¦ÂÂÃ§ÂºÂ¿Ã¦â€¢Ë†Ã¦Å¾Å“ */
.scan-line {
    position: absolute;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, 
        transparent, 
        rgba(0, 206, 209, 0.8), 
        transparent);
    top: 0;
    animation: scanDown 8s linear infinite;
    box-shadow: 0 0 10px rgba(0, 206, 209, 0.5);
}

@keyframes scanDown {
    0% { top: -2px; }
    100% { top: 100%; }
}

/* Ã¦â€¢Â°Ã¦ÂÂ®Ã¦ÂµÂÃ§Â²â€™Ã¥Â­ÂÃ§Â³Â»Ã§Â»Å¸ */
.particle-system {
    position: absolute;
    width: 100%;
    height: 100%;
}

.particle {
    position: absolute;
    width: 3px;
    height: 3px;
    background: radial-gradient(circle, 
        rgba(30, 144, 255, 1) 0%, 
        transparent 70%);
    border-radius: 50%;
    filter: blur(0.5px);
}

.particle:nth-child(1) {
    top: 10%;
    left: 5%;
    animation: particleFloat1 15s linear infinite;
}

.particle:nth-child(2) {
    top: 20%;
    right: 10%;
    animation: particleFloat2 18s linear infinite;
}

.particle:nth-child(3) {
    bottom: 30%;
    left: 8%;
    animation: particleFloat3 20s linear infinite;
}

.particle:nth-child(4) {
    top: 40%;
    right: 5%;
    animation: particleFloat4 16s linear infinite;
}

.particle:nth-child(5) {
    bottom: 15%;
    right: 12%;
    animation: particleFloat5 22s linear infinite;
}

.particle:nth-child(6) {
    top: 60%;
    left: 3%;
    animation: particleFloat6 19s linear infinite;
}

.particle:nth-child(7) {
    bottom: 40%;
    right: 7%;
    animation: particleFloat7 17s linear infinite;
}

.particle:nth-child(8) {
    top: 80%;
    left: 10%;
    animation: particleFloat8 21s linear infinite;
}

@keyframes particleFloat1 {
    0% { transform: translate(0, 0); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translate(300px, -200px); opacity: 0; }
}

@keyframes particleFloat2 {
    0% { transform: translate(0, 0); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translate(-250px, 300px); opacity: 0; }
}

@keyframes particleFloat3 {
    0% { transform: translate(0, 0); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translate(200px, -250px); opacity: 0; }
}

@keyframes particleFloat4 {
    0% { transform: translate(0, 0); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translate(-300px, -150px); opacity: 0; }
}

@keyframes particleFloat5 {
    0% { transform: translate(0, 0); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translate(-200px, -300px); opacity: 0; }
}

@keyframes particleFloat6 {
    0% { transform: translate(0, 0); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translate(350px, 100px); opacity: 0; }
}

@keyframes particleFloat7 {
    0% { transform: translate(0, 0); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translate(-180px, 200px); opacity: 0; }
}

@keyframes particleFloat8 {
    0% { transform: translate(0, 0); opacity: 0; }
    10% { opacity: 1; }
    90% { opacity: 1; }
    100% { transform: translate(250px, -180px); opacity: 0; }
}

/* Ã¥â€¦Â¨Ã¦ÂÂ¯Ã¦Å â€¢Ã¥Â½Â±Ã§Â½â€˜Ã¦ Â¼ */
.hologram-grid {
    position: absolute;
    width: 100%;
    height: 100%;
    perspective: 1000px;
}

.holo-line {
    position: absolute;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgba(0, 206, 209, 0.1) 50%, 
        transparent 100%);
}

.holo-line.horizontal {
    width: 100%;
    height: 1px;
    left: 0;
}

.holo-line.horizontal:nth-child(1) {
    top: 25%;
    animation: holo-h1 10s ease-in-out infinite;
}

.holo-line.horizontal:nth-child(2) {
    top: 50%;
    animation: holo-h2 12s ease-in-out infinite;
}

.holo-line.horizontal:nth-child(3) {
    top: 75%;
    animation: holo-h3 14s ease-in-out infinite;
}

.holo-line.vertical {
    height: 100%;
    width: 1px;
    top: 0;
}

.holo-line.vertical:nth-child(4) {
    left: 25%;
    animation: holo-v1 11s ease-in-out infinite;
}

.holo-line.vertical:nth-child(5) {
    left: 50%;
    animation: holo-v2 13s ease-in-out infinite;
}

.holo-line.vertical:nth-child(6) {
    left: 75%;
    animation: holo-v3 15s ease-in-out infinite;
}

@keyframes holo-h1 {
    0%, 100% { opacity: 0.1; transform: translateZ(0); }
    50% { opacity: 0.3; transform: translateZ(50px); }
}

@keyframes holo-h2 {
    0%, 100% { opacity: 0.1; transform: translateZ(0); }
    50% { opacity: 0.3; transform: translateZ(-50px); }
}

@keyframes holo-h3 {
    0%, 100% { opacity: 0.1; transform: translateZ(0); }
    50% { opacity: 0.3; transform: translateZ(30px); }
}

@keyframes holo-v1 {
    0%, 100% { opacity: 0.1; transform: translateZ(0); }
    50% { opacity: 0.3; transform: translateZ(-30px); }
}

@keyframes holo-v2 {
    0%, 100% { opacity: 0.1; transform: translateZ(0); }
    50% { opacity: 0.3; transform: translateZ(40px); }
}

@keyframes holo-v3 {
    0%, 100% { opacity: 0.1; transform: translateZ(0); }
    50% { opacity: 0.3; transform: translateZ(-40px); }
}

/* Ã©â€ºÂ·Ã¨Â¾Â¾Ã¦â€°Â«Ã¦ÂÂÃ¦â€¢Ë†Ã¦Å¾Å“ */
.radar-container {
    position: absolute;
    top: 10%;
    right: 5%;
    width: 150px;
    height: 150px;
    opacity: 0.5;
}

.radar-container::before,
.radar-container::after {
    content: '';
    position: absolute;
    inset: 0;
    border: 1px solid rgba(30, 144, 255, 0.2);
    border-radius: 50%;
}

.radar-container::after {
    inset: 20%;
    border-color: rgba(30, 144, 255, 0.15);
}

.radar-sweep {
    position: absolute;
    inset: 0;
    background: conic-gradient(
        from 0deg,
        transparent 0deg,
        rgba(0, 206, 209, 0.4) 30deg,
        transparent 60deg
    );
    border-radius: 50%;
    animation: radarSweep 4s linear infinite;
}

@keyframes radarSweep {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.radar-dot {
    position: absolute;
    width: 4px;
    height: 4px;
    background: rgba(0, 206, 209, 0.8);
    border-radius: 50%;
    box-shadow: 0 0 10px rgba(0, 206, 209, 0.8);
}

.radar-dot:nth-child(2) {
    top: 30%;
    left: 40%;
    animation: radarBlink 2s ease-in-out infinite;
}

.radar-dot:nth-child(3) {
    top: 60%;
    left: 70%;
    animation: radarBlink 2s ease-in-out infinite 0.5s;
}

.radar-dot:nth-child(4) {
    top: 45%;
    left: 25%;
    animation: radarBlink 2s ease-in-out infinite 1s;
}

@keyframes radarBlink {
    0%, 100% { opacity: 0.2; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.5); }
}

/* Ã¤ÂºÅ’Ã¨Â¿â€ºÃ¥Ë†Â¶Ã¤Â»Â£Ã§ ÂÃ©â€ºÂ¨ */
.code-rain {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.1;
}

.code-column {
    position: absolute;
    font-family: 'Courier New', monospace;
    font-size: 10px;
    color: var(--primary-blue);
    line-height: 10px;
    animation: codefall linear infinite;
}

.code-column::before {
    content: '01101\A00110\A11010\A01011\A10101\A01101\A11001\A00111';
    white-space: pre;
}

.code-column:nth-child(1) {
    left: 10%;
    animation-duration: 10s;
}

.code-column:nth-child(2) {
    left: 25%;
    animation-duration: 12s;
    animation-delay: -2s;
}

.code-column:nth-child(3) {
    left: 40%;
    animation-duration: 9s;
    animation-delay: -5s;
}

.code-column:nth-child(4) {
    left: 70%;
    animation-duration: 11s;
    animation-delay: -3s;
}

.code-column:nth-child(5) {
    left: 85%;
    animation-duration: 13s;
    animation-delay: -7s;
}

@keyframes codefall {
    0% { transform: translateY(-100%); }
    100% { transform: translateY(100vh); }
}

/* Ã¦Å“ÂºÃ¥â„¢Â¨Ã¤ÂºÂºÃ¨Â½Â®Ã¥Â»â€œÃ¨Â£â€¦Ã©Â¥Â° */
.robot-silhouette {
    position: absolute;
    width: 80px;
    height: 100px;
    opacity: 0.2;
}

.left-robot {
    bottom: 20%;
    left: 2%;
    animation: robotFloat1 8s ease-in-out infinite;
}

.right-robot {
    top: 15%;
    right: 2%;
    animation: robotFloat2 10s ease-in-out infinite;
}

@keyframes robotFloat1 {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-10px) rotate(5deg); }
}

@keyframes robotFloat2 {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(10px) rotate(-5deg); }
}

/* Ã§â€ÂµÃ¨Â·Â¯Ã¦ÂÂ¿Ã§ÂºÂ¹Ã§Ââ€  */
.circuit-pattern {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 200px;
    opacity: 0.05;
    background-image: 
        repeating-linear-gradient(
            0deg,
            transparent,
            transparent 10px,
            rgba(30, 144, 255, 0.1) 10px,
            rgba(30, 144, 255, 0.1) 11px
        ),
        repeating-linear-gradient(
            90deg,
            transparent,
            transparent 10px,
            rgba(30, 144, 255, 0.1) 10px,
            rgba(30, 144, 255, 0.1) 11px
        );
    background-size: 50px 50px;
    mask-image: linear-gradient(to top, transparent, black);
    -webkit-mask-image: linear-gradient(to top, transparent, black);
}

/* Ã¦â€¢Â°Ã¦ÂÂ®Ã¤Â¼ Ã¨Â¾â€œÃ¨Â½Â¨Ã©Ââ€œ */
.data-orbit {
    position: absolute;
    bottom: 10%;
    left: 5%;
    width: 200px;
    height: 200px;
    opacity: 0.3;
}

.orbit-ring {
    position: absolute;
    inset: 0;
    border: 1px solid rgba(30, 144, 255, 0.2);
    border-radius: 50%;
    transform: rotateX(70deg);
}

.orbit-dot {
    position: absolute;
    width: 6px;
    height: 6px;
    background: radial-gradient(circle, rgba(0, 206, 209, 1), transparent);
    border-radius: 50%;
    top: 50%;
    left: 50%;
    margin: -3px 0 0 -3px;
}

.orbit-dot:nth-child(2) {
    animation: orbit1 6s linear infinite;
}

.orbit-dot:nth-child(3) {
    animation: orbit1 6s linear infinite -2s;
}

.orbit-dot:nth-child(4) {
    animation: orbit1 6s linear infinite -4s;
}

@keyframes orbit1 {
    0% {
        transform: rotate(0deg) translateX(100px) rotate(0deg);
    }
    100% {
        transform: rotate(360deg) translateX(100px) rotate(-360deg);
    }
}

/* ========== Ã¥Å½Å¸Ã¦Å“â€°Ã¦ Â·Ã¥Â¼ÂÃ§Â»Â§Ã§Â»Â­ ========== */

/* Ã¤Â¸Â»Ã¥Â®Â¹Ã¥â„¢Â¨ */
.dashboard-container {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Ã©Â¡Â¶Ã©Æ’Â¨Ã¥Â¯Â¼Ã¨Ë†ÂªÃ¦ Â */
.header-bar {
    height: 60px;
    background: linear-gradient(90deg, rgba(15, 25, 45, 0.95), rgba(20, 35, 60, 0.95));
    border-bottom: 2px solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 30px;
    backdrop-filter: blur(10px);
    flex-shrink: 0;
}

.header-left, .header-right {
    flex: 0 0 auto;
}

.header-center {
    flex: 1;
    text-align: center;
}

.time-display {
    display: flex;
    flex-direction: column;
}

.time {
    font-size: 18px;
    font-weight: bold;
    color: var(--primary-blue);
    font-variant-numeric: tabular-nums;
}

.date {
    font-size: 12px;
    color: var(--text-secondary);
}

.main-title {
    font-size: 28px;
    font-weight: bold;
    background: linear-gradient(90deg, var(--primary-blue), var(--accent-cyan));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: 0 0 30px rgba(30, 144, 255, 0.5);
    letter-spacing: 4px;
}

.update-time {
    font-size: 12px;
    color: var(--text-secondary);
}

.update-label {
    display: block;
    margin-bottom: 2px;
}

.update-value {
    color: var(--primary-blue);
    font-weight: 500;
}

/* Ã¤Â¸Â»Ã¥â€ â€¦Ã¥Â®Â¹Ã¥Å’Âº */
.main-content {
    flex: 1;
    display: grid;
    grid-template-columns: 420px 1fr 420px;
    gap: 12px;
    padding: 12px;
    overflow: hidden;
    height: calc(100vh - 60px);
    min-height: 0;
}

/* Ã¥â€œÂÃ¥Âºâ€Ã¥Â¼ÂÃ¨Â°Æ’Ã¦â€¢Â´ */
@media (min-width: 1920px) {
    .main-content {
        grid-template-columns: 480px 1fr 480px;
        gap: 15px;
        padding: 15px;
    }
}

@media (max-width: 1600px) {
    .main-content {
        grid-template-columns: 380px 1fr 380px;
        gap: 10px;
        padding: 10px;
    }
}

/* Ã¥Â·Â¦Ã¦ ÂÃ¥â€™Å’Ã¥ÂÂ³Ã¦ ÂÃ¦ Â·Ã¥Â¼Â */
.left-panel, .right-panel {
    display: flex;
    flex-direction: column;
    gap: 8px;
    overflow: hidden;
    height: 100%;
    min-height: 0;
}

/* Ã¥Â·Â¦Ã¦ ÂÃ¦Â¨Â¡Ã¥Ââ€”Ã©Â«ËœÃ¥ÂºÂ¦Ã¥Ë†â€ Ã©â€¦Â */
.left-panel .cluster-module {
    flex: 0 0 180px;
}

.left-panel .innovation-module {
    flex: 0 0 240px;
}

.left-panel .transform-module {
    flex: 0 0 200px;
}

.left-panel .coordination-module {
    flex: 1;
    min-height: 120px;
}

/* Ã¥ÂÂ³Ã¦ ÂÃ¦Â¨Â¡Ã¥Ââ€”Ã©Â«ËœÃ¥ÂºÂ¦Ã¥Ë†â€ Ã©â€¦Â */
.right-panel .agent-module {
    flex: 0 0 300px;
}

.right-panel .layout-module {
    flex: 0 0 180px;
}

.right-panel .distribution-module {
    flex: 0 0 150px;
}

.right-panel .fusion-module {
    flex: 0 0 200px;
}

/* Ã¤Â¸Â­Ã¦ ÂÃ¦ Â·Ã¥Â¼Â */
.center-panel {
    display: flex;
    flex-direction: column;
    gap: 12px;
    height: 100%;
    min-width: 700px;
    overflow: hidden;
}

.center-panel .top-indicators {
    flex: 0 0 auto;
}

.center-panel .three-layer-container {
    flex: 1;
    min-height: 360px;
}

.center-panel .alert-monitor {
    flex: 0 0 140px;
}

/* Ã¦Â¨Â¡Ã¥Ââ€”Ã©â‚¬Å¡Ã§â€Â¨Ã¦ Â·Ã¥Â¼Â */
.module {
    background: var(--panel-bg);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    backdrop-filter: blur(10px);
    transition: all 0.3s;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.module:hover {
    border-color: var(--primary-blue);
    box-shadow: 0 0 12px rgba(30, 144, 255, 0.3);
}

.module-header {
    padding: 8px 12px;
    border-bottom: 1px solid rgba(30, 144, 255, 0.2);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}

.module-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--primary-blue);
}

.module-icon {
    font-size: 16px;
}

.module-body {
    padding: 10px;
    flex: 1;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Ã¥â€°ÂÃ¦Â²Â¿Ã©â€ºâ€ Ã§Â¾Â¤Ã¥Â»ÂºÃ¨Â®Â¾ */
.cluster-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    margin-bottom: 8px;
}

.cluster-card {
    padding: 8px 4px;
    background: rgba(30, 144, 255, 0.05);
    border: 1px solid rgba(30, 144, 255, 0.3);
    border-radius: 4px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s;
}

.cluster-card:hover {
    background: rgba(30, 144, 255, 0.1);
    transform: scale(1.03);
}

.card-value {
    font-size: 20px;
    font-weight: bold;
    color: var(--primary-blue);
    margin-bottom: 4px;
}

.card-label {
    font-size: 11px;
    color: var(--text-secondary);
}

.cluster-process {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px;
    background: rgba(30, 144, 255, 0.05);
    border-radius: 4px;
}

.process-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.process-icon {
    font-size: 16px;
}

.process-text {
    font-size: 10px;
    color: var(--text-secondary);
}

.process-arrow {
    color: var(--primary-blue);
    font-size: 14px;
}

/* Ã¥Ë†â€ºÃ¦â€“Â°Ã¦Å â‚¬Ã¦Å“Â¯Ã¦â€Â»Ã¥â€¦Â³ */
.innovation-metrics {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
    margin-bottom: 8px;
}

.metric-card {
    padding: 8px;
    background: linear-gradient(135deg, rgba(30, 144, 255, 0.1), rgba(0, 206, 209, 0.05));
    border-radius: 4px;
}

.metric-value {
    font-size: 16px;
    font-weight: bold;
    color: var(--accent-cyan);
    margin-bottom: 2px;
}

.metric-label {
    font-size: 10px;
    color: var(--text-secondary);
}

.process-flow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 8px 0;
    padding: 8px;
    background: rgba(30, 144, 255, 0.05);
    border-radius: 4px;
}

.flow-node {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.node-icon {
    font-size: 14px;
    margin-bottom: 2px;
}

.node-text {
    font-size: 8px;
    text-align: center;
    color: var(--text-secondary);
    max-width: 45px;
    line-height: 1.1;
}

.flow-arrow {
    color: var(--primary-blue);
    font-size: 12px;
}

.smart-attack, .quick-transform {
    margin-top: 8px;
}

.sub-title {
    font-size: 12px;
    color: var(--primary-blue);
    margin-bottom: 6px;
    font-weight: 600;
}

.attack-cards-horizontal, .transform-stats-horizontal {
    display: flex;
    gap: 4px;
    justify-content: space-between;
}

.attack-card-h, .stat-card-h {
    flex: 1;
    padding: 6px 4px;
    background: rgba(30, 144, 255, 0.05);
    border-left: 2px solid var(--primary-blue);
    border-radius: 3px;
    text-align: center;
}

.attack-card-h .attack-value, .stat-card-h .stat-value {
    display: block;
    font-size: 14px;
    font-weight: bold;
    color: var(--primary-blue);
    margin-bottom: 2px;
}

.attack-card-h .attack-label, .stat-card-h .stat-label {
    font-size: 9px;
    color: var(--text-secondary);
    line-height: 1.1;
}

/* Ã¥Ë†â€ºÃ¦â€“Â°Ã¦Ë†ÂÃ¦Å¾Å“Ã¨Â½Â¬Ã¥Å’â€“ */
.industry-tags {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4px;
    margin-bottom: 8px;
}

.industry-tag {
    padding: 6px;
    background: rgba(30, 144, 255, 0.05);
    border: 1px solid rgba(30, 144, 255, 0.3);
    border-radius: 4px;
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
    cursor: pointer;
    transition: all 0.3s;
}

.industry-tag:hover {
    background: rgba(30, 144, 255, 0.1);
    transform: scale(1.02);
}

.tag-icon {
    font-size: 12px;
}

.tag-count {
    font-weight: bold;
    color: var(--primary-blue);
    margin-left: auto;
}

.transform-flow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px;
    background: rgba(30, 144, 255, 0.05);
    border-radius: 4px;
    margin-bottom: 8px;
}

.transform-step {
    font-size: 9px;
    padding: 4px 6px;
    background: rgba(30, 144, 255, 0.1);
    border-radius: 8px;
    white-space: nowrap;
}

.transform-arrow {
    color: var(--primary-blue);
    font-size: 12px;
}

.unit {
    font-size: 10px;
    color: var(--text-secondary);
    margin-left: 2px;
}

/* Ã¥â€ºâ€ºÃ¤Â¾Â§Ã¥ÂÂÃ¨Â°Æ’ */
.coordination-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

.coord-item {
    padding: 12px;
    background: rgba(30, 144, 255, 0.05);
    border: 1px solid rgba(30, 144, 255, 0.3);
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    transition: all 0.3s;
}

.coord-item:hover {
    background: rgba(30, 144, 255, 0.1);
    transform: scale(1.05);
}

.coord-icon {
    font-size: 20px;
}

.coord-label {
    font-size: 12px;
    color: var(--text-secondary);
    font-weight: 500;
}

/* Ã©Â¡Â¶Ã©Æ’Â¨Ã¦Å’â€¡Ã¦ â€¡Ã¥ÂÂ¡ */
.top-indicators {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 10px;
    margin-bottom: 12px;
}

.indicator-card {
    padding: 12px 8px;
    background: var(--panel-bg);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    transition: all 0.3s;
}

.indicator-card:hover {
    border-color: var(--primary-blue);
    transform: translateY(-2px);
}

.indicator-circle {
    position: relative;
    width: 50px;
    height: 50px;
}

.progress-ring {
    transform: rotate(-90deg);
}

.progress-ring-bg {
    fill: none;
    stroke: rgba(30, 144, 255, 0.1);
    stroke-width: 3;
}

.progress-ring-fill {
    fill: none;
    stroke: var(--primary-blue);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 125;
    stroke-dashoffset: 125;
    transition: stroke-dashoffset 1s ease;
}

.percent-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 12px;
    font-weight: bold;
    color: var(--primary-blue);
}

.indicator-number {
    font-size: 22px;
    font-weight: bold;
    color: var(--accent-cyan);
}

.indicator-label {
    font-size: 10px;
    color: var(--text-secondary);
    text-align: center;
    line-height: 1.2;
}

/* Ã¤Â¸â€°Ã¥Â±â€šÃ§Â«â€¹Ã¤Â½â€œÃ§Â»â€œÃ¦Å¾â€ž - Ã¥Â¤ÂÃ¦Ââ€šÃ¥Â±â€šÃ§ÂºÂ§Ã¥â€¦Â³Ã§Â³Â»Ã¨Â®Â¾Ã¨Â®Â¡ */
.three-layer-container {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    background: 
        radial-gradient(ellipse at center, rgba(30, 144, 255, 0.03) 0%, transparent 70%),
        radial-gradient(circle at 30% 30%, rgba(0, 206, 209, 0.02) 0%, transparent 40%),
        radial-gradient(circle at 70% 70%, rgba(145, 204, 117, 0.02) 0%, transparent 40%);
    overflow: hidden;
}

/* Ã¨Æ’Å’Ã¦â„¢Â¯Ã¨Â£â€¦Ã©Â¥Â°Ã§Â½â€˜Ã¦ Â¼ */
.three-layer-container::before {
    content: '';
    position: absolute;
    inset: 10%;
    border: 1px solid rgba(30, 144, 255, 0.05);
    border-radius: 20px;
    background: 
        repeating-linear-gradient(
            90deg,
            transparent,
            transparent 40px,
            rgba(30, 144, 255, 0.02) 40px,
            rgba(30, 144, 255, 0.02) 41px
        ),
        repeating-linear-gradient(
            0deg,
            transparent,
            transparent 40px,
            rgba(30, 144, 255, 0.02) 40px,
            rgba(30, 144, 255, 0.02) 41px
        );
}

/* Ã¥Â±â€šÃ§ÂºÂ§Ã¥Å’â€¦Ã¨Â£â€¦Ã¥â„¢Â¨ - Ã©â€¡â€˜Ã¥Â­â€”Ã¥Â¡â€Ã¥Â¼ÂÃ¥Â¸Æ’Ã¥Â±â‚¬ */
.layer-wrapper {
    position: relative;
    width: 95%;
    height: 90%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
}

/* Ã©â‚¬Å¡Ã§â€Â¨Ã¥Â±â€šÃ§ÂºÂ§Ã¦ Â·Ã¥Â¼Â */
.layer {
    position: relative;
    background: linear-gradient(135deg, 
        rgba(15, 25, 45, 0.9) 0%, 
        rgba(20, 35, 60, 0.85) 50%,
        rgba(15, 25, 45, 0.9) 100%);
    backdrop-filter: blur(10px);
    box-shadow: 
        0 10px 30px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.1),
        inset 0 -1px 0 rgba(0, 0, 0, 0.3);
    transition: all 0.3s ease;
}

/* Ã©Â¡Â¶Ã¥Â±â€š - Ã¤ÂºÂ§Ã¤Â¸Å¡Ã©â€œÂ¾Ã¥Ë†â€ Ã¥Â¸Æ’ */
.layer-top {
    width: 100%;
    height: 32%;
    clip-path: polygon(15% 0, 85% 0, 95% 100%, 5% 100%);
    background: 
        linear-gradient(135deg, 
            rgba(30, 144, 255, 0.15) 0%, 
            rgba(15, 25, 45, 0.95) 30%,
            rgba(15, 25, 45, 0.95) 70%,
            rgba(30, 144, 255, 0.15) 100%),
        linear-gradient(90deg, 
            transparent 0%, 
            rgba(30, 144, 255, 0.05) 50%, 
            transparent 100%);
    border: 2px solid transparent;
    border-image: linear-gradient(90deg, 
        transparent, 
        rgba(30, 144, 255, 0.6), 
        transparent) 1;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
}

.layer-top::before,
.layer-top::after {
    content: '';
    position: absolute;
    top: 0;
    width: 2px;
    height: 100%;
    background: linear-gradient(to bottom, 
        rgba(30, 144, 255, 0.8), 
        transparent);
}

.layer-top::before {
    left: 15%;
}

.layer-top::after {
    right: 15%;
}

/* Ã¤Â¸Â­Ã¥Â±â€š - Ã¦â€¢Â°Ã¦ÂÂ®Ã¨Âµâ€žÃ¦ÂºÂÃ¤Â¸Â­Ã¥Â¿Æ’ */
.layer-middle {
    width: 85%;
    height: 30%;
    clip-path: polygon(10% 0, 90% 0, 95% 100%, 5% 100%);
    background: 
        linear-gradient(135deg, 
            rgba(0, 206, 209, 0.15) 0%, 
            rgba(15, 25, 45, 0.95) 30%,
            rgba(15, 25, 45, 0.95) 70%,
            rgba(0, 206, 209, 0.15) 100%),
        linear-gradient(90deg, 
            transparent 0%, 
            rgba(0, 206, 209, 0.05) 50%, 
            transparent 100%);
    border: 2px solid transparent;
    border-image: linear-gradient(90deg, 
        transparent, 
        rgba(0, 206, 209, 0.6), 
        transparent) 1;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    margin-top: -20px;
}

.layer-middle::before,
.layer-middle::after {
    content: '';
    position: absolute;
    width: 100px;
    height: 1px;
    background: linear-gradient(90deg, 
        transparent, 
        rgba(0, 206, 209, 0.6), 
        transparent);
    top: 50%;
}

.layer-middle::before {
    left: -80px;
}

.layer-middle::after {
    right: -80px;
}

/* Ã¥Âºâ€¢Ã¥Â±â€š - Ã§Â®â€”Ã¥Å â€ºÃ¥Å¸ÂºÃ§Â¡â‚¬ */
.layer-bottom {
    width: 70%;
    height: 28%;
    clip-path: polygon(5% 0, 95% 0, 100% 100%, 0% 100%);
    background: 
        linear-gradient(135deg, 
            rgba(145, 204, 117, 0.15) 0%, 
            rgba(15, 25, 45, 0.95) 30%,
            rgba(15, 25, 45, 0.95) 70%,
            rgba(145, 204, 117, 0.15) 100%),
        linear-gradient(90deg, 
            transparent 0%, 
            rgba(145, 204, 117, 0.05) 50%, 
            transparent 100%);
    border: 2px solid transparent;
    border-image: linear-gradient(90deg, 
        transparent, 
        rgba(145, 204, 117, 0.6), 
        transparent) 1;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
    margin-top: -15px;
}

.layer-bottom::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
    height: 2px;
    background: linear-gradient(90deg, 
        transparent, 
        rgba(145, 204, 117, 0.8), 
        transparent);
}

/* Ã¥Â±â€šÃ§ÂºÂ§Ã¥â€ â€¦Ã¥Â®Â¹Ã¦ Â·Ã¥Â¼Â */
.layer-content {
    padding: 15px 20px;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 2;
}

.layer-title {
    font-size: 14px;
    font-weight: bold;
    color: var(--primary-blue);
    text-align: center;
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 3px;
    position: relative;
    text-shadow: 
        0 2px 4px rgba(0, 0, 0, 0.5),
        0 0 20px rgba(30, 144, 255, 0.3);
}

.layer-title::before,
.layer-title::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 60px;
    height: 1px;
    background: linear-gradient(90deg, 
        transparent, 
        var(--primary-blue));
}

.layer-title::before {
    right: calc(100% + 10px);
    background: linear-gradient(90deg, 
        transparent, 
        var(--primary-blue));
}

.layer-title::after {
    left: calc(100% + 10px);
    background: linear-gradient(90deg, 
        var(--primary-blue), 
        transparent);
}

/* Ã¤ÂºÂ§Ã¤Â¸Å¡Ã©â€œÂ¾Ã¥Å“â€ Ã¥Â½Â¢Ã¥Â¸Æ’Ã¥Â±â‚¬ - Ã¥Â¢Å¾Ã¥Â¼ÂºÃ¨Â®Â¾Ã¨Â®Â¡ */
.chain-items-circular {
    display: flex;
    justify-content: space-around;
    align-items: center;
    flex: 1;
    position: relative;
    padding: 0 30px;
}

/* Ã¨Â¿Å¾Ã¦Å½Â¥Ã§ÂºÂ¿Ã§Â½â€˜Ã§Â»Å“ */
.chain-items-circular::before {
    content: '';
    position: absolute;
    left: 20%;
    right: 20%;
    top: 50%;
    height: 1px;
    background: linear-gradient(90deg, 
        rgba(30, 144, 255, 0.2), 
        rgba(30, 144, 255, 0.4), 
        rgba(30, 144, 255, 0.2));
    animation: pulseWidth 3s ease-in-out infinite;
}

@keyframes pulseWidth {
    0%, 100% { opacity: 0.3; transform: scaleX(0.8); }
    50% { opacity: 0.8; transform: scaleX(1); }
}

.chain-item-circle {
    width: 100px;
    height: 100px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

/* Ã¥â€¦Â­Ã¨Â¾Â¹Ã¥Â½Â¢Ã¨Æ’Å’Ã¦â„¢Â¯ */
.chain-item-circle::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, 
        rgba(30, 144, 255, 0.1), 
        rgba(30, 144, 255, 0.05));
    clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);
    border: 2px solid rgba(30, 144, 255, 0.3);
    transition: all 0.3s;
}

.chain-item-circle:hover::before {
    background: linear-gradient(135deg, 
        rgba(30, 144, 255, 0.2), 
        rgba(30, 144, 255, 0.1));
    transform: scale(1.1);
    box-shadow: 0 0 30px rgba(30, 144, 255, 0.5);
}

/* Ã¨Â£â€¦Ã©Â¥Â°Ã§Å½Â¯ */
.chain-item-circle::after {
    content: '';
    position: absolute;
    inset: -5px;
    border: 1px dashed rgba(30, 144, 255, 0.2);
    border-radius: 50%;
    animation: rotateDash 10s linear infinite;
}

@keyframes rotateDash {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.item-inner {
    text-align: center;
    padding: 8px;
    position: relative;
    z-index: 2;
}

.item-inner .item-value {
    font-size: 22px;
    font-weight: bold;
    color: var(--primary-blue);
    margin-bottom: 4px;
    text-shadow: 0 0 10px rgba(30, 144, 255, 0.5);
}

.item-inner .item-label {
    font-size: 10px;
    color: var(--text-primary);
    margin-bottom: 3px;
    font-weight: 600;
}

.item-inner .item-desc {
    font-size: 8px;
    color: var(--text-secondary);
    line-height: 1.2;
}

/* Ã¦â€¢Â°Ã¦ÂÂ®Ã¥Â±â€šÃ¨Â®Â¾Ã¨Â®Â¡ - Ã§Å¸Â©Ã¥Â½Â¢Ã¥ÂÂ¡Ã§â€°â€¡Ã¥Â¸Æ’Ã¥Â±â‚¬ */
.data-items-circular {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex: 1;
    gap: 10px;
    padding: 0 20px;
    position: relative;
}

.data-item-circle {
    flex: 1;
    height: 80px;
    background: linear-gradient(135deg, 
        rgba(0, 206, 209, 0.1) 0%, 
        rgba(0, 206, 209, 0.05) 100%);
    border: 1px solid rgba(0, 206, 209, 0.3);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.3s;
}

.data-item-circle::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, 
        transparent, 
        rgba(0, 206, 209, 0.3), 
        transparent);
    animation: slideShine 4s ease-in-out infinite;
}

@keyframes slideShine {
    0% { left: -100%; }
    50%, 100% { left: 100%; }
}

.data-item-circle:hover {
    transform: translateY(-3px);
    box-shadow: 
        0 5px 15px rgba(0, 206, 209, 0.3),
        inset 0 0 20px rgba(0, 206, 209, 0.1);
    border-color: rgba(0, 206, 209, 0.5);
}

.data-inner {
    text-align: center;
    padding: 8px;
    position: relative;
    z-index: 1;
}

.data-inner .data-icon {
    font-size: 20px;
    margin-bottom: 4px;
    filter: drop-shadow(0 0 5px rgba(0, 206, 209, 0.5));
}

.data-inner .data-name {
    font-size: 8px;
    color: var(--text-primary);
    margin-bottom: 2px;
    font-weight: 500;
    line-height: 1.1;
}

.data-inner .data-size {
    font-size: 11px;
    font-weight: bold;
    color: var(--accent-cyan);
    text-shadow: 0 0 8px rgba(0, 206, 209, 0.5);
}

/* Ã§Â®â€”Ã¥Å â€ºÃ¥Â±â€šÃ¨Â®Â¾Ã¨Â®Â¡ - Ã¤Â»ÂªÃ¨Â¡Â¨Ã§â€ºËœÃ©Â£Å½Ã¦ Â¼ */
.compute-items-circular {
    display: flex;
    justify-content: space-around;
    align-items: center;
    flex: 1;
    gap: 15px;
    padding: 0 40px;
    position: relative;
}

.compute-item-circle {
    width: 65px;
    height: 65px;
    border-radius: 50%;
    background: 
        radial-gradient(circle at center, 
            rgba(145, 204, 117, 0.2) 0%, 
            rgba(145, 204, 117, 0.05) 70%),
        conic-gradient(
            from 180deg,
            rgba(145, 204, 117, 0.3) 0deg,
            transparent 120deg,
            transparent 240deg,
            rgba(145, 204, 117, 0.3) 360deg
        );
    border: 2px solid rgba(145, 204, 117, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    cursor: pointer;
    transition: all 0.3s;
}

/* Ã¥Ë†Â»Ã¥ÂºÂ¦Ã¨Â£â€¦Ã©Â¥Â° */
.compute-item-circle::before {
    content: '';
    position: absolute;
    inset: -8px;
    border-radius: 50%;
    background: repeating-conic-gradient(
        from 0deg,
        transparent 0deg 8deg,
        rgba(145, 204, 117, 0.3) 8deg 10deg
    );
    animation: rotateScale 8s linear infinite;
}

@keyframes rotateScale {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.compute-item-circle:hover {
    transform: scale(1.1);
    box-shadow: 
        0 0 20px rgba(145, 204, 117, 0.5),
        inset 0 0 15px rgba(145, 204, 117, 0.2);
}

.compute-inner {
    text-align: center;
    position: relative;
    z-index: 1;
}

.compute-inner .compute-value {
    font-size: 14px;
    font-weight: bold;
    color: #91cc75;
    display: block;
    text-shadow: 0 0 10px rgba(145, 204, 117, 0.6);
}

.compute-inner .compute-label {
    font-size: 9px;
    color: var(--text-primary);
    margin: 2px 0;
    font-weight: 500;
}

.compute-inner .compute-unit {
    font-size: 8px;
    color: var(--text-secondary);
}

/* Ã¥Â±â€šÃ§ÂºÂ§Ã©â€”Â´Ã¨Â¿Å¾Ã¦Å½Â¥Ã§ÂºÂ¿ */
.connection-lines {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

/* Ã¥Å¾â€šÃ§â€ºÂ´Ã¨Â¿Å¾Ã¦Å½Â¥Ã§ÂºÂ¿ */
.connection-lines::before,
.connection-lines::after {
    content: '';
    position: absolute;
    width: 2px;
    height: 60%;
    top: 20%;
    background: linear-gradient(to bottom,
        rgba(30, 144, 255, 0.2),
        rgba(0, 206, 209, 0.2),
        rgba(145, 204, 117, 0.2)
    );
    animation: flowDown 3s linear infinite;
}

.connection-lines::before {
    left: 25%;
}

.connection-lines::after {
    right: 25%;
}

@keyframes flowDown {
    0% { 
        background-position: 0 -100%;
        opacity: 0.5;
    }
    50% {
        opacity: 1;
    }
    100% { 
        background-position: 0 100%;
        opacity: 0.5;
    }
}

/* Ã¦â€¢Â°Ã¦ÂÂ®Ã¦ÂµÂÃ¥Å Â¨Ã§â€šÂ¹ */
.line {
    position: absolute;
    width: 4px;
    height: 4px;
    background: var(--primary-blue);
    border-radius: 50%;
    box-shadow: 0 0 10px var(--primary-blue);
    opacity: 0;
    animation: dataFlow 4s linear infinite;
}

.line-1 { 
    left: 25%; 
    animation-delay: 0s;
}
.line-2 { 
    left: 50%; 
    animation-delay: 1s;
}
.line-3 { 
    left: 75%; 
    animation-delay: 2s;
}
.line-4 { 
    left: 35%; 
    animation-delay: 3s;
}

@keyframes dataFlow {
    0% {
        top: 10%;
        opacity: 0;
    }
    10% {
        opacity: 1;
    }
    90% {
        opacity: 1;
    }
    100% {
        top: 90%;
        opacity: 0;
    }
}

/* Ã¥â€¦â€°Ã¦â„¢â€¢Ã¦â€¢Ë†Ã¦Å¾Å“ */
.layer-glow {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 120%;
    height: 120%;
    border-radius: 50%;
    opacity: 0.2;
    pointer-events: none;
    filter: blur(40px);
}

.layer-top .layer-glow {
    background: radial-gradient(ellipse at center, 
        rgba(30, 144, 255, 0.4) 0%, 
        transparent 50%);
}

.layer-middle .layer-glow {
    background: radial-gradient(ellipse at center, 
        rgba(0, 206, 209, 0.4) 0%, 
        transparent 50%);
}

.layer-bottom .layer-glow {
    background: radial-gradient(ellipse at center, 
        rgba(145, 204, 117, 0.4) 0%, 
        transparent 50%);
}

/* Ã§â€ºâ€˜Ã¦Å½Â§Ã©Â¢â€žÃ¨Â­Â¦ */
.alert-monitor {
    background: var(--panel-bg);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.alert-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    flex-shrink: 0;
}

.alert-title {
    font-size: 14px;
    color: var(--primary-blue);
    font-weight: 600;
}

.alert-levels {
    display: flex;
    gap: 12px;
}

.level-item {
    display: flex;
    align-items: center;
    gap: 3px;
}

.level-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    animation: breathe 2s infinite;
}

@keyframes breathe {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

.level-item.urgent .level-dot { background: var(--danger); }
.level-item.severe .level-dot { background: #ff7875; }
.level-item.general .level-dot { background: var(--warning); }
.level-item.warning .level-dot { background: var(--info); }

.level-name {
    font-size: 10px;
    color: var(--text-secondary);
}

.level-count {
    font-size: 12px;
    font-weight: bold;
    color: var(--text-primary);
}

.alert-table {
    flex: 1;
    overflow: hidden;
}

.alert-table table {
    width: 100%;
    border-collapse: collapse;
}

.alert-table th {
    padding: 4px;
    background: rgba(30, 144, 255, 0.1);
    border-bottom: 1px solid var(--border-color);
    font-size: 10px;
    color: var(--text-secondary);
    text-align: left;
}

.alert-table td {
    padding: 4px;
    border-bottom: 1px solid rgba(30, 144, 255, 0.1);
    font-size: 9px;
    color: var(--text-primary);
}

.alert-type {
    padding: 1px 4px;
    border-radius: 6px;
    font-size: 8px;
    color: white;
}

.alert-type.severe { background: #ff7875; }

.btn-handle {
    padding: 2px 6px;
    background: var(--primary-blue);
    border: none;
    border-radius: 3px;
    color: white;
    font-size: 8px;
    cursor: pointer;
    transition: all 0.3s;
}

.btn-handle:hover {
    background: var(--secondary-blue);
    transform: scale(1.05);
}

/* Ã¦â„¢ÂºÃ¨Æ’Â½Ã¤Â½â€œÃ¥Â»ÂºÃ¨Â®Â¾Ã¦Â¨Â¡Ã¥Ââ€” */
.agent-grid {
    display: flex;
    flex-direction: column;
    gap: 8px;
    height: 100%;
}

.agent-category {
    background: rgba(30, 144, 255, 0.05);
    border: 1px solid rgba(30, 144, 255, 0.2);
    border-radius: 4px;
    padding: 10px 8px;
    transition: all 0.3s;
    flex: 1;
    min-height: 55px;
}

.agent-category:hover {
    background: rgba(30, 144, 255, 0.1);
    transform: scale(1.02);
}

.category-header {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
}

.category-icon {
    font-size: 14px;
    flex-shrink: 0;
}

.category-name {
    flex: 1;
    font-size: 12px;
    font-weight: 600;
    color: var(--primary-blue);
}

.category-count {
    font-size: 14px;
    font-weight: bold;
    color: var(--accent-cyan);
    flex-shrink: 0;
}

.category-details {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    line-height: 1.3;
}

.detail-item {
    font-size: 9px;
    color: var(--text-secondary);
    padding: 2px 5px;
    background: rgba(30, 144, 255, 0.1);
    border-radius: 6px;
    white-space: nowrap;
}

/* Ã§Â§â€˜Ã¥Ë†â€ºÃ¥Â¸Æ’Ã¥Â±â‚¬ */
.layout-module .module-body {
    padding: 8px;
}

.tab-switcher {
    display: flex;
    gap: 4px;
}

.tab-btn {
    padding: 3px 6px;
    background: transparent;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    color: var(--text-secondary);
    font-size: 9px;
    cursor: pointer;
    transition: all 0.3s;
}

.tab-btn.active {
    background: var(--primary-blue);
    border-color: var(--primary-blue);
    color: white;
}

.layout-chart {
    height: 110px;
    margin-bottom: 8px;
}

.layout-legend {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4px;
}

.legend-item {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
}

.legend-color {
    width: 8px;
    height: 8px;
    border-radius: 2px;
}

.legend-name {
    flex: 1;
    color: var(--text-secondary);
}

.legend-value {
    font-size: 10px;
    font-weight: bold;
    color: var(--primary-blue);
}

/* Ã¥Å’ÂºÃ¥Å¸Å¸Ã¥Ë†â€ Ã¥Â¸Æ’ */
.distribution-module .module-body {
    padding: 8px;
}

.distribution-chart {
    height: 110px;
}

/* Ã¥â€ºâ€ºÃ©â€œÂ¾Ã¨Å¾ÂÃ¥ÂË† */
.fusion-module .module-body {
    padding: 8px;
}

.fusion-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    height: 100%;
    align-content: center;
}

.fusion-item {
    padding: 12px 8px;
    background: rgba(30, 144, 255, 0.05);
    border: 1px solid rgba(30, 144, 255, 0.3);
    border-radius: 6px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
    transition: all 0.3s;
    min-height: 80px;
}

.fusion-item:hover {
    background: rgba(30, 144, 255, 0.1);
    transform: scale(1.05);
}

.fusion-icon {
    font-size: 24px;
}

.fusion-label {
    font-size: 12px;
    color: var(--text-secondary);
    font-weight: 500;
}

/* Ã¨â€¡ÂªÃ¥Â®Å¡Ã¤Â¹â€°Ã¦Â»Å¡Ã¥Å Â¨Ã¦ÂÂ¡ */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: rgba(30, 144, 255, 0.1);
    border-radius: 3px;
}

::-webkit-scrollbar-thumb {
    background: rgba(30, 144, 255, 0.4);
    border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(30, 144, 255, 0.6);
}

/* ========== é˜²æ­¢æ–‡æœ¬é€‰æ‹©å’Œå…‰æ ‡ ========== */
* {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    cursor: default;
}

button, .clickable-module, .clickable-indicator, 
.cluster-card, .industry-tag, .coord-item, 
.fusion-item, .agent-category, .tab-btn {
    cursor: pointer !important;
}

/* ========== æ¨¡æ€æ¡†æ ·å¼ ========== */
.modal-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(5px);
    z-index: 9999;
    animation: fadeIn 0.3s ease;
}

.modal-overlay.active {
    display: flex;
    align-items: center;
    justify-content: center;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.modal-container {
    width: 90%;
    max-width: 800px;
    max-height: 85vh;
    background: linear-gradient(135deg, 
        rgba(15, 25, 45, 0.98) 0%, 
        rgba(20, 35, 60, 0.95) 100%);
    border: 2px solid var(--primary-blue);
    border-radius: 12px;
    box-shadow: 
        0 20px 60px rgba(0, 0, 0, 0.5),
        0 0 100px rgba(30, 144, 255, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    display: flex;
    flex-direction: column;
    position: relative;
    animation: slideUp 0.3s ease;
    overflow: hidden;
}

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

.modal-header {
    padding: 20px 25px;
    background: linear-gradient(90deg, 
        rgba(30, 144, 255, 0.2) 0%, 
        rgba(0, 206, 209, 0.2) 100%);
    border-bottom: 1px solid rgba(30, 144, 255, 0.3);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
}

.modal-header::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, 
        transparent, 
        rgba(30, 144, 255, 0.8), 
        transparent);
    animation: shimmer 3s infinite;
}

@keyframes shimmer {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 1; }
}

.modal-title {
    font-size: 20px;
    font-weight: bold;
    color: var(--primary-blue);
    text-shadow: 0 0 20px rgba(30, 144, 255, 0.5);
    letter-spacing: 2px;
}

.modal-close {
    width: 36px;
    height: 36px;
    background: transparent;
    border: 1px solid rgba(30, 144, 255, 0.3);
    border-radius: 50%;
    color: var(--primary-blue);
    font-size: 24px;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-close:hover {
    background: rgba(30, 144, 255, 0.2);
    border-color: var(--primary-blue);
    transform: rotate(90deg);
}

.modal-body {
    flex: 1;
    padding: 25px;
    overflow-y: auto;
    position: relative;
}

.modal-content {
    color: var(--text-primary);
}

.modal-content h3 {
    color: var(--accent-cyan);
    margin-bottom: 15px;
    font-size: 16px;
    border-left: 3px solid var(--accent-cyan);
    padding-left: 10px;
}

.modal-content p {
    line-height: 1.8;
    margin-bottom: 15px;
    color: var(--text-secondary);
}

.modal-content .info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
    margin: 20px 0;
}

.modal-content .info-item {
    padding: 12px;
    background: rgba(30, 144, 255, 0.05);
    border: 1px solid rgba(30, 144, 255, 0.2);
    border-radius: 6px;
}

.modal-content .info-label {
    font-size: 12px;
    color: var(--text-secondary);
    margin-bottom: 5px;
}

.modal-content .info-value {
    font-size: 18px;
    font-weight: bold;
    color: var(--primary-blue);
}

.modal-content .chart-container {
    width: 100%;
    height: 300px;
    margin: 20px 0;
    border: 1px solid rgba(30, 144, 255, 0.2);
    border-radius: 6px;
    padding: 10px;
}

.modal-content img, .modal-content video {
    width: 100%;
    border-radius: 6px;
    margin: 15px 0;
}

.modal-footer {
    padding: 15px 25px;
    background: rgba(30, 144, 255, 0.05);
    border-top: 1px solid rgba(30, 144, 255, 0.3);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-status {
    display: flex;
    align-items: center;
    gap: 8px;
}

.status-dot {
    width: 8px;
    height: 8px;
    background: var(--success);
    border-radius: 50%;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% { 
        opacity: 1;
        transform: scale(1);
    }
    50% { 
        opacity: 0.5;
        transform: scale(1.2);
    }
}

.status-text {
    font-size: 12px;
    color: var(--text-secondary);
}

.modal-action-btn {
    padding: 8px 24px;
    background: linear-gradient(135deg, var(--primary-blue), var(--secondary-blue));
    border: none;
    border-radius: 6px;
    color: white;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.3s;
    box-shadow: 0 4px 15px rgba(30, 144, 255, 0.3);
}

.modal-action-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(30, 144, 255, 0.4);
}

/* æ»šåŠ¨æ¡æ ·å¼ */
.modal-body::-webkit-scrollbar {
    width: 8px;
}

.modal-body::-webkit-scrollbar-track {
    background: rgba(30, 144, 255, 0.1);
    border-radius: 4px;
}

.modal-body::-webkit-scrollbar-thumb {
    background: rgba(30, 144, 255, 0.4);
    border-radius: 4px;
}

.modal-body::-webkit-scrollbar-thumb:hover {
    background: rgba(30, 144, 255, 0.6);
}

/* å¯ç‚¹å‡»æ¨¡å—çš„è§†è§‰æç¤º */
.clickable-module:hover,
.clickable-indicator:hover {
    border-color: var(--accent-cyan) !important;
    box-shadow: 0 0 20px rgba(0, 206, 209, 0.4) !important;
}