/* ============================================================
   DedicaQR — Sprint 27 — Audit Log
   CSS namespace: .aud-*
   ============================================================ */

/* === LAYOUT === */
.aud-page { padding: 24px; max-width: 1500px; margin: 0 auto; color: #1a1a1a; }
.aud-page-head { display: flex; justify-content: space-between; align-items: flex-start;
                 gap: 24px; margin-bottom: 22px; flex-wrap: wrap; }
.aud-title { margin: 0 0 4px; font-family: 'Playfair Display', Georgia, serif;
             color: #C9184A; font-size: 28px; font-weight: 700;
             display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.aud-subtitle { margin: 0; color: #6b6b6b; font-size: 14px; max-width: 800px; }
.aud-breadcrumb { font-size: 12px; color: #999; margin-bottom: 8px; }
.aud-breadcrumb a { color: #6b6b6b; text-decoration: none; }
.aud-breadcrumb a:hover { color: #C9184A; }
.aud-head-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.aud-mono { font-family: 'Courier New', monospace; font-size: 12px;
            background: #FFF1EE; color: #C9184A; padding: 2px 6px; border-radius: 4px; }
.aud-action-label { color: #6b6b6b; font-size: 14px; margin: 6px 0 0; font-style: italic; }
.aud-counter { color: #999; font-size: 14px; font-weight: 400; }
.aud-help { color: #6b6b6b; font-size: 13px; margin: 4px 0 12px; }
.aud-dim { color: #999; }

/* === DROPDOWN === */
.aud-dropdown { position: relative; display: inline-block; }
.aud-dropdown-menu { display: none; position: absolute; right: 0; top: 100%;
    background: #fff; border: 1px solid #FFD6DD; border-radius: 8px;
    box-shadow: 0 4px 12px rgba(201,24,74,0.1); padding: 6px 0; min-width: 140px;
    z-index: 10; margin-top: 4px; }
.aud-dropdown:hover .aud-dropdown-menu,
.aud-dropdown:focus-within .aud-dropdown-menu { display: block; }
.aud-dropdown-menu a { display: block; padding: 8px 16px; color: #1a1a1a;
    text-decoration: none; font-size: 13px; }
.aud-dropdown-menu a:hover { background: #FFF1EE; color: #C9184A; }

/* === DEPS WARNING === */
.aud-deps-warning { background: #FEF3C7; border-left: 4px solid #D4A24C;
    padding: 14px 18px; border-radius: 6px; margin-bottom: 18px; font-size: 13px; }
.aud-deps-warning ul { margin: 6px 0 0 18px; padding: 0; }

/* === QUICK STATS === */
.aud-quick-stats { display: flex; gap: 20px; margin-bottom: 20px; flex-wrap: wrap; }
.aud-quick-block { background: #fff; padding: 12px 16px; border-radius: 10px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05); flex: 1; min-width: 280px; }
.aud-quick-label { font-size: 11px; color: #6b6b6b; text-transform: uppercase;
    letter-spacing: 0.4px; margin-bottom: 6px; }
.aud-result-pills, .aud-severity-pills { display: flex; gap: 6px; flex-wrap: wrap; }

.aud-result-pill, .aud-sev-pill {
    padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 600;
}
.aud-res-success { background: #DCFCE7; color: #166534; }
.aud-res-failure { background: #FEE2E2; color: #991B1B; }
.aud-res-partial { background: #FEF3C7; color: #92400E; }

.aud-sev-critical { background: #6B21A8; color: #fff; }
.aud-sev-error    { background: #FEE2E2; color: #991B1B; }
.aud-sev-warning  { background: #FEF3C7; color: #92400E; }
.aud-sev-notice   { background: #DBEAFE; color: #1E40AF; }
.aud-sev-info     { background: #E5E7EB; color: #4B5563; }
.aud-sev-debug    { background: #F3F4F6; color: #6B7280; }

/* === FILTERS === */
.aud-filters-wrap { background: #fff; border-radius: 10px; padding: 0;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05); margin-bottom: 18px; }
.aud-filters-summary { cursor: pointer; padding: 14px 18px; font-weight: 600;
    color: #C9184A; display: flex; align-items: center; gap: 8px; user-select: none; }
.aud-filters-summary::marker { content: ''; }
.aud-active-count { background: #C9184A; color: #fff; padding: 1px 8px;
    border-radius: 10px; font-size: 11px; margin-left: 8px; }
.aud-filters-form { padding: 0 18px 18px; }
.aud-form-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
    margin-bottom: 12px; }
.aud-form-row label { display: block; font-size: 11px; color: #6b6b6b;
    text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 4px; }
.aud-form-row-wide { grid-column: span 4; }
.aud-form-row-inline { display: inline-flex; flex-direction: column; gap: 4px;
    margin-right: 12px; }
.aud-filters-actions { display: flex; gap: 8px; justify-content: flex-end;
    border-top: 1px solid #FFE4EC; padding-top: 12px; }

/* === RESULT SUMMARY === */
.aud-result-summary { margin: 12px 0; color: #6b6b6b; font-size: 13px; }

/* === TABLE === */
.aud-table-wrap { background: #fff; border-radius: 10px; overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
.aud-table { width: 100%; border-collapse: collapse; }
.aud-table th { background: #FFF1EE; padding: 11px 12px; text-align: left;
    font-size: 11px; font-weight: 600; color: #6b6b6b; text-transform: uppercase;
    letter-spacing: 0.4px; border-bottom: 2px solid #FFD6DD; }
.aud-table td { padding: 10px 12px; border-bottom: 1px solid #FFF1EE; vertical-align: top;
    font-size: 12px; }
.aud-table tbody tr:hover { background: #FFFAFA; }
.aud-id { font-family: monospace; font-size: 11px; color: #999; }
.aud-when { font-family: monospace; font-size: 11px; color: #4b4b4b; }
.aud-action { font-size: 12px; color: #C9184A; background: #FFF1EE;
    padding: 2px 6px; border-radius: 4px; }
.aud-cat-tiny { font-size: 10px; color: #999; margin-top: 2px; }
.aud-actor-type { display: inline-block; padding: 2px 8px; border-radius: 6px;
    font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.4px; }
.aud-at-admin     { background: #6B21A8; color: #fff; }
.aud-at-user      { background: #1E40AF; color: #fff; }
.aud-at-system    { background: #6b6b6b; color: #fff; }
.aud-at-cron      { background: #D4A24C; color: #fff; }
.aud-at-api       { background: #22A052; color: #fff; }
.aud-at-anonymous { background: #E5E7EB; color: #4B5563; }
.aud-actor-label { font-size: 11px; color: #6b6b6b; margin-top: 3px; }
.aud-target-link { color: #1a1a1a; text-decoration: none; }
.aud-target-link:hover { color: #C9184A; }
.aud-target-label { font-size: 10px; color: #999; margin-top: 2px; }
.aud-empty { text-align: center; padding: 40px; color: #999; font-style: italic; }
.aud-empty-box { padding: 24px; text-align: center; color: #999; font-style: italic;
    background: #FFFAFA; border-radius: 8px; border: 1px dashed #FFD6DD; }
.aud-err-snippet { font-size: 10px; color: #991B1B; margin-top: 3px;
    max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Severity row coloring (subtle) */
.aud-sev-row-critical { background: #FCE7F3 !important; }
.aud-sev-row-error    { background: #FEF2F2 !important; }
.aud-sev-row-warning  { background: #FFFBEB !important; }

/* Sev marker (icon container) */
.aud-sev-marker { display: inline-block; margin-right: 4px; font-size: 14px; }
.aud-sev-marker-big { font-size: 32px; line-height: 1; }
.aud-sev-marker.aud-sev-critical { color: #6B21A8; }
.aud-sev-marker.aud-sev-error    { color: #991B1B; }
.aud-sev-marker.aud-sev-warning  { color: #92400E; }
.aud-sev-marker.aud-sev-notice   { color: #1E40AF; }
.aud-sev-marker.aud-sev-info     { color: #6B7280; }

/* Action big in show */
.aud-action-big { font-size: 18px; padding: 6px 12px; color: #C9184A;
    background: #FFF1EE; border-radius: 6px; }
.aud-result-big { padding: 4px 12px; border-radius: 6px; font-size: 14px;
    font-weight: 600; }

/* Result tags */
.aud-result { display: inline-block; padding: 2px 8px; border-radius: 6px;
    font-size: 11px; font-weight: 600; }

/* === PAGINATION === */
.aud-pagination { display: flex; gap: 4px; justify-content: center; margin-top: 20px;
    flex-wrap: wrap; }
.aud-page-link { background: #fff; border: 1px solid #FFD6DD; padding: 6px 12px;
    border-radius: 6px; color: #C9184A; text-decoration: none; font-size: 13px; }
.aud-page-link:hover { background: #FFF1EE; }
.aud-page-link.aud-page-active { background: #C9184A; color: #fff; border-color: #C9184A; }
.aud-page-dots { color: #999; align-self: center; padding: 0 4px; }

/* === SECTIONS === */
.aud-section { background: #fff; padding: 20px; border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05); }
.aud-section-title { margin: 0 0 12px; font-size: 16px; font-weight: 600;
    display: flex; align-items: center; gap: 8px; }
.aud-section-error { background: #FEF2F2; border-left: 4px solid #C9184A; }
.aud-section-wide { grid-column: span 2; }

/* === SHOW GRID === */
.aud-show-grid { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; margin-top: 16px; }
.aud-error-banner { background: #FEE2E2; border-left: 4px solid #C9184A;
    padding: 12px 16px; border-radius: 8px; margin-bottom: 14px;
    font-size: 13px; }
.aud-error-banner code { background: transparent; padding: 0; color: #991B1B; }

.aud-dl dt { font-weight: 600; color: #6b6b6b; font-size: 11px;
    margin-top: 10px; text-transform: uppercase; letter-spacing: 0.4px; }
.aud-dl dd { margin: 3px 0 0; font-size: 13px; }
.aud-url-cell { max-width: 100%; word-break: break-all; display: inline-block; }
.aud-hash { font-size: 10px; word-break: break-all; }
.aud-link-discrete { color: #C9184A; text-decoration: none; font-size: 12px;
    margin-left: 8px; }
.aud-link-discrete:hover { text-decoration: underline; }

/* Cat pill */
.aud-cat-pill { display: inline-block; padding: 2px 8px; border-radius: 6px;
    font-size: 11px; font-weight: 600; background: #E5E7EB; color: #4B5563; }
.aud-cat-pill-small { font-size: 10px; padding: 1px 6px; }
.aud-cat-security     { background: #FCE7F3; color: #831843; }
.aud-cat-billing      { background: #FEF3C7; color: #92400E; }
.aud-cat-content      { background: #DCFCE7; color: #166534; }
.aud-cat-integrations { background: #F3E8FF; color: #6B21A8; }
.aud-cat-system       { background: #E5E7EB; color: #4B5563; }
.aud-cat-data         { background: #DBEAFE; color: #1E40AF; }

/* Actor card */
.aud-actor-card { background: #FFFAFA; padding: 12px; border-radius: 8px; }
.aud-actor-badge { display: inline-block; padding: 4px 10px; border-radius: 6px;
    font-size: 11px; font-weight: 600; text-transform: uppercase;
    letter-spacing: 0.5px; margin-bottom: 8px; }
.aud-actor-card-label { font-size: 14px; font-weight: 600; }
.aud-actor-card-id { font-size: 12px; color: #6b6b6b; font-family: monospace; margin-top: 4px; }

/* Target card */
.aud-target-card { background: #FFFAFA; padding: 12px; border-radius: 8px; }
.aud-target-type { font-size: 14px; margin-bottom: 6px; }
.aud-target-card-label { font-size: 13px; color: #6b6b6b; margin-bottom: 8px; }

.aud-ua { margin-top: 10px; font-size: 11px; word-break: break-word; }
.aud-ua-text { display: block; margin-top: 3px; }

/* === DIFF TABLE === */
.aud-diff-table { width: 100%; border-collapse: collapse; margin-top: 8px; }
.aud-diff-table th { background: #FFF1EE; padding: 8px; text-align: left;
    font-size: 11px; color: #6b6b6b; text-transform: uppercase;
    letter-spacing: 0.4px; border-bottom: 1px solid #FFD6DD; }
.aud-diff-table td { padding: 10px 8px; border-bottom: 1px solid #FFF1EE;
    vertical-align: top; font-size: 12px; }
.aud-diff-field-cell { font-weight: 600; width: 18%; }
.aud-diff-before { background: #FEF2F2; width: 38%; }
.aud-diff-after  { background: #DCFCE7; width: 38%; }
.aud-diff-arrow { color: #999; text-align: center; width: 6%; font-size: 18px; }
.aud-diff-val { font-family: monospace; font-size: 11px; word-break: break-word; }
.aud-diff-null { color: #999; font-style: italic; font-size: 11px; }
.aud-diff-empty { color: #999; font-style: italic; font-size: 11px; }
.aud-diff-json { font-size: 10px; line-height: 1.4; max-height: 200px;
    overflow: auto; margin: 0; background: rgba(255,255,255,0.5); padding: 6px;
    border-radius: 4px; }
.aud-truncated-banner { background: #FEF3C7; padding: 8px 12px; border-radius: 6px;
    margin-bottom: 10px; font-size: 12px; color: #92400E; }

/* === Metadata raw === */
.aud-metadata-pre { background: #FFFAFA; padding: 14px; border-radius: 8px;
    font-size: 11px; line-height: 1.5; max-height: 400px; overflow: auto;
    border: 1px solid #FFE4EC; margin: 0; }

/* === TIMELINE === */
.aud-timeline { list-style: none; padding: 0; margin: 0; }
.aud-timeline li { padding: 8px 12px; border-left: 3px solid #FFD6DD;
    margin-bottom: 4px; background: #FFFAFA; display: flex;
    align-items: center; gap: 10px; flex-wrap: wrap; font-size: 12px; }
.aud-timeline-time { color: #6b6b6b; font-family: monospace; min-width: 80px; }
.aud-timeline-action { color: #C9184A; background: #FFF1EE; padding: 2px 6px;
    border-radius: 4px; font-size: 11px; }

.aud-timeline-full { list-style: none; padding: 0; margin: 0; counter-reset: tl; }
.aud-tl-item { padding: 12px 14px; background: #FFFAFA; margin-bottom: 6px;
    border-radius: 8px; border-left: 4px solid #FFD6DD; display: flex;
    align-items: center; gap: 12px; flex-wrap: wrap; font-size: 13px; }
.aud-tl-num { background: #C9184A; color: #fff; min-width: 24px; height: 24px;
    border-radius: 50%; display: flex; align-items: center; justify-content: center;
    font-size: 11px; font-weight: 700; }
.aud-tl-time { color: #6b6b6b; font-family: monospace; font-size: 11px; }
.aud-tl-action { color: #C9184A; background: #FFF1EE; padding: 3px 8px;
    border-radius: 4px; font-size: 12px; }
.aud-tl-target { color: #6b6b6b; font-size: 12px; }
.aud-tl-actor  { color: #6b6b6b; font-size: 11px; }
.aud-tl-link   { margin-left: auto; color: #C9184A; text-decoration: none; font-size: 11px; }
.aud-tl-err    { width: 100%; color: #991B1B; font-size: 11px; padding: 4px 0 0; }

/* === STATS === */
.aud-stats-headline { display: flex; justify-content: space-between; align-items: center;
    margin-bottom: 22px; flex-wrap: wrap; gap: 16px; }
.aud-headline-total { background: linear-gradient(135deg, #C9184A 0%, #FFB3C1 100%);
    color: #fff; padding: 20px 28px; border-radius: 12px; }
.aud-headline-num { font-size: 36px; font-weight: 700; line-height: 1; }
.aud-headline-lbl { font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px;
    margin-top: 4px; opacity: 0.9; }
.aud-chain-badge { background: #DCFCE7; color: #166534; padding: 6px 14px;
    border-radius: 8px; font-weight: 600; font-size: 13px; }

.aud-active-filters-bar { background: #FFF1EE; padding: 8px 14px; border-radius: 6px;
    font-size: 12px; margin-bottom: 16px; }
.aud-filter-chip { background: #fff; padding: 2px 8px; border-radius: 4px;
    margin-left: 6px; font-family: monospace; font-size: 11px; }

/* Timeseries chart */
.aud-timeseries { display: flex; gap: 2px; align-items: flex-end;
    background: #FFFAFA; padding: 16px; border-radius: 8px;
    min-height: 220px; overflow-x: auto; }
.aud-ts-col { flex: 1; min-width: 30px; display: flex; flex-direction: column;
    align-items: center; gap: 4px; }
.aud-ts-bar { width: 80%; background: linear-gradient(to top, #C9184A, #FFB3C1);
    border-radius: 4px 4px 0 0; min-height: 2px; }
.aud-ts-count { font-size: 10px; color: #6b6b6b; font-weight: 600; }
.aud-ts-date { font-size: 9px; color: #999; font-family: monospace; }

/* Stats grid 2 */
.aud-stats-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
    margin-top: 16px; }
.aud-rank-table { width: 100%; border-collapse: collapse; }
.aud-rank-table tr { border-bottom: 1px solid #FFF1EE; }
.aud-rank-table td { padding: 8px 4px; vertical-align: middle; }
.aud-rank-num { font-weight: 600; color: #C9184A; width: 30px; }
.aud-rank-label { font-size: 12px; }
.aud-rank-bar-cell { width: 35%; }
.aud-rank-bar { background: #C9184A; height: 6px; border-radius: 3px; }
.aud-rank-count { font-weight: 600; font-size: 12px; text-align: right; width: 60px; }

/* Breakdown bars */
.aud-breakdown-bars { display: flex; flex-direction: column; gap: 8px; }
.aud-bdown-row { display: grid; grid-template-columns: 120px 1fr 100px; gap: 8px;
    align-items: center; font-size: 12px; }
.aud-bdown-bar-track { background: #F3F4F6; height: 16px; border-radius: 8px;
    overflow: hidden; }
.aud-bdown-bar { height: 100%; }
.aud-bdown-num { font-weight: 600; font-size: 11px; color: #6b6b6b; text-align: right; }
.aud-sev-bg-critical { background: #6B21A8; }
.aud-sev-bg-error    { background: #C9184A; }
.aud-sev-bg-warning  { background: #D4A24C; }
.aud-sev-bg-notice   { background: #3B82F6; }
.aud-sev-bg-info     { background: #6B7280; }
.aud-sev-bg-debug    { background: #D1D5DB; }
.aud-res-bg-success  { background: #22A052; }
.aud-res-bg-failure  { background: #C9184A; }
.aud-res-bg-partial  { background: #D4A24C; }

/* Categories grid */
.aud-categories-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.aud-cat-card { padding: 14px; background: #FFFAFA; border-radius: 8px;
    border-left: 4px solid #C9184A; text-decoration: none; color: inherit;
    display: block; transition: transform 0.15s ease; }
.aud-cat-card:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,0.08); }
.aud-cat-icon { font-size: 24px; margin-bottom: 6px; }
.aud-cat-card-name { font-weight: 600; font-size: 14px; }
.aud-cat-card-desc { font-size: 11px; color: #6b6b6b; margin-top: 4px; line-height: 1.4; }

/* === VERIFY CHAIN === */
.aud-verify-status { padding: 32px; border-radius: 12px; text-align: center;
    margin-bottom: 20px; }
.aud-verify-ok     { background: #DCFCE7; color: #166534; }
.aud-verify-broken { background: #FEE2E2; color: #991B1B; }
.aud-verify-icon { font-size: 56px; margin-bottom: 8px; }
.aud-verify-status h2 { margin: 8px 0 4px; }
.aud-verify-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
    margin-bottom: 18px; }
.aud-verify-stat { background: #fff; padding: 14px; border-radius: 8px;
    text-align: center; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
.aud-vs-num { font-size: 24px; font-weight: 700; color: #1a1a1a; }
.aud-vs-label { font-size: 11px; color: #6b6b6b; text-transform: uppercase;
    letter-spacing: 0.4px; margin-top: 4px; }
.aud-vs-bad  { border-top: 3px solid #C9184A; }
.aud-vs-warn { border-top: 3px solid #D4A24C; }

.aud-broken-list { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.aud-broken-id { background: #FEE2E2; color: #991B1B; padding: 4px 8px;
    border-radius: 4px; font-family: monospace; font-size: 11px;
    text-decoration: none; font-weight: 600; }
.aud-broken-id:hover { background: #FECACA; }
.aud-broken-id.aud-missing { background: #FEF3C7; color: #92400E; }

.aud-disabled-banner { background: #FFFAFA; padding: 24px; border-radius: 10px;
    text-align: center; }
.aud-disabled-banner pre { background: #1a1a1a; color: #DCFCE7; padding: 10px 16px;
    border-radius: 6px; display: inline-block; font-size: 13px; margin: 12px 0; }

.aud-verify-form { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }

/* === RESPONSIVE === */
@media (max-width: 1100px) {
    .aud-form-grid { grid-template-columns: repeat(2, 1fr); }
    .aud-form-row-wide { grid-column: span 2; }
    .aud-stats-grid-2 { grid-template-columns: 1fr; }
    .aud-show-grid { grid-template-columns: 1fr; }
    .aud-section-wide { grid-column: span 1; }
    .aud-verify-stats { grid-template-columns: repeat(2, 1fr); }
    .aud-categories-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
    .aud-form-grid { grid-template-columns: 1fr; }
    .aud-form-row-wide { grid-column: span 1; }
    .aud-diff-table { font-size: 11px; }
    .aud-bdown-row { grid-template-columns: 90px 1fr 80px; }
    .aud-categories-grid { grid-template-columns: 1fr; }
    .aud-quick-stats { flex-direction: column; }
    .aud-stats-headline { flex-direction: column; align-items: stretch; }
    .aud-page-head { flex-direction: column; }
    .aud-table th, .aud-table td { padding: 8px 6px; font-size: 11px; }
}
