/* 替换 Google Fonts 为本地字体或系统默认 */
        @font-face {
            font-family: 'Orbitron';
            src: url('/static/lib/Orbitron.ttf') format('truetype');
            font-display: swap;
        }
        
        body {
            font-family: 'JetBrains Mono', 'Consolas', 'Courier New', 'Microsoft YaHei', monospace;
            background-color: #1E293B;
            color: #E2E8F0;
            margin: 0;
        }
        
        .font-cyber {
            font-family: 'Orbitron', sans-serif;
        }
        
        .neon-border {
            box-shadow: 0 0 10px rgba(6, 182, 212, 0.2);
            border: 1px solid rgba(6, 182, 212, 0.3);
        }
        
        .neon-text {
            text-shadow: 0 0 5px rgba(6, 182, 212, 0.8);
        }

        /* Scrollbar */
        ::-webkit-scrollbar {
            width: 8px;
            height: 8px;
        }
        ::-webkit-scrollbar-track {
            background: #0F172A; 
        }
        ::-webkit-scrollbar-thumb {
            background: #475569; 
        }
        ::-webkit-scrollbar-thumb:hover {
            background: #06B6D4; 
        }

        /* Force placeholder color for transparent textarea */
        #code-editor::placeholder {
            color: #6b7280;
            opacity: 1;
        }

        .prompt-composer-chip {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            min-height: 28px;
            padding: 2px 10px;
            margin: 0 3px;
            border-radius: 8px;
            border: 1px solid rgba(103, 232, 249, 0.55);
            background: rgba(15, 23, 42, 0.95);
            color: #67E8F9;
            box-shadow: 0 0 10px rgba(6, 182, 212, 0.12);
            cursor: pointer;
            user-select: none;
            vertical-align: baseline;
            line-height: 1.2;
            max-width: 100%;
        }

        .prompt-composer-chip:hover {
            border-color: rgba(34, 211, 238, 0.85);
            color: #E0F2FE;
        }

        .prompt-composer-chip-label {
            color: #E0F2FE;
            font-size: 12px;
            white-space: nowrap;
        }

        .prompt-composer-chip-actions {
            display: inline-flex;
            align-items: center;
            gap: 4px;
        }

        .prompt-composer-chip-action {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 34px;
            height: 20px;
            padding: 0 6px;
            border-radius: 5px;
            border: 1px solid rgba(71, 85, 105, 0.9);
            background: rgba(30, 41, 59, 0.9);
            color: #CBD5E1;
            font-size: 11px;
            cursor: pointer;
        }

        .prompt-composer-chip-action:hover {
            border-color: rgba(103, 232, 249, 0.7);
            color: #F8FAFC;
        }

        .prompt-composer-chip-readonly {
            cursor: default;
        }

        .prompt-composer-chip-readonly:hover {
            color: #67E8F9;
            border-color: rgba(103, 232, 249, 0.55);
        }

        .prompt-composer-chip-remove {
            color: #FCA5A5;
            font-weight: bold;
            cursor: pointer;
        }

        .prompt-composer-chip-remove:hover {
            color: #F87171;
        }

        .color-picker-sv {
            position: relative;
            width: 100%;
            height: 136px;
            border-radius: 12px;
            overflow: hidden;
            cursor: crosshair;
            background: red;
            border: 1px solid rgba(255, 255, 255, 0.08);
        }

        .color-picker-sv::before {
            content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient(to right, #ffffff, rgba(255,255,255,0));
        }

        .color-picker-sv::after {
            content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient(to top, #000000, rgba(0,0,0,0));
        }

        .color-picker-handle {
            position: absolute;
            width: 18px;
            height: 18px;
            border: 3px solid white;
            border-radius: 999px;
            box-shadow: 0 0 0 2px rgba(15, 23, 42, 0.85);
            transform: translate(-9px, -9px);
            pointer-events: none;
        }

        .color-picker-hue {
            -webkit-appearance: none;
            appearance: none;
            width: 100%;
            height: 18px;
            border-radius: 999px;
            border: 1px solid rgba(255, 255, 255, 0.1);
            background: linear-gradient(90deg, #ff0000 0%, #ff00ff 16%, #0000ff 33%, #00ffff 50%, #00ff00 66%, #ffff00 83%, #ff0000 100%);
            outline: none;
        }

        .color-picker-hue::-webkit-slider-thumb {
            -webkit-appearance: none;
            appearance: none;
            width: 20px;
            height: 20px;
            border-radius: 999px;
            border: 3px solid #ffffff;
            background: transparent;
            box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.9), 0 2px 8px rgba(15, 23, 42, 0.5);
            cursor: pointer;
        }

        .color-picker-hue::-moz-range-thumb {
            width: 20px;
            height: 20px;
            border-radius: 999px;
            border: 3px solid #ffffff;
            background: transparent;
            box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.9), 0 2px 8px rgba(15, 23, 42, 0.5);
            cursor: pointer;
        }

        .color-picker-rgb-input {
            width: 100%;
            background: #F8FAFC;
            border: 1px solid #CBD5E1;
            border-radius: 8px;
            padding: 8px 6px;
            text-align: center;
            color: #0F172A;
            font-size: 14px;
            font-weight: 600;
            outline: none;
        }

        .color-picker-rgb-input:focus {
            border-color: #06B6D4;
            box-shadow: 0 0 0 2px rgba(6, 182, 212, 0.2);
        }

        .color-picker-rgb-label {
            display: block;
            text-align: center;
            color: #CBD5E1;
            font-size: 11px;
            margin-top: 6px;
        }

        .color-picker-preview {
            width: 48px;
            height: 48px;
            border-radius: 999px;
            border: 1px solid rgba(255, 255, 255, 0.12);
            flex-shrink: 0;
        }

        #prompt-input[data-placeholder]:empty::before {
            content: attr(data-placeholder);
            color: #94A3B8;
            pointer-events: none;
        }

        .color-token {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 4px 10px;
            border-radius: 999px;
            border: 1px solid #475569;
            background: #0F172A;
            color: #E2E8F0;
            font-size: 12px;
        }

