* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'Segoe UI', sans-serif; background: #0f1117; color: #e0e0e0; font-size: 14px; }

/* Header */
.header { background: #1a1d27; padding: 12px 20px; display: flex; align-items: center; gap: 16px; border-bottom: 1px solid #2a2d3a; position: sticky; top: 0; z-index: 100; }
.header h1 { font-size: 18px; font-weight: 600; color: #fff; }
.status-bar { margin-left: auto; display: flex; align-items: center; gap: 12px; font-size: 12px; color: #b0b8c8; }
.pulse { width: 8px; height: 8px; border-radius: 50%; background: #4caf50; animation: pulse 2s infinite; }
.pulse.inactive { background: #666; animation: none; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.4} }
.btn-refresh { background: #2a5298; color: #fff; border: none; padding: 6px 14px; border-radius: 6px; cursor: pointer; font-size: 12px; }
.btn-refresh:hover { background: #3a62a8; }
.btn-refresh:disabled { background: #333; cursor: default; }
.run-status-banner {
    padding: 8px 20px;
    background: #141a26;
    border-bottom: 1px solid #2a2d3a;
    font-size: 12px;
    color: #9bb0d8;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.run-status-banner.running {
    background: #15281a;
    color: #8fe39f;
    border-bottom-color: #2b5a35;
}
.run-status-banner.idle {
    background: #141a26;
    color: #9bb0d8;
}
.run-status-banner.quota-exhausted {
    background: #2a1a10;
    color: #f59e42;
    border-bottom-color: #7a4010;
}

/* When review sweep is running, grey out all analysis/review buttons site-wide */
body.review-running .btn-analyze,
body.review-running .btn-analyze-all,
body.review-running #btn-analyze-selected,
body.review-running #btn-check-results,
body.review-running .btn-review {
    background: #1a1a1a !important;
    color: #555 !important;
    border-color: #333 !important;
    cursor: not-allowed !important;
    pointer-events: none;
}

/* When daily quota is exhausted, grey out all analysis/check-result buttons site-wide */
body.quota-exhausted .btn-analyze,
body.quota-exhausted .btn-analyze-all,
body.quota-exhausted #btn-analyze-selected,
body.quota-exhausted #btn-check-results {
    background: #1a1a1a !important;
    color: #555 !important;
    border-color: #333 !important;
    cursor: not-allowed !important;
    pointer-events: none;
}

/* Filter bar */
.filter-bar { padding: 10px 20px; background: #13161f; border-bottom: 1px solid #2a2d3a; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.filter-btn { padding: 5px 14px; border-radius: 20px; border: 1px solid #333; background: #1e2133; color: #c0c8d8; cursor: pointer; font-size: 12px; transition: all 0.2s; }
.filter-btn.active { background: #2a5298; border-color: #2a5298; color: #fff; }
.search-box { padding: 5px 12px; border-radius: 6px; border: 1px solid #333; background: #1e2133; color: #e0e0e0; font-size: 12px; width: 180px; }
.date-input { padding: 4px 8px; border-radius: 6px; border: 1px solid #333; background: #1e2133; color: #e0e0e0; font-size: 12px; width: 130px; color-scheme: dark; }
.count-badge { background: #1e2133; border: 1px solid #2a2d3a; padding: 4px 10px; border-radius: 12px; font-size: 11px; color: #b0b8c8; }
.global-filter-bar {
    padding: 8px 20px;
    background: #121722;
    border-bottom: 1px solid #252c3d;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.global-filter-title { font-size: 12px; color: #8ea3c0; font-weight: 600; }
.global-filter-wrap { position: relative; }
.global-filter-menu {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    width: min(360px, 92vw);
    max-height: 420px;
    overflow: hidden;
    background: #0f1521;
    border: 1px solid #2a3a55;
    border-radius: 10px;
    box-shadow: 0 14px 40px rgba(0,0,0,.42);
    z-index: 300;
}
.global-filter-menu-head {
    padding: 10px 12px;
    border-bottom: 1px solid #223049;
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}
.global-filter-menu-summary { font-size: 11px; color: #9bb0d8; }
.global-filter-menu-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.global-filter-options {
    max-height: 340px;
    overflow: auto;
    padding: 8px;
    display: grid;
    gap: 6px;
}
.global-filter-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 8px;
    border: 1px solid #1d293d;
    border-radius: 8px;
    background: #131b29;
    cursor: pointer;
}
.global-filter-option:hover { background: #182233; border-color: #28405d; }
.global-filter-option input { accent-color: #2a5298; cursor: pointer; }
.global-filter-option-name {
    flex: 1;
    min-width: 0;
    color: #d7e4f9;
    font-size: 12px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.global-filter-option-count {
    background: #18263a;
    border: 1px solid #2a3a55;
    border-radius: 999px;
    color: #8ea3c0;
    font-size: 10px;
    padding: 2px 7px;
}
.global-filter-empty {
    padding: 18px 10px;
    text-align: center;
    color: #7385a2;
    font-size: 12px;
}

/* Competition sections */
.comp-section { margin: 8px 16px; border-radius: 8px; overflow: hidden; }
.comp-header { background: #1e2133; padding: 8px 14px; font-size: 13px; font-weight: 600; color: #c8d8f0; cursor: pointer; user-select: none; display: flex; align-items: center; gap: 8px; }
.comp-header:hover { background: #252840; }
.comp-count { background: #2a2d3a; padding: 2px 8px; border-radius: 10px; font-size: 11px; color: #b0b8c8; }
.comp-live-dot { width: 6px; height: 6px; border-radius: 50%; background: #4caf50; animation: pulse 2s infinite; }

/* Match rows */
.match-row { display: grid; grid-template-columns: 52px 1fr 80px 1fr 354px; align-items: center; padding: 7px 14px; border-bottom: 1px solid #1a1d27; background: #161926; gap: 8px; transition: background 0.15s; }
.match-row:hover { background: #1c2035; }
.match-row:last-child { border-bottom: none; }

/* Status styles — use box-shadow for left indicator so it doesn't affect grid column widths */
.match-row.live    { background: #0d1f0d; box-shadow: inset 3px 0 0 #4caf50; }
.match-row.halftime { background: #1a1a0d; box-shadow: inset 3px 0 0 #ffc107; }
.match-row.finished { background: #131520; box-shadow: inset 3px 0 0 #2a3a5a; }

.time-col { font-size: 12px; color: #c0c8d8; text-align: center; }
.time-col .minutes { color: #4caf50; font-weight: 700; font-size: 11px; }
.time-col .status-tag { font-size: 10px; padding: 1px 5px; border-radius: 3px; margin-top: 2px; }
.status-tag.live    { background: #1b4d1b; color: #4caf50; }
.status-tag.halftime { background: #3d3200; color: #ffc107; }
.status-tag.finished { background: #1e2a40; color: #8ab4f8; }
.status-tag.upcoming { display: none; }

.team-col { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.team-col.home { text-align: right; }
.team-col.away { text-align: left; }

.score-col { text-align: center; font-size: 15px; font-weight: 700; min-width: 70px; }
.score-col .vs { color: #8aa0b8; font-size: 11px; }
.score-col .live-score { color: #4caf50; }
.score-col .final-score { color: #e0e0e0; }

/* Full odds block */
.odds-block { display: flex; gap: 6px; align-items: stretch; }
.odds-cell { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: 0 0 auto; background: #1a1d2e; border-radius: 5px; padding: 3px 6px; }
.odds-cell.ah-cell  { width: 92px; }
.odds-cell.hda-cell { width: 118px; }
.odds-cell.ou-cell  { width: 130px; }
.odds-cell .lbl { font-size: 9px; color: #8aa8c0; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 1px; }
.odds-cell .line { font-size: 12px; color: #8899cc; font-weight: 600; }
.odds-cell .waters { font-size: 11px; color: #9ab8c8; white-space: nowrap; }
.odds-cell .hda { font-size: 11px; color: #88aacc; display: flex; gap: 3px; justify-content: center; }
.odds-cell .hda span { padding: 1px 3px; border-radius: 3px; }
.odds-cell .hda .h { color: #79b8e0; }
.odds-cell .hda .d { color: #c0c0cc; }
.odds-cell .hda .a { color: #e0a879; }
.odds-no { font-size: 10px; color: #6a8098; padding: 6px; }

/* Tier badges */
.tier-badge { display: inline-block; font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 10px; letter-spacing: 0.4px; }
.tier-3way  { background: #1b3d5a; color: #79c8f0; border: 1px solid #2a6a9a; }
.tier-2way  { background: #1b3a1b; color: #79d079; border: 1px solid #2a6a2a; }
.tier-hkjc-titan { background: #1b2e3a; color: #79b8d0; border: 1px solid #2a5a7a; }
.tier-macau-titan { background: #1e2f1b; color: #88c878; border: 1px solid #3a6a2a; }
.tier-single { background: #2a2520; color: #c8a870; border: 1px solid #554433; }
.ms-card { background: #161926; border: 1px solid #2a2d3a; border-radius: 8px; margin: 8px 16px; overflow: hidden; }
.ms-card-header { display: flex; align-items: center; gap: 10px; padding: 10px 14px; cursor: pointer; user-select: none; }
.ms-card-header:hover { background: #1c2035; }
.ms-teams { flex: 1; }
.ms-teams .ms-home { color: #79b8e0; font-weight: 600; font-size: 14px; }
.ms-teams .ms-away { color: #e0a879; font-weight: 600; font-size: 14px; }
.ms-teams .ms-comp { font-size: 11px; color: #9ab0c8; margin-top: 1px; }
.ms-odds-row { display: flex; gap: 6px; flex-wrap: wrap; padding: 0 14px 10px; }
.ms-source-block { background: #1a1d2e; border-radius: 6px; padding: 6px 10px; min-width: 160px; flex: 1; }
.ms-source-lbl { font-size: 10px; color: #9ab0c8; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; font-weight: 700; }
.ms-market { font-size: 11px; color: #8899cc; line-height: 1.7; padding: 1px 0; border-bottom: 1px solid #1e2235; }
.ms-market:last-of-type { border-bottom: none; }
.ms-mkt-name { color: #9ab0d0; font-weight: 600; margin-right: 5px; }
.ms-mkt-odds { color: #c8d8f0; }
.ms-market strong { color: #c8d8f0; }
.ms-expert-section { border-top: 1px solid #2a2d3a; padding: 12px 14px; display: none; }
.ms-expert-section.visible { display: block; }
.ms-single-row { padding: 6px 10px; cursor: pointer; font-size: 12px; color: #b0c8e0; border-bottom: 1px solid #2a2d3a; }
.ms-single-row:hover { background: #252a3f; }
.ms-single-row.selected { background: #1e3a6a; color: #8ab4f8; }
.expert-tabs { display: flex; gap: 4px; margin-bottom: 10px; }
.expert-tab-btn { background: #1e2133; border: 1px solid #2a2d3a; color: #b0b8c8; padding: 4px 12px; border-radius: 4px; cursor: pointer; font-size: 11px; }
.expert-tab-btn.active { background: #2a3a6a; color: #8ab4f8; border-color: #3a5298; }
.expert-panel { display: none; }
.btn-run-experts { background: #1a2a4a; color: #6a9af0; border: 1px solid #2a4a8a; padding: 5px 14px; border-radius: 6px; cursor: pointer; font-size: 12px; }
.btn-run-experts:hover { background: #223060; }
.btn-run-experts:disabled { background: #111; color: #4a5a70; border-color: #222; cursor: default; }

/* Scrollable body */
.content { max-height: calc(100vh - 90px); overflow-y: auto; padding-bottom: 20px; }

/* Tab navigation */
.tab-nav { display: flex; gap: 0; border-bottom: 1px solid #2a2d3a; background: #13161f; }
.tab-btn { padding: 9px 22px; border: none; background: none; color: #b0b8c8; cursor: pointer; font-size: 13px; border-bottom: 2px solid transparent; transition: all 0.2s; }
.tab-btn.active { color: #fff; border-bottom-color: #2a5298; background: #161926; }
.tab-btn:hover:not(.active) { color: #e0e0e0; background: #1a1d27; }

/* Analysis tab */
.analysis-list { padding: 12px 16px; display: flex; flex-direction: column; gap: 10px; }
.analysis-card { background: #161926; border-radius: 8px; border: 1px solid #2a2d3a; overflow: hidden; }
.analysis-card-header { display: flex; align-items: center; gap: 10px; padding: 10px 14px; }
.analysis-teams { flex: 1; font-size: 13px; }
.analysis-teams .home-name { color: #79b8e0; }
.analysis-teams .away-name { color: #e0a879; }
.analysis-teams .league-name { font-size: 11px; color: #9ab0c8; margin-top: 2px; }
.analysis-odds-mini { font-size: 11px; color: #b8c8d8; display: flex; gap: 8px; }
.analysis-odds-mini span { background: #1a1d2e; padding: 2px 6px; border-radius: 4px; }
.btn-analyze { background: #2a3a6a; color: #8ab4f8; border: 1px solid #3a5298; padding: 5px 12px; border-radius: 6px; cursor: pointer; font-size: 12px; white-space: nowrap; }
.btn-analyze:hover { background: #3a4a7a; }
.btn-analyze:disabled { background: #1a2040; color: #7788aa; cursor: default; }
.btn-analyze.done { background: #17331d; color: #4ade80; border-color: #1f6b3a; }
.btn-analyze.done:hover { background: #1c3f24; }
.btn-analyze.error { background: #331717; color: #f87171; border-color: #7f1d1d; }
.btn-analyze.error:hover { background: #3f1c1c; }
.btn-analyze.running { background: #1a2040; color: #93c5fd; border-color: #2a4a8a; }

/* Analysis result panel */
.analysis-result { border-top: 1px solid #2a2d3a; padding: 14px 16px; display: none; }
.analysis-result.visible { display: block; }
.result-loading { text-align: center; padding: 20px; color: #b0b8c8; }
.result-loading .spinner { display: inline-block; border: 2px solid #333; border-top-color: #2a5298; border-radius: 50%; width: 20px; height: 20px; animation: spin 0.8s linear infinite; margin-bottom: 8px; }
@keyframes spin { to { transform: rotate(360deg); } }

.result-section { margin-bottom: 12px; }
.result-section h4 { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: #a0b4d0; margin-bottom: 6px; }
.bet-cards { display: flex; flex-wrap: wrap; gap: 8px; }
.bet-card { background: #1a1d2e; border: 1px solid #2a2d3a; border-radius: 6px; padding: 8px 12px; min-width: 200px; flex: 1; }
.bet-card .bet-market { font-size: 10px; color: #a0b4d0; text-transform: uppercase; }
.bet-card .bet-selection { font-size: 14px; font-weight: 600; color: #79b8e0; margin: 2px 0; }
.bet-card .bet-price { font-size: 13px; color: #4caf50; }
.bet-card .bet-conf { font-size: 11px; color: #c0c8d8; }
.bet-card .bet-reason { font-size: 11px; color: #c0c8d8; margin-top: 4px; line-height: 1.4; }
.bet-card.value  { border-color: #2a5a2a; }
.bet-card.pass   { opacity: 0.6; }
.score-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.score-chip { background: #1e2133; border: 1px solid #333; border-radius: 4px; padding: 4px 10px; font-size: 12px; color: #c8d8e8; }
.score-chip .conf { color: #ffc107; font-size: 11px; }
.patterns-box { background: #1a1d2e; border-radius: 6px; padding: 10px 12px; font-size: 12px; color: #c0cede; line-height: 1.6; }
.summary-box { background: #1a2e1a; border-radius: 6px; padding: 10px 12px; font-size: 12px; color: #c8e4d4; line-height: 1.6; }
.stats-badge { font-size: 10px; padding: 2px 7px; border-radius: 3px; }
.stats-badge.has { background: #1b3d1b; color: #4caf50; }
.stats-badge.none { background: #2a2020; color: #cc7777; }
.result-error { color: #cc4444; padding: 10px; font-size: 12px; }
.raw-result { font-size: 11px; color: #c0c8d8; background: #111; padding: 10px; border-radius: 6px; white-space: pre-wrap; max-height: 200px; overflow-y: auto; }

/* Analysis checkboxes & comp grouping */
.analysis-comp-header { display: flex; align-items: center; gap: 8px; padding: 8px 14px; background: #1e2133; font-size: 14px; font-weight: 700; color: #ffc107; border-radius: 6px 6px 0 0; margin-top: 8px; cursor: pointer; user-select: none; letter-spacing: 0.3px; }
.analysis-comp-header:first-child { margin-top: 0; }
.analysis-comp-header .comp-count { background: #2a2d3a; padding: 1px 7px; border-radius: 10px; font-size: 11px; color: #b0b8c8; margin-left: 4px; font-weight: 400; }
.analysis-comp-group { border: 1px solid #2a2d3a; border-radius: 6px; overflow: hidden; }
.match-chk, .league-chk { width: 15px; height: 15px; cursor: pointer; accent-color: #2a5298; flex-shrink: 0; }
.analysis-card-header { display: flex; align-items: center; gap: 10px; padding: 10px 14px; }
.analysis-teams { flex: 1; font-size: 15px; }
.analysis-teams .home-name { color: #79b8e0; font-weight: 600; }
.analysis-teams .away-name { color: #e0a879; font-weight: 600; }
.btn-select { background: #1e2133; color: #c0c8d8; border: 1px solid #333; padding: 5px 12px; border-radius: 6px; cursor: pointer; font-size: 12px; }
.btn-select:hover { background: #252840; }
.btn-analyze-all { background: #1a3a2a; color: #4caf50; border: 1px solid #2a5a3a; padding: 5px 14px; border-radius: 6px; cursor: pointer; font-size: 12px; }
.btn-analyze-all:hover { background: #224830; }
.btn-analyze-all:disabled { background: #1a2020; color: #446644; cursor: default; border-color: #2a3a2a; }
.progress-bar-wrap { height: 3px; background: #1a1d27; margin-top: 4px; border-radius: 2px; overflow: hidden; }
.progress-bar { height: 100%; background: #2a5298; transition: width 0.3s; }
.batch-bar { display:none; position:sticky; bottom:0; background:#0f1520; border-top:1px solid #2a5298; padding:8px 16px; z-index:100; align-items:center; gap:10px; flex-wrap:wrap; }
.batch-bar.visible { display:flex; }
.batch-btn { background:#2a5298; color:#fff; border:none; border-radius:5px; padding:5px 14px; cursor:pointer; font-size:12px; }
.batch-btn:hover { background:#3a63b8; }
.card-checkbox { width:16px; height:16px; cursor:pointer; accent-color:#2a5298; flex-shrink:0; }
.sim-tab-btn { background:#1a1e2e; color:#778; border:1px solid #2a3a5a; border-bottom:none; padding:6px 14px; border-radius:6px 6px 0 0; cursor:pointer; font-size:12px; margin-right:2px; }
.sim-tab-btn.active { background:#0d1117; color:#7eb8f7; border-color:#2a5298; }
.sim-tab-btn:hover { color:#cdd; }
.sim-badge-w,.sim-badge-l,.sim-badge-p,.sim-badge-d,.sim-badge-wh,.sim-badge-lh { display:inline-block;font-size:10px;font-weight:bold;border-radius:3px;padding:1px 5px;margin:0 1px;cursor:default; }
.sim-badge-w  { background:#0a1a3a;color:#60a5fa;border:1px solid #1d4ed8; }
.sim-badge-l  { background:#450a0a;color:#f87171;border:1px solid #7f1d1d; }
.sim-badge-p  { background:#1c1c2e;color:#94a3b8;border:1px solid #334155; }
.sim-badge-d  { background:#052e16;color:#4ade80;border:1px solid #166534; }
.sim-badge-wh { background:#0c1e3a;color:#93c5fd;border:1px solid #2563eb; }
.sim-badge-lh { background:#300a0a;color:#fca5a5;border:1px solid #991b1b; }

/* Logs tab */
.logs-overview-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin-bottom:14px; }
.logs-overview-card { background:#151a28; border:1px solid #25324a; border-radius:10px; padding:12px; min-height:92px; }
.logs-overview-label { font-size:10px; color:#7f91af; text-transform:uppercase; letter-spacing:0.7px; margin-bottom:5px; }
.logs-overview-value { font-size:19px; font-weight:700; color:#d8e7ff; line-height:1.2; }
.logs-overview-sub { font-size:11px; color:#72839d; margin-top:5px; line-height:1.35; }

.logs-health-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; margin-bottom:14px; }
.logs-health-card { background:#121926; border:1px solid #24324a; border-radius:10px; padding:12px; }
.logs-health-card.healthy { border-color:#234632; }
.logs-health-card.warning { border-color:#6b5a22; }
.logs-health-card.critical { border-color:#6d2a2a; }
.logs-health-head { display:flex; justify-content:space-between; gap:8px; align-items:center; margin-bottom:8px; }
.logs-health-label { font-size:10px; color:#7f91af; text-transform:uppercase; letter-spacing:0.7px; }
.logs-health-state { font-size:9px; border-radius:999px; padding:2px 7px; border:1px solid #31506f; color:#9dc2ea; background:#162336; }
.logs-health-state.healthy { border-color:#2d6c46; color:#86efac; background:#11251a; }
.logs-health-state.warning { border-color:#8f6f1d; color:#f0c060; background:#2a2112; }
.logs-health-state.critical { border-color:#9a3434; color:#f87171; background:#321417; }
.logs-health-value { font-size:20px; font-weight:700; color:#d8e7ff; line-height:1.2; }
.logs-health-sub { font-size:11px; color:#72839d; margin-top:4px; line-height:1.35; min-height:30px; }
.logs-health-bar { margin-top:10px; height:7px; background:#0e1420; border:1px solid #1c273a; border-radius:999px; overflow:hidden; }
.logs-health-bar span { display:block; height:100%; width:0; background:#4ade80; }
.logs-health-bar span.warning { background:#f0c060; }
.logs-health-bar span.critical { background:#f87171; }

.logs-service-card { background:#131926; border:1px solid #23314a; border-radius:10px; padding:14px; margin-bottom:14px; }
.logs-service-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; margin-bottom:12px; flex-wrap:wrap; }
.logs-service-title { font-size:14px; font-weight:700; color:#d9e7ff; }
.logs-service-sub { font-size:12px; color:#8ea3c0; margin-top:3px; }
.logs-service-meta { font-size:11px; color:#6f83a3; }
.logs-service-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; margin-bottom:10px; }
.logs-service-field { background:#0f1420; border:1px solid #1b2639; border-radius:8px; padding:10px; }
.logs-service-field-label { font-size:10px; color:#6f83a3; text-transform:uppercase; letter-spacing:0.7px; margin-bottom:4px; }
.logs-service-field-value { font-size:12px; color:#d4deef; line-height:1.45; word-break:break-word; }

.logs-pill-row { display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
.logs-pill { background:#182235; border:1px solid #2a3a55; border-radius:999px; color:#9db5d8; font-size:10px; padding:3px 8px; }

.logs-section { background:#121723; border:1px solid #1f2b40; border-radius:10px; margin-bottom:12px; overflow:hidden; }
.logs-section-summary { list-style:none; display:flex; justify-content:space-between; align-items:center; gap:10px; padding:12px 14px; cursor:pointer; background:#151c2a; }
.logs-section-summary::-webkit-details-marker { display:none; }
.logs-section-left { display:flex; align-items:flex-start; gap:10px; min-width:0; }
.logs-section-icon { font-size:18px; line-height:1; margin-top:2px; }
.logs-section-title { color:#d9e7ff; font-size:13px; font-weight:700; }
.logs-section-desc { color:#7f93b0; font-size:11px; margin-top:3px; line-height:1.35; }
.logs-section-badges { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.logs-section-body { padding:12px 14px 14px; border-top:1px solid #1d2639; }
.logs-section-meta { font-size:11px; color:#6f83a3; margin-bottom:10px; }

.logs-entry { background:#0f1420; border:1px solid #1a2334; border-left:3px solid #2a5a8a; border-radius:8px; padding:10px 12px; margin-bottom:8px; }
.logs-entry.warning { border-left-color:#f0c060; }
.logs-entry.error, .logs-entry.critical { border-left-color:#f87171; }
.logs-entry.record { border-left-color:#7eb8f7; }
.logs-entry-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.logs-entry-title { font-size:12px; font-weight:700; color:#d7e4f9; line-height:1.35; }
.logs-entry-subtitle { font-size:11px; color:#7688a5; margin-top:3px; }
.logs-entry-right { display:flex; flex-direction:column; align-items:flex-end; gap:5px; flex-shrink:0; }
.logs-entry-time { font-size:10px; color:#7688a5; }
.logs-entry-detail { font-size:12px; color:#b8c6dc; margin-top:8px; line-height:1.45; white-space:pre-wrap; word-break:break-word; }

.logs-level-badge { border-radius:999px; font-size:10px; padding:3px 8px; border:1px solid #314766; background:#162336; color:#9dc2ea; }
.logs-level-badge.warning { border-color:#7a6122; background:#2a2213; color:#f0c060; }
.logs-level-badge.error,
.logs-level-badge.critical { border-color:#7f2b2b; background:#2d1418; color:#f87171; }
.logs-level-badge.record { border-color:#2f527f; background:#172338; color:#7eb8f7; }

.logs-empty { padding:18px; text-align:center; color:#7385a2; background:#101521; border:1px dashed #243248; border-radius:8px; }

.logs-lock-shell { display:flex; justify-content:center; align-items:center; min-height:42vh; }
.logs-lock-card { width:min(520px, 100%); background:#121826; border:1px solid #263754; border-radius:12px; padding:22px; display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; }
.logs-lock-icon { font-size:30px; }
.logs-lock-title { font-size:17px; font-weight:700; color:#d8e7ff; }
.logs-lock-text { font-size:12px; color:#8ea3c0; line-height:1.5; max-width:420px; }
.logs-lock-row { display:flex; gap:8px; width:100%; justify-content:center; flex-wrap:wrap; }
.logs-lock-input { width:min(310px, 100%); background:#0f1420; border:1px solid #2a5298; color:#d8e7ff; padding:9px 12px; border-radius:8px; font-size:13px; outline:none; }
.logs-lock-btn { background:#1a2d4a; border:1px solid #2a5298; color:#7eb8f7; padding:9px 16px; border-radius:8px; font-size:13px; cursor:pointer; font-weight:700; }
.logs-lock-btn:hover { background:#21365a; }
.logs-lock-remember { display:flex; align-items:center; gap:6px; color:#7f93b0; font-size:11px; }
