        * { margin: 0; padding: 0; box-sizing: border-box; }
        html, body { overflow-x: hidden; }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            padding: 20px;
            color: #333;
        }

        .container {
            max-width: 1200px;
            margin: 0 auto;
            width: 100%;
        }

        header {
            background: white;
            border-radius: 12px;
            padding: 15px 20px;
            margin-bottom: 20px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        }

        .back-link {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            color: #667eea;
            text-decoration: none;
            font-weight: 500;
            font-size: 0.95em;
            margin-bottom: 10px;
        }
        .back-link:hover { text-decoration: underline; }

        .tag-header {
            display: flex;
            align-items: center;
            gap: 12px;
            flex-wrap: wrap;
        }

        h1 {
            font-size: 1.8em;
            color: #333;
        }

        .tag-badge {
            display: inline-block;
            padding: 6px 16px;
            border-radius: 20px;
            font-size: 1em;
            font-weight: bold;
        }

        .tag-badge-app { background: #cce5ff; color: #004085; }
        .tag-badge-threatactor { background: #f8d7da; color: #721c24; }

        .article-count {
            color: #666;
            font-size: 0.95em;
            margin-top: 6px;
        }

        .articles-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
            gap: 15px;
            margin-bottom: 30px;
            min-width: 0;
        }

        .article-card {
            background: white;
            border-radius: 12px;
            padding: 15px;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
            transition: transform 0.3s, box-shadow 0.3s;
            cursor: pointer;
            display: flex;
            flex-direction: column;
            min-width: 0;
            overflow: hidden;
        }

        .article-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 12px rgba(0, 0, 0, 0.15);
        }

        .article-header {
            display: flex;
            justify-content: space-between;
            align-items: start;
            gap: 8px;
            margin-bottom: 8px;
        }

        .article-title {
            font-size: 1.1em;
            font-weight: bold;
            color: #333;
            flex: 1;
            line-height: 1.3;
        }

        .badge {
            display: inline-block;
            padding: 5px 12px;
            border-radius: 20px;
            font-size: 0.8em;
            font-weight: bold;
            white-space: nowrap;
        }

        .badge-app { background: #cce5ff; color: #004085; }
        .badge-threatactor { background: #f8d7da; color: #721c24; }

        .badge-clickable {
            cursor: pointer;
            transition: opacity 0.2s, transform 0.1s;
            text-decoration: none;
        }
        .badge-clickable:hover { opacity: 0.8; transform: scale(1.05); }

        .relevance-bar { width: 100%; height: 6px; background: #eee; border-radius: 3px; overflow: hidden; }
        .relevance-fill { height: 100%; border-radius: 3px; }

        .loading { text-align: center; padding: 60px 20px; color: white; font-size: 1.2em; }
        .error { background: #f8d7da; color: #721c24; padding: 15px; border-radius: 8px; margin-bottom: 20px; display: none; }
        .empty-state { text-align: center; padding: 60px 20px; color: white; }
        .empty-state h2 { margin-bottom: 10px; }

        /* Modal */
        .modal-overlay {
            display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(0,0,0,0.6); z-index: 1000; justify-content: center; align-items: center; padding: 20px;
        }
        .modal-overlay.active { display: flex; }
        .modal {
            background: white; border-radius: 16px; max-width: 700px; width: 100%;
            max-height: 90vh; overflow-y: auto; box-shadow: 0 20px 60px rgba(0,0,0,0.3);
        }
        .modal-header {
            padding: 20px; border-bottom: 1px solid #eee; display: flex;
            justify-content: space-between; align-items: start; gap: 15px; position: sticky;
            top: 0; background: white; border-radius: 16px 16px 0 0; z-index: 1;
        }
        .modal-header h2 { flex: 1; font-size: 1.2em; color: #333; line-height: 1.3; }
        .modal-close {
            background: none; border: none; font-size: 1.5em; cursor: pointer;
            color: #999; padding: 0; line-height: 1;
        }
        .modal-close:hover { color: #333; }
        .modal-body { padding: 20px; }
        .modal-footer {
            padding: 15px 20px; border-top: 1px solid #eee; display: flex;
            justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap;
        }

        @media (max-width: 768px) {
            body { padding: 10px; }
            h1 { font-size: 1.4em; }
            .modal { max-height: 95vh; border-radius: 16px 16px 0 0; align-self: flex-end; }
            .badge { font-size: 0.7em; padding: 4px 8px; }
        }
