        :root {
            --primary: #00B14F;
            --primary-light: #E8F5E9;
            --primary-dark: #009E45;
            --secondary: #1A1A1A;
            --light-gray: #F8F9FA;
            --gray: #E9ECEF;
            --dark-gray: #6C757D;
            --white: #FFFFFF;
            --shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
            --radius: 12px;
        }
        
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Segoe UI', system-ui, sans-serif;
        }
        
        body {
            background-color: var(--white);
            color: var(--secondary);
            line-height: 1.6;
        }
        
        a {
            text-decoration: none;
            color: inherit;
        }
        
        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 20px;
        }
        
        /* HEADER MINIMAL */
        .mini-header {
            text-align: center;
            margin-bottom: 40px;
            padding: 20px 0;
        }
        
        .logo {
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }
        
        .logo h1 {
            font-size: 28px;
            font-weight: 700;
            background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }
        
        .logo span {
            color: var(--secondary);
        }
        
        .subtitle {
            font-size: 14px;
            color: var(--dark-gray);
            margin-top: 5px;
        }
        
        /* FILTER SECTION */
        .filter-section {
            margin-bottom: 40px;
            text-align: center;
        }

        .filter-tabs {
            display: flex;
            justify-content: center;
            gap: 12px;
            flex-wrap: wrap;
            margin-bottom: 10px;
        }

        .filter-tab {
            padding: 12px 24px;
            background-color: var(--white);
            border: 2px solid var(--gray);
            border-radius: 25px;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s ease;
            color: var(--dark-gray);
        }

        .filter-tab:hover {
            border-color: var(--primary);
            color: var(--primary);
            transform: translateY(-2px);
        }

        .filter-tab.active {
            background-color: var(--primary);
            border-color: var(--primary);
            color: var(--white);
            box-shadow: 0 4px 12px rgba(0, 177, 79, 0.3);
        }

        .filter-info {
            font-size: 13px;
            color: var(--dark-gray);
            margin-top: 8px;
        }

        /* Badge untuk kategori di card */
        .ypc-badge.day-trading {
            background-color: #DC2626;
        }

        .ypc-badge.swing-trading {
            background-color: #2563EB;
        }

        .ypc-badge.investing {
            background-color: #059669;
        }
        
        /* GRID GALLERY */
        .gallery-title {
            font-size: 24px;
            margin-bottom: 25px;
            font-weight: 600;
            text-align: center;
            color: var(--secondary);
            background: linear-gradient(135deg, var(--secondary) 0%, var(--primary) 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            font-weight: 700;
        }
        
        .grid-gallery {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            gap: 25px;
            margin-bottom: 40px;
        }
        
        .screener-card {
            background-color: var(--white);
            border-radius: var(--radius);
            box-shadow: var(--shadow);
            overflow: hidden;
            transition: all 0.3s ease;
            border: 1px solid var(--gray);
            opacity: 1;
            transform: translateY(0);
        }
        
        .screener-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
        }
        
        .card-thumbnail {
            height: 170px;
            background: linear-gradient(135deg, var(--primary-light) 0%, #e1f5fe 100%);
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: hidden;
            position: relative;
        }
        
        .card-thumbnail img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.3s;
        }
        
        .screener-card:hover .card-thumbnail img {
            transform: scale(1.05);
        }
        
        .card-content {
            padding: 22px;
        }
        
        .card-title {
            font-size: 18px;
            font-weight: 600;
            margin-bottom: 12px;
            color: var(--secondary);
        }
        
        .card-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-bottom: 15px;
        }
        
        .tag {
            padding: 5px 12px;
            background-color: var(--light-gray);
            border-radius: 20px;
            font-size: 12px;
            color: var(--dark-gray);
            font-weight: 500;
        }
        
        .tag.swing {
            background-color: #E1F5FE;
            color: #0277BD;
        }
        
        .tag.momentum {
            background-color: #FFF3E0;
            color: #EF6C00;
        }
        
        .tag.breakout {
            background-color: #E8F5E9;
            color: #2E7D32;
        }
        
        .tag.bandarmologi {
            background-color: #FCE4EC;
            color: #C2185B;
        }
        
        .tag.dividend {
            background-color: #E8F5E9;
            color: #2E7D32;
        }
        
        .tag.value {
            background-color: #E3F2FD;
            color: #1565C0;
        }
        
        .tag.growth {
            background-color: #F3E5F5;
            color: #7B1FA2;
        }
        
        .tag.smallcap {
            background-color: #FFF8E1;
            color: #FF8F00;
        }

        .tag.day-trading {
            background-color: #FFEBEE;
            color: #C62828;
        }

        .tag.investing {
            background-color: #E8F5E9;
            color: #2E7D32;
        }
        
        .card-desc {
            font-size: 14px;
            color: var(--dark-gray);
            margin-bottom: 18px;
            line-height: 1.5;
        }
        
        .btn-view {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 10px 18px;
            background-color: var(--primary);
            color: var(--white);
            border-radius: 6px;
            font-size: 14px;
            font-weight: 500;
            transition: background-color 0.2s;
            width: 100%;
            justify-content: center;
        }
        
        .btn-view:hover {
            background-color: var(--primary-dark);
        }
        
        /* DETAIL PAGE */
        .detail-section {
            display: none;
            margin-top: 20px;
        }
        
        .detail-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 30px;
            padding-bottom: 15px;
            border-bottom: 1px solid var(--gray);
        }
        
        .btn-back {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 10px 18px;
            background-color: var(--light-gray);
            border-radius: 6px;
            font-size: 14px;
            transition: background-color 0.2s;
            font-weight: 500;
        }
        
        .btn-back:hover {
            background-color: var(--gray);
        }
        
        .detail-content {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 40px;
            margin-bottom: 60px;
            align-items: start;
        }
        
        @media (max-width: 768px) {
            .detail-content {
                grid-template-columns: 1fr;
                gap: 30px;
            }
            
            .screenshot-large {
                order: -1;
            }
        }
        
        .screenshot-large {
            background-color: var(--light-gray);
            border-radius: var(--radius);
            overflow: hidden;
            height: auto;
            min-height: 500px;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: var(--shadow);
            padding: 20px;
            background: 
                linear-gradient(45deg, var(--light-gray) 25%, transparent 25%), 
                linear-gradient(-45deg, var(--light-gray) 25%, transparent 25%), 
                linear-gradient(45deg, transparent 75%, var(--light-gray) 75%), 
                linear-gradient(-45deg, transparent 75%, var(--light-gray) 75%);
            background-size: 20px 20px;
            background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
        }

        .screenshot-large img {
            width: 100%;
            height: auto;
            max-width: 100%;
            object-fit: contain;
            border-radius: 8px;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
            border: 1px solid var(--gray);
        }

        /* Untuk desktop - gambar lebih besar */
        @media (min-width: 768px) {
            .screenshot-large {
                min-height: 600px;
            }
            
            .screenshot-large img {
                max-width: 90%;
            }
        }

        /* Untuk mobile - optimasi tampilan */
        @media (max-width: 767px) {
            .screenshot-large {
                min-height: 400px;
                padding: 15px;
            }
            
            .screenshot-large img {
                max-width: 95%;
            }
        }
        
        .detail-info h2 {
            font-size: 28px;
            margin-bottom: 25px;
            color: var(--secondary);
        }
        
        .detail-section-content {
            margin-bottom: 25px;
        }
        
        .detail-section-content h3 {
            font-size: 18px;
            margin-bottom: 12px;
            color: var(--secondary);
            display: flex;
            align-items: center;
            gap: 8px;
        }
        
        .filter-logic {
            background-color: var(--light-gray);
            padding: 18px;
            border-radius: var(--radius);
            font-family: 'Consolas', monospace;
            white-space: pre-line;
            line-height: 1.8;
            font-size: 14px;
            border-left: 4px solid var(--primary);
        }
        
        /* FOOTER KECIL */
        footer {
            background-color: var(--light-gray);
            padding: 20px 0;
            text-align: center;
            margin-top: 40px;
            border-radius: var(--radius);
        }
        
        .footer-content {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 8px;
        }
        
        .footer-logo {
            font-size: 16px;
            font-weight: 700;
            color: var(--primary);
        }
        
        .footer-text {
            font-size: 12px;
            color: var(--dark-gray);
            max-width: 500px;
        }
        
        /* YPC BADGE */
        .ypc-badge {
            position: absolute;
            top: 12px;
            right: 12px;
            background-color: var(--primary);
            color: white;
            padding: 5px 10px;
            border-radius: 20px;
            font-size: 12px;
            font-weight: 600;
        }

        /* Responsive */
        @media (max-width: 768px) {
            .grid-gallery {
                grid-template-columns: 1fr;
            }

            .filter-tabs {
                gap: 8px;
            }
            
            .filter-tab {
                padding: 10px 20px;
                font-size: 13px;
            }
        }

        /* HEADER ACTIONS */
        .header-actions {
            margin-top: 20px;
        }

        .analysis-header-btn {
            background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
            color: white;
            border: none;
            padding: 12px 24px;
            border-radius: 25px;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
            display: inline-flex;
            align-items: center;
            gap: 8px;
            box-shadow: 0 4px 12px rgba(0, 177, 79, 0.3);
        }

        .analysis-header-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 20px rgba(0, 177, 79, 0.4);
        }

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

       
        /* ANALYSIS MODAL - DEFAULT SIZE */
        .analysis-modal {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.5);
            z-index: 1000;
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        .analysis-modal.active {
            display: flex;
            justify-content: center;
            align-items: center;
            opacity: 1;
        }

        .modal-content {
            background: white;
            border-radius: 8px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
            width: 700px;
            max-height: 80vh;
            overflow-y: auto;
            transform: scale(0.9);
            opacity: 0;
            transition: all 0.3s ease;
        }

        .analysis-modal.active .modal-content {
            transform: scale(1);
            opacity: 1;
        }

        .modal-header {
            padding: 20px 25px;
            border-bottom: none; /* Hapus border bawah */
            display: flex;
            justify-content: space-between;
            align-items: center;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            border-radius: 8px 8px 0 0;
            position: relative;
            overflow: hidden;
        }

        .modal-header::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="50" cy="50" r="1" fill="rgba(255,255,255,0.1)"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');
            opacity: 0.3;
        }

        .modal-title {
            font-size: 20px;
            font-weight: 700;
            color: white;
            display: flex;
            align-items: center;
            gap: 12px;
            margin: 0;
            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
        }

        .modal-icon {
            font-size: 24px;
            filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.2));
        }

        .close-modal {
            background: rgba(255, 255, 255, 0.15);
            border: none;
            font-size: 20px;
            color: white;
            cursor: pointer;
            padding: 8px;
            border-radius: 50%;
            transition: all 0.3s ease;
            width: 36px;
            height: 36px;
            display: flex;
            align-items: center;
            justify-content: center;
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.2);
        }

        .close-modal:hover {
            background: rgba(255, 255, 255, 0.25);
            transform: rotate(90deg);
            border-color: rgba(255, 255, 255, 0.3);
        }

        .modal-body {
            padding: 20px;
        }

        /* Stock Input Section */
        .stock-input-section {
            margin-bottom: 20px;
        }

        .modal-subtitle {
            color: #666;
            text-align: center;
            margin-bottom: 16px;
            font-size: 14px;
            line-height: 1.4;
        }

        .stock-input-group {
            display: flex;
            gap: 10px;
            margin-bottom: 15px;
        }

        .stock-input {
            flex: 1;
            padding: 12px 16px;
            border: 1px solid #ddd;
            border-radius: 6px;
            font-size: 14px;
            font-weight: 500;
            text-transform: uppercase;
            transition: all 0.2s ease;
            font-family: inherit;
            background: white;
        }

        .stock-input:focus {
            outline: none;
            border-color: #00B14F;
            box-shadow: 0 0 0 2px rgba(0, 177, 79, 0.1);
        }

        .stock-input::placeholder {
            text-transform: none;
            color: #999;
            font-weight: normal;
        }

        .analyze-btn {
            padding: 12px 20px;
            background: #00B14F;
            color: white;
            border: none;
            border-radius: 6px;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s ease;
            display: flex;
            align-items: center;
            gap: 8px;
            min-width: 120px;
            justify-content: center;
            font-family: inherit;
        }

        .analyze-btn:hover:not(:disabled) {
            background: #009E45;
        }

        .analyze-btn:disabled {
            background: #ccc;
            cursor: not-allowed;
        }

        /* Loading Spinner */
        .loading-spinner {
            display: flex;
            align-items: center;
        }

        .spinner {
            width: 16px;
            height: 16px;
            border: 2px solid transparent;
            border-top: 2px solid white;
            border-radius: 50%;
            animation: spin 1s linear infinite;
        }

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

        /* ANALYSIS RESULT - DEFAULT STYLING */
        .analysis-result {
            margin-top: 20px;
            animation: fadeIn 0.3s ease;
        }

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

        .analysis-result-content {
            display: flex;
            flex-direction: column;
            gap: 16px;
        }

        /* HEADER */
        .analysis-header-compact {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 16px;
            background: #f8f9fa;
            border-radius: 6px;
            border: 1px solid #e5e5e5;
        }

        .stock-info-compact {
            display: flex;
            flex-direction: column;
            gap: 4px;
        }

        .stock-symbol-compact {
            font-size: 20px;
            font-weight: 700;
            color: #333;
        }

        .stock-name-compact {
            font-size: 14px;
            color: #666;
        }

        .stock-sector-compact {
            font-size: 12px;
            color: #999;
        }

        .recommendation-badge-compact {
            padding: 6px 12px;
            border-radius: 20px;
            font-weight: 600;
            font-size: 12px;
        }

        .badge-buy {
            background: #d4edda;
            color: #155724;
            border: 1px solid #c3e6cb;
        }

        .badge-sell {
            background: #f8d7da;
            color: #721c24;
            border: 1px solid #f1b0b7;
        }

        .badge-hold {
            background: #fff3cd;
            color: #856404;
            border: 1px solid #ffeaa7;
        }

        /* PRICE SECTION */
        .price-section-compact {
            text-align: center;
            padding: 16px;
            background: white;
            border-radius: 6px;
            border: 1px solid #e5e5e5;
        }

        .current-price {
            font-size: 28px;
            font-weight: 700;
            color: #333;
            margin-bottom: 8px;
        }

        .price-change {
            font-size: 16px;
            font-weight: 600;
            margin-bottom: 12px;
        }

        .price-change.positive {
            color: #28a745;
        }

        .price-change.negative {
            color: #dc3545;
        }

        .price-details {
            display: flex;
            justify-content: center;
            gap: 20px;
            font-size: 12px;
            color: #666;
        }

        /* VALUATION SECTION */
        .valuation-section {
            padding: 16px;
            background: white;
            border-radius: 6px;
            border: 1px solid #e5e5e5;
        }

        .valuation-title {
            font-size: 16px;
            font-weight: 600;
            color: #333;
            margin-bottom: 12px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .valuation-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 10px;
        }

        .valuation-item {
            padding: 12px;
            border-radius: 6px;
            text-align: center;
            border: 1px solid #e5e5e5;
            background: #f8f9fa;
        }

        .valuation-item.undervalued {
            border-color: #28a745;
            background: #d4edda;
        }

        .valuation-item.overvalued {
            border-color: #dc3545;
            background: #f8d7da;
        }

        .valuation-label {
            font-size: 11px;
            color: #666;
            font-weight: 600;
            text-transform: uppercase;
            margin-bottom: 4px;
        }

        .valuation-value {
            font-size: 16px;
            font-weight: 700;
            color: #333;
            margin-bottom: 4px;
        }

        .valuation-value.good {
            color: #28a745;
        }

        .valuation-value.bad {
            color: #dc3545;
        }

        .valuation-diff {
            font-size: 12px;
            font-weight: 600;
        }

        .valuation-desc {
            font-size: 11px;
            color: #666;
        }

        /* LEVELS SECTION */
        .levels-section {
            padding: 16px;
            background: white;
            border-radius: 6px;
            border: 1px solid #e5e5e5;
        }

        .levels-title {
            font-size: 16px;
            font-weight: 600;
            color: #333;
            margin-bottom: 12px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .levels-grid {
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .level-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 10px 12px;
            border-radius: 6px;
            border: 1px solid;
        }

        .level-item.resistance {
            border-color: #dc3545;
            background: #f8d7da;
        }

        .level-item.support {
            border-color: #28a745;
            background: #d4edda;
        }

        .level-item.current {
            border-color: #007bff;
            background: #cce7ff;
        }

        .level-label {
            font-size: 13px;
            font-weight: 600;
            color: #333;
        }

        .level-price {
            font-size: 14px;
            font-weight: 700;
            color: #333;
        }

        .level-change {
            font-size: 12px;
            font-weight: 600;
            padding: 2px 8px;
            border-radius: 12px;
            background: rgba(255, 255, 255, 0.7);
        }

        /* TARGETS SECTION */
        .targets-section {
            padding: 16px;
            background: white;
            border-radius: 6px;
            border: 1px solid #e5e5e5;
        }

        .targets-title {
            font-size: 16px;
            font-weight: 600;
            color: #333;
            margin-bottom: 12px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .targets-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 10px;
        }

        .target-item {
            padding: 12px;
            border-radius: 6px;
            text-align: center;
            border: 1px solid;
        }

        .target-item.conservative {
            border-color: #28a745;
            background: #d4edda;
        }

        .target-item.moderate {
            border-color: #ffc107;
            background: #fff3cd;
        }

        .target-item.aggressive {
            border-color: #dc3545;
            background: #f8d7da;
        }

        .target-item.stoploss {
            border-color: #6c757d;
            background: #e9ecef;
        }

        .target-label {
            font-size: 12px;
            font-weight: 600;
            color: #333;
            margin-bottom: 6px;
        }

        .target-price {
            font-size: 16px;
            font-weight: 700;
            color: #333;
            margin-bottom: 4px;
        }

        .target-change {
            font-size: 14px;
            font-weight: 600;
            margin-bottom: 4px;
        }

        .target-desc {
            font-size: 11px;
            color: #666;
        }

        /* TECHNICAL SECTION */
        .technical-section {
            padding: 16px;
            background: white;
            border-radius: 6px;
            border: 1px solid #e5e5e5;
        }

        .technical-title {
            font-size: 16px;
            font-weight: 600;
            color: #333;
            margin-bottom: 12px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .technical-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 10px;
        }

        .signal-item {
            padding: 12px;
            border-radius: 6px;
            text-align: center;
            border-left: 3px solid;
            background: #f8f9fa;
        }

        .signal-item.strong-buy { border-left-color: #28a745; background: #d4edda; }
        .signal-item.buy { border-left-color: #20c997; background: #d1f2eb; }
        .signal-item.neutral { border-left-color: #ffc107; background: #fff3cd; }
        .signal-item.sell { border-left-color: #fd7e14; background: #ffe5d0; }
        .signal-item.strong-sell { border-left-color: #dc3545; background: #f8d7da; }

        .signal-name {
            font-size: 11px;
            color: #666;
            font-weight: 600;
            text-transform: uppercase;
            margin-bottom: 4px;
        }

        .signal-value {
            font-size: 16px;
            font-weight: 700;
            color: #333;
            margin-bottom: 4px;
        }

        .signal-indicator {
            font-size: 11px;
            font-weight: 600;
            padding: 2px 6px;
            border-radius: 10px;
            display: inline-block;
        }

        /* QUALITY SECTION */
        .quality-section {
            padding: 16px;
            background: white;
            border-radius: 6px;
            border: 1px solid #e5e5e5;
        }

        .quality-title {
            font-size: 16px;
            font-weight: 600;
            color: #333;
            margin-bottom: 12px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .quality-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 10px;
        }

        .quality-item {
            padding: 12px;
            border-radius: 6px;
            border: 1px solid #e5e5e5;
            background: #f8f9fa;
        }

        .quality-item.excellent { border-color: #28a745; background: #d4edda; }
        .quality-item.good { border-color: #20c997; background: #d1f2eb; }
        .quality-item.poor { border-color: #dc3545; background: #f8d7da; }

        .quality-label {
            font-size: 12px;
            font-weight: 600;
            color: #333;
            margin-bottom: 8px;
        }

        .quality-score {
            font-size: 16px;
            font-weight: 700;
            color: #333;
            margin-bottom: 8px;
        }

        .quality-bar {
            height: 6px;
            background: #e5e5e5;
            border-radius: 3px;
            overflow: hidden;
        }

        .quality-fill {
            height: 100%;
            border-radius: 3px;
            transition: width 0.5s ease;
        }

        .quality-item.excellent .quality-fill { background: #28a745; }
        .quality-item.good .quality-fill { background: #20c997; }
        .quality-item.poor .quality-fill { background: #dc3545; }

        /* RISK SECTION */
        .risk-section {
            padding: 16px;
            background: white;
            border-radius: 6px;
            border: 1px solid #e5e5e5;
        }

        .risk-title {
            font-size: 16px;
            font-weight: 600;
            color: #333;
            margin-bottom: 12px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .risk-content {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px;
        }

        .risk-level {
            padding: 12px;
            background: #f8f9fa;
            border-radius: 6px;
        }

        .risk-label {
            font-size: 14px;
            font-weight: 600;
            color: #333;
            margin-bottom: 10px;
            text-align: center;
        }

        .risk-meter {
            margin-bottom: 8px;
        }

        .risk-track {
            height: 8px;
            background: linear-gradient(90deg, #28a745, #ffc107, #dc3545);
            border-radius: 4px;
            position: relative;
            margin-bottom: 6px;
        }

        .risk-fill {
            height: 100%;
            background: rgba(255, 255, 255, 0.3);
            border-radius: 4px;
        }

        .risk-marker {
            position: absolute;
            top: -2px;
            width: 12px;
            height: 12px;
            background: white;
            border: 2px solid #333;
            border-radius: 50%;
            transform: translateX(-50%);
        }

        .risk-labels {
            display: flex;
            justify-content: space-between;
            font-size: 10px;
            color: #666;
            font-weight: 600;
        }

        .risk-factors {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }

        .risk-factor {
            padding: 8px 10px;
            border-radius: 4px;
            font-size: 12px;
            font-weight: 600;
            text-align: center;
        }

        .risk-factor.high { background: #f8d7da; color: #721c24; }
        .risk-factor.medium { background: #fff3cd; color: #856404; }
        .risk-factor.low { background: #d4edda; color: #155724; }

        /* STRATEGY SECTION */
        .strategy-section {
            padding: 16px;
            background: white;
            border-radius: 6px;
            border: 1px solid #e5e5e5;
        }

        .strategy-title {
            font-size: 16px;
            font-weight: 600;
            color: #333;
            margin-bottom: 12px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .strategy-content {
            display: flex;
            flex-direction: column;
            gap: 10px;
        }

        .strategy-item {
            padding: 12px;
            background: #f8f9fa;
            border-radius: 6px;
            border-left: 3px solid #007bff;
            font-size: 13px;
            line-height: 1.4;
        }

        .strategy-item strong {
            color: #333;
            display: block;
            margin-bottom: 4px;
        }

        /* ===== TRADE ANALYSIS SECTION ===== */
        .trade-analysis-section {
            background: #fff;
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            padding: 18px;
            box-shadow: 0 4px 12px rgba(0,0,0,0.04);
        }

        .trade-analysis-header {
            margin-bottom: 16px;
        }

        .trade-analysis-title {
            font-size: 18px;
            font-weight: 700;
            color: #1f2937;
            margin-bottom: 4px;
        }

        .trade-analysis-subtitle {
            font-size: 13px;
            color: #6b7280;
        }

        .trade-analysis-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 16px;
        }

        .trade-card {
            background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
            border: 1px solid #e5e7eb;
            border-radius: 14px;
            padding: 16px;
            box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
            transition: all 0.25s ease;
        }

        .trade-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 14px 30px rgba(15, 23, 42, 0.08);
        }

        .trade-card-top {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 12px;
            margin-bottom: 14px;
        }

        .trade-card-kicker {
            font-size: 12px;
            font-weight: 700;
            color: #6b7280;
            text-transform: uppercase;
            letter-spacing: 0.4px;
            margin-bottom: 6px;
        }

        .trade-card-bias {
            display: inline-flex;
            align-items: center;
            padding: 7px 12px;
            border-radius: 999px;
            font-size: 13px;
            font-weight: 700;
            border: 1px solid transparent;
        }

        .trade-bullish {
            background: #dcfce7;
            color: #166534;
            border-color: #86efac;
        }

        .trade-neutral {
            background: #fef3c7;
            color: #92400e;
            border-color: #fcd34d;
        }

        .trade-bearish {
            background: #fee2e2;
            color: #991b1b;
            border-color: #fca5a5;
        }

        .trade-score {
            min-width: 84px;
            text-align: center;
            padding: 10px 12px;
            border-radius: 12px;
            border: 1px solid #e5e7eb;
            background: #fff;
        }

        .trade-score-label {
            display: block;
            font-size: 11px;
            color: #6b7280;
            font-weight: 600;
            text-transform: uppercase;
            margin-bottom: 4px;
        }

        .trade-score-value {
            display: block;
            font-size: 18px;
            font-weight: 800;
            line-height: 1;
        }

        .score-good {
            background: #ecfdf5;
            border-color: #a7f3d0;
            color: #065f46;
        }

        .score-mid {
            background: #fffbeb;
            border-color: #fde68a;
            color: #92400e;
        }

        .score-bad {
            background: #fef2f2;
            border-color: #fecaca;
            color: #991b1b;
        }

        .trade-card-body {
            display: flex;
            flex-direction: column;
            gap: 12px;
        }

        .trade-block {
            background: #ffffff;
            border: 1px solid #edf2f7;
            border-radius: 12px;
            padding: 12px;
        }

        .trade-risk-block {
            background: linear-gradient(180deg, #fff7f7 0%, #ffffff 100%);
        }

        .trade-target-block {
            background: linear-gradient(180deg, #f5fff8 0%, #ffffff 100%);
        }

        .trade-block-title {
            font-size: 13px;
            font-weight: 700;
            color: #374151;
            margin-bottom: 10px;
        }

        .trade-metric-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px;
        }

        .trade-metric-grid-3 {
            grid-template-columns: repeat(3, minmax(0, 1fr));
        }

        .trade-metric {
            background: #f8fafc;
            border-radius: 10px;
            padding: 10px;
            border: 1px solid #eef2f7;
        }

        .trade-single-line {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 10px;
            background: #f8fafc;
            border-radius: 10px;
            padding: 10px 12px;
            border: 1px solid #eef2f7;
        }

        .trade-metric-label {
            display: block;
            font-size: 11px;
            color: #6b7280;
            font-weight: 600;
            margin-bottom: 4px;
            text-transform: uppercase;
            letter-spacing: 0.3px;
        }

        .trade-metric-value {
            display: block;
            font-size: 15px;
            font-weight: 800;
            color: #111827;
        }

        .trade-metric-value.success {
            color: #15803d;
        }

        .trade-metric-value.danger {
            color: #dc2626;
        }

        @media (max-width: 900px) {
            .trade-analysis-grid {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 640px) {
            .trade-metric-grid,
            .trade-metric-grid-3 {
                grid-template-columns: 1fr;
            }

            .trade-card-top {
                flex-direction: column;
                align-items: flex-start;
            }

            .trade-score {
                width: 100%;
                text-align: left;
            }
        }

        /* TIMING SECTION */
        .timing-section {
            padding: 16px;
            background: white;
            border-radius: 6px;
            border: 1px solid #e5e5e5;
        }

        .timing-title {
            font-size: 16px;
            font-weight: 600;
            color: #333;
            margin-bottom: 12px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .timing-content {
            text-align: center;
        }

        .timing-item {
            padding: 16px;
            border-radius: 6px;
            border: 1px solid;
        }

        .timing-item.good { border-color: #28a745; background: #d4edda; }
        .timing-item.neutral { border-color: #ffc107; background: #fff3cd; }
        .timing-item.bad { border-color: #dc3545; background: #f8d7da; }

        .timing-score {
            font-size: 20px;
            font-weight: 700;
            color: #333;
            margin-bottom: 6px;
        }

        .timing-recommendation {
            font-size: 14px;
            font-weight: 600;
            color: #666;
        }

        /* ERROR MESSAGE */
        .error-message-compact {
            background: #f8d7da;
            color: #721c24;
            padding: 16px;
            border-radius: 6px;
            text-align: center;
            border: 1px solid #f1b0b7;
            font-size: 14px;
            font-weight: 600;
        }

        .error-message-compact strong {
            font-size: 16px;
            display: block;
            margin-bottom: 8px;
        }

        /* RESPONSIVE */
        @media (max-width: 600px) {
            .modal-content {
                width: 95%;
                margin: 10px;
            }
            
            .analysis-result-content {
                gap: 12px;
            }
            
            .technical-grid,
            .valuation-grid,
            .targets-grid,
            .quality-grid {
                grid-template-columns: 1fr;
            }
            
            .risk-content {
                grid-template-columns: 1fr;
            }
            
            .price-details {
                flex-direction: column;
                gap: 4px;
            }
            
            .stock-input-group {
                flex-direction: column;
            }
        }

        /* SCROLLBAR */
        .modal-content::-webkit-scrollbar {
            width: 6px;
        }

        .modal-content::-webkit-scrollbar-track {
            background: #f1f1f1;
            border-radius: 3px;
        }

        .modal-content::-webkit-scrollbar-thumb {
            background: #c1c1c1;
            border-radius: 3px;
        }

        .modal-content::-webkit-scrollbar-thumb:hover {
            background: #a8a8a8;
        }


        /* Simple Elegant Login Screen */
        .login-screen {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: #ffffff;
            display: flex;
            justify-content: center;
            align-items: center;
            z-index: 1000;
            font-family: 'Segoe UI', system-ui, sans-serif;
        }

        .login-box {
            background: linear-gradient(135deg, #00B14F 0%, #009E45 100%);
            padding: 50px 40px;
            border-radius: 16px;
            box-shadow: 0 15px 50px rgba(0, 177, 79, 0.25);
            width: 100%;
            max-width: 380px;
            text-align: center;
            border: none;
            position: relative;
            overflow: hidden;
        }

        /* Optional: Tambahkan efek subtle pattern */
        .login-box::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: 
                radial-gradient(circle at 20% 80%, rgba(255,255,255,0.1) 0%, transparent 50%),
                radial-gradient(circle at 80% 20%, rgba(255,255,255,0.05) 0%, transparent 50%);
            pointer-events: none;
        }

        .login-box h2 {
            color: #ffffff;
            font-size: 24px;
            font-weight: 700;
            margin-bottom: 8px;
            position: relative;
        }

        .login-box p {
            color: rgba(255, 255, 255, 0.9);
            font-size: 14px;
            margin-bottom: 30px;
            font-weight: 500;
            position: relative;
        }

        .login-input {
            width: 100%;
            padding: 16px 20px;
            border: 2px solid rgba(255, 255, 255, 0.3);
            border-radius: 10px;
            font-size: 15px;
            font-weight: 500;
            background: rgba(255, 255, 255, 0.95);
            transition: all 0.3s ease;
            margin-bottom: 20px;
            color: #333;
            position: relative;
        }

        .login-input:focus {
            outline: none;
            border-color: #ffffff;
            box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.2);
            background: #ffffff;
        }

        .login-input::placeholder {
            color: #999;
        }

        .login-btn {
            width: 100%;
            padding: 16px;
            background: #ffffff;
            color: #00B14F;
            border: none;
            border-radius: 10px;
            font-size: 16px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s ease;
            margin-bottom: 10px;
        }

        .login-btn:hover {
            background: #f8f9fa;
            transform: translateY(-1px);
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
        }

        .error-message {
            color: #ff6b6b;
            font-size: 14px;
            font-weight: 500;
            display: none;
            padding: 12px;
            background: rgba(255, 255, 255, 0.9);
            border-radius: 8px;
            border: 1px solid rgba(255, 255, 255, 0.3);
            position: relative;
        }

        /* ===== PREMIUM INSIGHT + VERDICT ===== */
        .insight-verdict-wrap{
            display:grid;
            grid-template-columns: 1.15fr 0.85fr;
            gap:16px;
            margin-top:2px;
        }

        .premium-card{
            position:relative;
            background:linear-gradient(180deg,#ffffff 0%, #fbfcfe 100%);
            border:1px solid #e8edf3;
            border-radius:16px;
            padding:18px;
            box-shadow:0 10px 28px rgba(15, 23, 42, 0.06);
            overflow:hidden;
        }

        .premium-card::before{
            content:'';
            position:absolute;
            top:0;
            left:0;
            right:0;
            height:4px;
            background:linear-gradient(90deg, #00B14F 0%, #0ea5e9 50%, #7c3aed 100%);
            opacity:.95;
        }

        .section-head{
            display:flex;
            align-items:flex-start;
            gap:12px;
            margin-bottom:16px;
        }

        .section-icon{
            width:42px;
            height:42px;
            border-radius:12px;
            display:flex;
            align-items:center;
            justify-content:center;
            font-size:20px;
            background:linear-gradient(135deg, rgba(0,177,79,.12) 0%, rgba(14,165,233,.12) 100%);
            border:1px solid rgba(0,177,79,.15);
            flex-shrink:0;
        }

        .section-kicker{
            font-size:11px;
            font-weight:700;
            letter-spacing:.08em;
            text-transform:uppercase;
            color:#64748b;
            margin-bottom:2px;
        }

        .section-title{
            font-size:18px;
            font-weight:800;
            color:#0f172a;
            line-height:1.2;
        }

        /* Insight cards */
        .insight-summary-grid{
            display:grid;
            grid-template-columns: repeat(2, minmax(0,1fr));
            gap:12px;
        }

        .insight-card{
            border-radius:14px;
            padding:14px;
            border:1px solid #e9eef5;
            background:#fff;
            min-height:96px;
            display:flex;
            flex-direction:column;
            justify-content:space-between;
            box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
        }

        .insight-card-label{
            font-size:11px;
            font-weight:700;
            text-transform:uppercase;
            letter-spacing:.06em;
            color:#64748b;
            margin-bottom:8px;
        }

        .insight-card-value{
            font-size:18px;
            font-weight:800;
            line-height:1.25;
            color:#0f172a;
        }

        .insight-card-text{
            font-size:13px;
            font-weight:600;
            line-height:1.5;
            color:#334155;
        }

        .insight-card-trend{
            background:linear-gradient(180deg,#effaf4 0%, #ffffff 100%);
            border-color:#ccefdc;
        }

        .insight-card-mode{
            background:linear-gradient(180deg,#eef8ff 0%, #ffffff 100%);
            border-color:#d6ebff;
        }

        .insight-card-factor{
            background:linear-gradient(180deg,#fffaf0 0%, #ffffff 100%);
            border-color:#f7e7c1;
        }

        .insight-card-risk{
            background:linear-gradient(180deg,#fff4f4 0%, #ffffff 100%);
            border-color:#ffd9d9;
        }

        /* Verdict */
        .verdict-box{
            display:flex;
            flex-direction:column;
            justify-content:space-between;
        }

        .verdict-buy::before{
            background:linear-gradient(90deg,#16a34a 0%, #22c55e 100%);
        }

        .verdict-hold::before{
            background:linear-gradient(90deg,#f59e0b 0%, #fbbf24 100%);
        }

        .verdict-sell::before{
            background:linear-gradient(90deg,#dc2626 0%, #ef4444 100%);
        }

        .verdict-badge-pill{
            margin-left:auto;
            padding:8px 12px;
            border-radius:999px;
            font-size:12px;
            font-weight:800;
            line-height:1;
            align-self:center;
        }

        .verdict-main-text{
            position:relative;
            font-size:15px;
            line-height:1.7;
            color:#1e293b;
            font-weight:600;
            margin:4px 0 16px;
            padding:14px 14px 14px 16px;
            border-radius:14px;
            background:linear-gradient(180deg,#f8fafc 0%, #ffffff 100%);
            border:1px solid #e9eef5;
        }

        .verdict-main-text::before{
            content:'';
            position:absolute;
            top:12px;
            left:0;
            bottom:12px;
            width:4px;
            border-radius:999px;
            background:linear-gradient(180deg,#00B14F 0%, #0ea5e9 100%);
        }

        .verdict-highlight-row{
            display:grid;
            grid-template-columns: repeat(2, minmax(0,1fr));
            gap:12px;
            margin-bottom:14px;
        }

        .verdict-highlight-item{
            background:#fff;
            border:1px solid #e8edf3;
            border-radius:12px;
            padding:12px;
            display:flex;
            flex-direction:column;
            gap:6px;
        }

        .verdict-highlight-label{
            font-size:11px;
            font-weight:700;
            text-transform:uppercase;
            letter-spacing:.06em;
            color:#64748b;
        }

        .verdict-highlight-value{
            font-size:15px;
            font-weight:800;
            color:#0f172a;
        }

        .verdict-footer-note{
            font-size:12px;
            line-height:1.55;
            color:#64748b;
            background:#f8fafc;
            border:1px dashed #d9e3ee;
            padding:12px 14px;
            border-radius:12px;
        }

        /* Responsive */
        @media (max-width: 980px){
            .insight-verdict-wrap{
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 640px){
            .insight-summary-grid,
            .verdict-highlight-row{
                grid-template-columns: 1fr;
            }

            .section-head{
                flex-wrap:wrap;
            }

            .verdict-badge-pill{
                margin-left:0;
            }

            .insight-card-value{
                font-size:16px;
            }

            .verdict-main-text{
                font-size:14px;
            }
        }