:root {
    --bg: #0e1116;
    --bg-2: #161b22;
    --bg-3: #1c232d;
    --border: #2a323d;
    --text: #e6edf3;
    --text-2: #8b949e;
    --text-3: #6e7681;
    --accent: #4b9dfa;
    --accent-2: #58a6ff;
    --success: #3fb950;
    --warn: #d29922;
    --danger: #f85149;
    --ai: #bc8cff;
    --radius: 8px;
    --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
}

* { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
    background: var(--bg);
    color: var(--text);
    font-family: var(--font);
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

.wrap {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
}

a { color: var(--accent-2); text-decoration: none; }
a:hover { text-decoration: underline; }

.hero {
    background: linear-gradient(180deg, var(--bg-2) 0%, var(--bg) 100%);
    border-bottom: 1px solid var(--border);
    padding: 40px 0 32px;
}
.hero.compact { padding: 24px 0 20px; }
.hero h1 {
    margin: 12px 0 4px;
    font-size: 32px;
    font-weight: 700;
    letter-spacing: -0.02em;
}
.hero.compact h1 { font-size: 24px; }
.hero .tagline {
    color: var(--text-2);
    margin: 0;
    font-size: 15px;
}
.back {
    display: inline-block;
    font-size: 13px;
    color: var(--text-3);
    margin-bottom: 8px;
}

main { padding: 32px 0 80px; }

.card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 20px 24px;
    margin-bottom: 20px;
}
.card h2, .card h3 {
    margin: 0 0 16px;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.01em;
}
.card h2 { font-size: 18px; }

.grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}
.grid-2 .card { margin-bottom: 0; }
@media (max-width: 900px) { .grid-2 { grid-template-columns: 1fr; } }

.field {
    display: block;
    margin-bottom: 16px;
}
.field span {
    display: block;
    font-size: 13px;
    color: var(--text-2);
    margin-bottom: 6px;
}
input[type=text] {
    width: 100%;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--text);
    padding: 10px 12px;
    font-family: var(--font);
    font-size: 14px;
}
input[type=text]:focus {
    outline: none;
    border-color: var(--accent);
}

.dropzone {
    border: 2px dashed var(--border);
    border-radius: var(--radius);
    padding: 32px;
    text-align: center;
    background: var(--bg);
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    margin-bottom: 16px;
}
.dropzone.dragover {
    border-color: var(--accent);
    background: var(--bg-3);
}
.dropzone-icon {
    font-size: 32px;
    color: var(--text-3);
    margin-bottom: 12px;
}
.dropzone p { margin: 6px 0; }
.dropzone .hint {
    color: var(--text-3);
    font-size: 13px;
}
.file-list {
    list-style: none;
    padding: 0;
    margin: 16px 0 0;
    text-align: left;
}
.file-list li {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 8px 12px;
    margin-bottom: 6px;
    font-family: var(--mono);
    font-size: 13px;
    display: flex;
    justify-content: space-between;
}
.file-list .size { color: var(--text-3); }

.btn {
    display: inline-block;
    background: var(--bg-3);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 10px 18px;
    font-family: var(--font);
    font-size: 14px;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s;
}
.btn:hover { background: var(--border); text-decoration: none; }
.btn.primary {
    background: var(--accent);
    color: white;
    border-color: var(--accent);
}
.btn.primary:hover { background: var(--accent-2); border-color: var(--accent-2); }
.btn.primary:disabled { opacity: 0.4; cursor: not-allowed; }
.btn.small { padding: 4px 10px; font-size: 12px; }
.btn.danger { background: transparent; color: var(--danger); border-color: rgba(248,81,73,0.3); }
.btn.danger:hover { background: rgba(248,81,73,0.1); }

.export-buttons { display: flex; gap: 10px; flex-wrap: wrap; }

