:root { color-scheme: dark; --bg:#111418; --panel:#1a1f26; --panel2:#222832; --line:#343d49; --text:#f3f5f7; --muted:#a7b0bc; --accent:#43b581; --warn:#e6a23c; --danger:#ef6b73; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:15px/1.45 system-ui,-apple-system,sans-serif; }
a { color:inherit; text-decoration:none; }
.topbar { min-height:58px; padding:10px 24px; display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--line); background:#15191e; position:sticky; top:0; z-index:20; }
.brand { font-weight:750; font-size:18px; }
.local-badge { font-size:11px; border:1px solid var(--accent); color:var(--accent); border-radius:10px; padding:2px 7px; }
.system-metrics{margin-left:auto;display:flex;align-items:center;gap:12px;color:var(--muted);font-size:11px;white-space:nowrap}.system-metrics strong{color:var(--text);font-variant-numeric:tabular-nums}
main { min-height:calc(100vh - 58px); }
.page { max-width:1500px; margin:auto; padding:24px; }
h1 { margin:0; font-size:28px; }
.muted { color:var(--muted); }
.heading-row,.review-toolbar,.status-line,.item-status,.image-tools,.form-actions,.pagination { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.heading-actions,#stream-control-form { display:flex; align-items:center; gap:10px; }
.date-filter{display:flex;align-items:end;gap:10px}.date-filter label{min-width:170px}
.stream-state { font-size:12px; font-weight:700; border-radius:12px; padding:4px 9px; border:1px solid var(--line); }
.stream-state.enabled { color:var(--accent); border-color:var(--accent); }
.stream-state.disabled { color:var(--muted); }
.stream-state.unavailable { color:var(--danger); border-color:var(--danger); }
.stream-state.enabled:hover{background:#183228}.stream-state[aria-disabled="true"]{cursor:default}
button:disabled { opacity:.55; cursor:not-allowed; }
.progress-label { color:var(--muted); }
.progress { height:8px; background:var(--panel2); border-radius:20px; overflow:hidden; margin:16px 0 20px; }
.progress span { display:block; height:100%; background:var(--accent); }
.stats-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }
.stat { padding:16px; background:var(--panel); border:1px solid var(--line); border-radius:10px; display:flex; flex-direction:column; }
.stat strong { font-size:25px; }.stat span { color:var(--muted); }.stat.warning strong{color:var(--warn)}.stat.success strong{color:var(--accent)}.stat.discarded strong{color:var(--danger)}.stat.processing strong{color:#62a8ff}
.filters { display:flex; gap:12px; align-items:end; flex-wrap:wrap; background:var(--panel); border:1px solid var(--line); padding:14px; border-radius:10px; margin:20px 0 12px; }
label { display:flex; flex-direction:column; gap:5px; color:var(--muted); font-size:13px; }
.filters .search { flex:1; min-width:220px; }
.result-summary { margin:20px 2px 8px; }
input,select,textarea { width:100%; background:#0f1216; color:var(--text); border:1px solid #46515f; border-radius:6px; padding:9px 10px; font:inherit; }
input:focus,select:focus,textarea:focus { outline:2px solid #387b62; border-color:var(--accent); }
button,.button { border:0; border-radius:6px; padding:10px 14px; font:inherit; font-weight:650; cursor:pointer; display:inline-flex; justify-content:center; align-items:center; }
button,.button.primary { background:var(--accent); color:#07150f; }.button.secondary { background:var(--panel2); color:var(--text); border:1px solid var(--line); }
.button.danger{background:#7a3037;color:#fff}.discard-button{width:100%;margin-top:10px}.discard-button[hidden]{display:none}
.result-summary { color:var(--muted); margin:12px 2px; }
.items-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px; }
.item-card { overflow:hidden; background:var(--panel); border:1px solid var(--line); border-radius:10px; transition:.15s; }.item-card:hover { border-color:var(--accent); transform:translateY(-1px); }
.item-card img { width:100%; height:210px; object-fit:contain; display:block; background:#090b0e; }
.item-body { padding:12px; }.filename { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin:8px 0; color:var(--muted); }
.status { text-transform:capitalize; font-size:12px; border-radius:12px; padding:3px 8px; background:#343c47; }.status.revisado{color:var(--accent)}.status.pendente{color:var(--warn)}.status.nao_identificavel{color:var(--danger)}
.field-chips { display:flex; flex-wrap:wrap; gap:5px; }.chip { font-size:11px; background:#26362f; border-radius:5px; padding:3px 5px; }.chip.low { background:#4a292d; color:#ffc1c5; }
.pagination { justify-content:center; margin:24px; }.empty { grid-column:1/-1; padding:60px; text-align:center; color:var(--muted); }
.review-page { height:calc(100vh - 58px); display:flex; flex-direction:column; }.review-toolbar { min-height:58px; padding:8px 18px; border-bottom:1px solid var(--line); }.nav-actions{display:flex;gap:8px}
.review-layout { min-height:0; flex:1; display:grid; grid-template-columns:minmax(0,1fr) 390px; }
.image-panel { min-width:0; min-height:0; padding:12px; display:flex; flex-direction:column; }.image-tools { justify-content:flex-end; margin-bottom:8px; }.image-tools span{margin-right:auto;font-weight:700}
.small-button { padding:5px 10px; background:var(--panel2); color:var(--text); border:1px solid var(--line); }
.image-viewport { flex:1; overflow:auto; background:#07090b; border:1px solid var(--line); display:flex; align-items:flex-start; justify-content:center; border-radius:8px; }
.image-viewport img { display:block; max-width:100%; max-height:100%; object-fit:contain; transform-origin:top center; transition:width .12s; }
.form-panel { border-left:1px solid var(--line); background:var(--panel); overflow-y:auto; padding:16px; }.item-status { margin-bottom:12px; }
.warnings { font-size:13px; padding:10px; border:1px solid #63471f; background:#33291d; border-radius:7px; color:#f1c57d; }.warnings ul { margin:5px 0 0; padding-left:20px; }
.review-field { margin-top:12px; padding:9px; background:var(--panel2); border-left:3px solid #526070; border-radius:5px; }.review-field.low { border-left-color:var(--danger); background:#302328; }
.field-title { display:flex; justify-content:space-between; gap:8px; align-items:center; }.field-title strong { color:var(--text); font-size:14px; }.field-title span { text-align:right; }
.note-field { margin-top:13px; }.form-actions { margin-top:14px; }.form-actions .button{flex:1}.shortcut-help { color:var(--muted); font-size:11px; text-align:center; }kbd { background:#303741; padding:2px 4px; border-radius:3px; }
.undo-form { text-align:center; }.link-button { color:var(--muted); background:transparent; text-decoration:underline; font-weight:400; }.flash-stack { position:fixed; top:68px; right:20px; z-index:50; }.flash { padding:12px 18px; border-radius:7px; background:#27543f; box-shadow:0 5px 25px #0008; }.flash.error{background:#732f36}
@media (max-width:900px) { .stats-grid{grid-template-columns:repeat(2,1fr)}.review-page{height:auto}.review-layout{display:block}.image-panel{height:65vh}.form-panel{border-left:0;border-top:1px solid var(--line)}.review-toolbar .muted{display:none} }
@media (max-width:700px) { .heading-row{align-items:flex-start;flex-direction:column}.heading-actions{width:100%;flex-wrap:wrap}.heading-actions>a{margin-left:auto} }
@media (max-width:700px) {.topbar{flex-wrap:wrap}.system-metrics{order:3;width:100%;margin-left:0;justify-content:space-between}}
.table-wrap { overflow-x:auto; background:var(--panel); border:1px solid var(--line); border-radius:10px; }
.processing-table { width:100%; border-collapse:collapse; font-size:13px; white-space:nowrap; }
.processing-table th,.processing-table td { padding:10px 9px; border-bottom:1px solid var(--line); text-align:left; }
.processing-table th { position:sticky; top:0; background:var(--panel2); z-index:1; }
.insights-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.insight-card{padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.insight-card strong{display:block;font-size:28px;color:var(--accent)}.insight-card span{color:var(--muted)}
.timing-average-card strong{font-size:18px;margin-bottom:8px}.timing-average-card span{display:flex;justify-content:space-between;gap:12px}.timing-average-card b{color:var(--text)}.timing-average-card small{display:block;margin-top:6px;color:var(--muted)}
.insights-columns{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-top:16px}.insight-panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;min-width:0}.insight-panel h2{margin:0 0 14px}.minute-chart{height:220px;display:flex;align-items:flex-end;gap:3px;overflow-x:auto;border-bottom:1px solid var(--line);padding-top:12px}.minute-bar{flex:1 0 8px;min-height:2px;background:var(--accent);border-radius:3px 3px 0 0}.rank-list{display:grid;gap:9px}.rank-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.rank-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-count{font-weight:800}.rank-track{grid-column:1/-1;height:6px;background:#101318;border-radius:4px;overflow:hidden}.rank-track span{display:block;height:100%;background:var(--accent)}.insight-empty{color:var(--muted);padding:20px 0}
.five-minute-chart .minute-bar{flex-basis:10px}.rank-link{padding:5px;border-radius:6px}.rank-link:hover,.rank-link:focus-visible{background:var(--panel2);outline:1px solid var(--accent)}.brand-summary{grid-template-columns:repeat(2,minmax(0,280px))}.brand-calibers{margin-top:16px;max-width:720px}
.brand-detail-header{position:sticky;top:58px;z-index:12;background:var(--bg);padding:14px 0;border-bottom:1px solid var(--line);margin-top:-14px}
.forecast-controls{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:14px 24px;align-items:end;margin:20px 0;padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.forecast-controls h2,.forecast-controls p{margin:0}.shift-settings{display:flex;align-items:end;gap:10px}.shift-settings label{min-width:150px}.window-selector{display:flex;gap:8px;flex-wrap:wrap}.window-selector .active{color:var(--accent);border-color:var(--accent);background:#183228}.forecast-status,.forecast-notice{grid-column:1/-1;padding:10px 12px;border-radius:6px;background:var(--panel2)}.forecast-notice{color:#f1c57d;border-left:3px solid var(--warn)}.forecast-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 10px}.forecast-total{border-color:var(--accent);background:#183228}.forecast-disclaimer{margin:0 0 18px;color:var(--muted);font-size:13px}.rank-values{white-space:nowrap;color:var(--muted);font-size:12px}.rank-values strong{color:var(--text);font-size:14px}
@media(max-width:900px){.insights-grid{grid-template-columns:repeat(2,1fr)}.insights-columns{grid-template-columns:1fr}}
@media(max-width:700px){.forecast-controls{grid-template-columns:1fr}.shift-settings{align-items:stretch;flex-direction:column}.window-selector{grid-column:1}.forecast-grid{grid-template-columns:1fr}}
.processing-table small { display:block; color:var(--muted); }.low-cell{background:#33291d}
.status.success{color:var(--accent)}.status.review{color:var(--warn)}
.modal-open{overflow:hidden}.review-modal[hidden]{display:none}.review-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:18px}
.review-modal-backdrop{position:absolute;inset:0;background:#000c;backdrop-filter:blur(3px)}
.review-modal-dialog{position:relative;width:min(1500px,96vw);height:94vh;background:var(--bg);border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 80px #000;overflow:hidden;display:flex;flex-direction:column}
.review-modal-header{height:54px;flex:0 0 54px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;background:var(--panel);border-bottom:1px solid var(--line)}
.review-modal-dialog iframe{width:100%;height:100%;border:0;background:var(--bg)}
@media(max-width:700px){.review-modal{padding:0}.review-modal-dialog{width:100vw;height:100vh;border:0;border-radius:0}.quick-review{white-space:nowrap}}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:24px 0 12px}.section-heading h2{margin:0}.section-heading p{margin:4px 0 0}
.review-group>summary{cursor:pointer;list-style:none}.review-group>summary::-webkit-details-marker{display:none}.review-summary-actions{display:flex;align-items:center;gap:10px}.review-toggle-label::before{content:'Minimizar';color:var(--muted);font-size:12px}.review-group:not([open]) .review-toggle-label::before{content:'Expandir'}.review-group:not([open])>summary{margin-bottom:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-heading h2{margin:0}.unitary-toggle.active{color:var(--accent);border-color:var(--accent);background:#183228}
.obleia-controls{display:flex;align-items:end;gap:10px}.obleia-controls label{min-width:150px}.obleia-controls select{padding:7px 9px}.obleia-row{color:inherit}.obleia-detail-table{margin-top:20px}
.review-priority-section{padding:16px;border:1px solid #654b20;background:#2d261b;border-radius:12px}.review-priority-section .section-heading{margin:0 0 12px}.review-count{min-width:38px;text-align:center;font-weight:800;color:#241a08;background:var(--warn);border-radius:20px;padding:7px 10px}
.review-repeater{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 2px 12px}.review-repeat-card{flex:0 0 min(360px,82vw);scroll-snap-align:start;background:var(--panel);border:1px solid #765823;border-radius:10px;overflow:hidden}
.review-image-button{display:block;width:100%;height:230px;padding:0;border:0;background:#080a0d;cursor:pointer}.review-image-button img{width:100%;height:100%;object-fit:contain}.review-repeat-body{padding:12px}.review-repeat-body .button{width:100%;margin-top:12px}.review-empty{min-width:100%;padding:34px}.success-heading{margin-top:28px}
.review-table-wrap{border-color:#654b20}.clickable-review-row{cursor:pointer}.clickable-review-row:hover{background:#33291d}.clickable-review-row .button{white-space:nowrap}.success-heading{margin-top:28px}