.alert {
    padding: 12px 16px;
    border-radius: 6px;
    margin-bottom: 20px;
    font-size: 14px;
}
.alert.error { background: rgba(248,81,73,0.1); border: 1px solid rgba(248,81,73,0.3); color: #ffa198; }

.empty {
    color: var(--text-3);
    text-align: center;
    padding: 32px 0;
    font-style: italic;
}

.table-wrap { overflow-x: auto; }
table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
th, td {
    text-align: left;
    padding: 10px 12px;
    border-bottom: 1px solid var(--border);
}
th {
    background: var(--bg);
    color: var(--text-2);
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
tbody tr:hover { background: var(--bg-3); }
td.small, .small { font-size: 12px; color: var(--text-2); }
td.num { text-align: right; font-family: var(--mono); }

.badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    background: var(--bg-3);
    color: var(--text-2);
    border: 1px solid var(--border);
}
.badge.fmt-combined { color: #3fb950; border-color: rgba(63,185,80,0.3); }
.badge.fmt-common { color: #58a6ff; border-color: rgba(88,166,255,0.3); }
.badge.fmt-iis { color: #d29922; border-color: rgba(210,153,34,0.3); }
.badge.fmt-unknown { color: #f85149; border-color: rgba(248,81,73,0.3); }

.badge.cat-search { color: var(--accent-2); border-color: rgba(88,166,255,0.3); }
.badge.cat-ai { color: var(--ai); border-color: rgba(188,140,255,0.3); }
.badge.cat-seo { color: var(--warn); border-color: rgba(210,153,34,0.3); }
.badge.cat-social { color: #3fb950; border-color: rgba(63,185,80,0.3); }
.badge.cat-monitoring { color: var(--text-2); }
.badge.cat-scanner, .badge.cat-malicious { color: var(--danger); border-color: rgba(248,81,73,0.3); }
.badge.cat-tool { color: var(--text-3); }
.badge.cat-feed { color: #79c0ff; }
.badge.cat-archive { color: #a5a5a5; }

.badge.status-2 { color: var(--success); border-color: rgba(63,185,80,0.3); }
.badge.status-3 { color: var(--warn); border-color: rgba(210,153,34,0.3); }
.badge.status-4 { color: var(--danger); border-color: rgba(248,81,73,0.3); }
.badge.status-5 { color: #ff7b72; border-color: rgba(255,123,114,0.4); background: rgba(248,81,73,0.1); }

.kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
    margin-bottom: 24px;
}
.kpi {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.kpi .label {
    font-size: 12px;
    color: var(--text-2);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.kpi .value {
    font-size: 24px;
    font-weight: 700;
    font-family: var(--mono);
    letter-spacing: -0.02em;
}
.kpi.ai .value { color: var(--ai); }
.kpi.warn .value { color: var(--danger); }

.tabs {
    display: flex;
    gap: 4px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--border);
    overflow-x: auto;
}
.tab {
    background: transparent;
    border: none;
    color: var(--text-2);
    padding: 10px 18px;
    font-size: 14px;
    font-family: var(--font);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: color 0.15s, border-color 0.15s;
    white-space: nowrap;
}
.tab:hover { color: var(--text); }
.tab.active {
    color: var(--accent-2);
    border-bottom-color: var(--accent-2);
}

.tab-content { display: none; }
.tab-content.active { display: block; }

.chart { width: 100%; height: 320px; }

.footer {
    padding: 32px 0;
    text-align: center;
    color: var(--text-3);
    font-size: 13px;
    border-top: 1px solid var(--border);
    margin-top: 40px;
}

.mono { font-family: var(--mono); font-size: 13px; }

.url-cell {
    max-width: 400px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: inline-block;
    vertical-align: middle;
    font-family: var(--mono);
    font-size: 13px;
}

.muted { color: var(--text-3); }
.error { color: #f85149; }

.card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}
.card-header h3 { margin: 0; }

.ai-panel {
    background: linear-gradient(135deg, rgba(188, 140, 255, 0.08), rgba(88, 166, 255, 0.06));
    border: 1px solid rgba(188, 140, 255, 0.25);
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 16px;
}
.btn-ai {
    background: linear-gradient(135deg, #bc8cff, #58a6ff);
    color: white;
    border: none;
}
.btn-ai:hover:not(:disabled) { filter: brightness(1.1); }
.btn-ai:disabled { opacity: 0.6; cursor: wait; }
.btn-geo {
    background: #21262d;
    color: var(--text);
    border: 1px solid var(--border);
    padding: 6px 12px;
    font-size: 13px;
}
.btn-geo:hover:not(:disabled) { background: #2a323d; }
.btn-geo:disabled { opacity: 0.6; cursor: wait; }

.ai-answer:empty { display: none; }
.ai-answer { margin-top: 12px; }
.ai-content {
    background: rgba(0, 0, 0, 0.15);
    border-radius: 8px;
    padding: 14px 18px;
    line-height: 1.6;
    font-size: 14px;
}
.ai-content h2, .ai-content h3, .ai-content h4 { margin: 12px 0 6px; }
.ai-content ul { margin: 6px 0 12px 20px; }
.ai-content code {
    background: rgba(255, 255, 255, 0.08);
    padding: 1px 6px;
    border-radius: 4px;
    font-family: var(--mono);
    font-size: 12px;
}
.ai-content p { margin: 6px 0; }

/* ===== Bascule sombre / clair (log-analyzer) ===== */
[data-theme="light"]{
    --bg:#ffffff;--bg-2:#f6f8fa;--bg-3:#eaeef2;--border:#d0d7de;
    --text:#1f2328;--text-2:#656d76;--text-3:#8c959f;
    --accent:#0969da;--accent-2:#218bff;--success:#1a7f37;--warn:#9a6700;--danger:#cf222e;--ai:#8250df;
}
.page-nav,.hero{position:relative;}
.theme-toggle{position:absolute;top:12px;right:16px;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:1px solid var(--border);border-radius:999px;background:var(--bg-2);color:var(--text-2);cursor:pointer;transition:color .15s,border-color .15s,background .15s;z-index:5;}
.theme-toggle:hover{color:var(--text);border-color:var(--accent);}
.theme-toggle svg{width:18px;height:18px;}
.theme-toggle .icon-moon{display:none;}
.theme-toggle .icon-sun{display:block;}
[data-theme="light"] .theme-toggle .icon-moon{display:block;}
[data-theme="light"] .theme-toggle .icon-sun{display:none;}

 /* Entete page-nav harmonisee */ .page-nav{background:linear-gradient(180deg,var(--bg-2) 0%,var(--bg) 100%);border-bottom:1px solid var(--border);padding:16px 0;} .page-nav-inner{max-width:1280px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:20px;} .page-nav a{display:inline-flex;align-items:center;gap:7px;color:var(--text-2);text-decoration:none;font-size:.9rem;font-weight:600;transition:color .15s;} .page-nav a:hover{color:var(--accent-2);} .page-nav .theme-toggle{position:static;top:auto;right:auto;transform:none;order:1;margin-left:auto;}
