
:root{--pvr-bg:#0b151e;--pvr-card:#111f2a;--pvr-card2:#0f1b25;--pvr-line:#2d4353;--pvr-text:#e9f0f4;--pvr-muted:#9cafbc;--pvr-orange:#df8127;--pvr-orange2:#ef983f;--pvr-green:#28d36b;--pvr-red:#ff5c4d}
body.pvr-body{background:#08131b;color:var(--pvr-text)}
.nav-report-demo{color:#f3a04c!important}
.pvr-shell{max-width:1900px;margin:0 auto;padding:20px}
.pvr-hero{display:grid;grid-template-columns:1fr auto;gap:12px 24px;background:linear-gradient(135deg,#11222f,#0e1b25);border:1px solid var(--pvr-line);border-radius:16px;padding:18px 22px;margin-bottom:12px}
.pvr-kicker,.pvr-mini{display:block;color:var(--pvr-orange);font-size:.72rem;font-weight:800;letter-spacing:.08em}
.pvr-hero h1{margin:5px 0 4px;font-size:clamp(1.35rem,2.2vw,2.2rem)}
.pvr-hero p{margin:0;color:var(--pvr-muted)}
.pvr-actions{display:flex;align-items:flex-start;gap:8px}
.pvr-file-button,.pvr-secondary-button,.pvr-icon-button{display:inline-flex;gap:8px;align-items:center;border:1px solid #3b5668;border-radius:9px;background:#182d3b;color:#fff;padding:10px 14px;cursor:pointer;text-decoration:none;font-weight:700}
.pvr-file-button{background:var(--pvr-orange);border-color:var(--pvr-orange)}
.pvr-file-button input{display:none}
.pvr-report-nav{grid-column:2;display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.pvr-report-nav button,.pvr-view-tabs button{background:#162a38;color:#edf4f7;border:1px solid #385466;border-radius:8px;padding:7px 11px;cursor:pointer}
.pvr-report-nav button:hover,.pvr-view-tabs button.active{border-color:var(--pvr-orange);background:#243c4c}
.pvr-alert,.pvr-loading{border:1px solid var(--pvr-line);border-radius:12px;background:#152632;padding:16px;margin:10px 0}
.pvr-loading{display:flex;align-items:center;gap:12px}
.pvr-spinner{width:20px;height:20px;border:3px solid #415a69;border-top-color:var(--pvr-orange);border-radius:50%;animation:pvrspin 1s linear infinite}@keyframes pvrspin{to{transform:rotate(360deg)}}
.pvr-layout{display:grid;grid-template-columns:minmax(260px,330px) minmax(500px,1fr) minmax(320px,470px);gap:10px;min-height:760px}
.pvr-panel,.pvr-center{background:var(--pvr-card);border:1px solid var(--pvr-line);border-radius:14px}
.pvr-left,.pvr-right{display:flex;flex-direction:column;gap:10px;min-width:0}
.pvr-panel{padding:13px}
.pvr-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.pvr-panel h2,.pvr-analysis h2{margin:4px 0 8px}
.pvr-kpis{display:grid;grid-template-columns:1fr 1fr;gap:7px}.pvr-kpi{background:#0d1a23;border:1px solid #2c4353;border-radius:9px;padding:9px}.pvr-kpi strong{display:block;font-size:1.35rem}.pvr-kpi span{font-size:.74rem;color:var(--pvr-muted)}
.pvr-badge{background:#213746;border-radius:999px;padding:4px 8px;color:#fff}
.pvr-search{width:100%;box-sizing:border-box;background:#0c1821;color:#fff;border:1px solid #334d5e;border-radius:8px;padding:9px;margin-bottom:8px}
.pvr-defect-list{overflow:auto;max-height:590px}.pvr-defect-item{padding:10px;border-bottom:1px solid #233744;cursor:pointer}.pvr-defect-item:hover,.pvr-defect-item.active{background:#1b3040}.pvr-defect-item strong{display:block;color:#fff}.pvr-defect-item small{color:#e3b33c}
.pvr-center{display:flex;flex-direction:column;min-width:0;overflow:hidden}.pvr-toolbar{display:flex;align-items:center;gap:10px;padding:10px;border-bottom:1px solid var(--pvr-line)}.pvr-view-tabs{display:flex;gap:5px}.pvr-check{margin-left:auto;color:#d7e1e7}
.pvr-map-stage,.pvr-3d-stage{position:relative;flex:1;min-height:680px;overflow:hidden;background:#050b10}.pvr-map-transform{position:absolute;transform-origin:0 0;left:0;top:0}.pvr-map-transform img{display:block;max-width:none;user-select:none;pointer-events:none}.pvr-map-transform canvas{position:absolute;inset:0;pointer-events:auto}.pvr-map-hint{position:absolute;left:12px;bottom:12px;background:#07121bcc;padding:6px 9px;border-radius:6px;color:#b8c7d1;font-size:.76rem}
.pvr-analysis{height:100%;box-sizing:border-box;overflow:auto}.pvr-muted{color:var(--pvr-muted)}.pvr-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:10px 0}.pvr-metric{background:#0b1821;border:1px solid #2d4555;border-radius:8px;padding:8px}.pvr-metric span{display:block;color:var(--pvr-muted);font-size:.72rem}.pvr-metric strong{font-size:1.04rem}
.pvr-evidence h3{font-size:.95rem;margin:14px 0 2px}.pvr-evidence p{font-size:.74rem;color:var(--pvr-muted);margin:0 0 5px}.pvr-evidence img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain;background:#071018;border:1px solid #2c4556;border-radius:8px;margin-bottom:9px}
.pvr-comment{margin-top:12px;border-top:1px solid #2c4352;padding-top:10px}.pvr-comment p{white-space:pre-wrap}
.pvr-modal{position:fixed;inset:0;background:#02070bd9;z-index:9999;display:grid;place-items:center;padding:20px}.pvr-modal-card{position:relative;max-width:850px;width:min(850px,96vw);max-height:85vh;overflow:auto;background:#10202b;border:1px solid #365363;border-radius:14px;padding:22px}.pvr-modal-close{position:absolute;right:12px;top:8px;border:0;background:transparent;color:white;font-size:2rem;cursor:pointer}.pvr-modal-body{line-height:1.6}.pvr-modal-body table{width:100%;border-collapse:collapse}.pvr-modal-body td{border-bottom:1px solid #304958;padding:7px}.pvr-modal-body h3{color:#f0a151}
.pvr-3d-message{position:absolute;inset:auto 15px 15px;background:#07131ccc;padding:8px 10px;border-radius:7px;color:#b7c7d1}#pvr3dCanvas{position:absolute;inset:0}
@media(max-width:1250px){.pvr-layout{grid-template-columns:260px 1fr 350px}}
@media(max-width:980px){.pvr-hero{grid-template-columns:1fr}.pvr-actions,.pvr-report-nav{grid-column:1;justify-content:flex-start}.pvr-layout{grid-template-columns:1fr}.pvr-left{order:2}.pvr-center{order:1}.pvr-right{order:3}.pvr-map-stage,.pvr-3d-stage{min-height:520px}.pvr-defect-list{max-height:320px}}

/* Viewer 2.1 – postęp pobierania i poprawne ukrywanie modala */
.pvr-modal[hidden],
.pvr-loading[hidden],
.pvr-alert[hidden],
.pvr-layout[hidden],
.pvr-3d-stage[hidden],
.pvr-map-stage[hidden],
img[hidden],
button[hidden] {
    display: none !important;
}
.pvr-loading{
    display:block;
    padding:14px 16px;
}
.pvr-loading-row{
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:12px;
    align-items:center;
}
.pvr-loading-copy{
    display:flex;
    flex-direction:column;
    gap:2px;
}
.pvr-loading-copy span{
    color:var(--pvr-muted);
    font-size:.84rem;
}
.pvr-progress-track{
    margin-top:12px;
    height:12px;
    overflow:hidden;
    border-radius:999px;
    background:#071018;
    border:1px solid #2d4657;
}
.pvr-progress-bar{
    height:100%;
    width:0;
    border-radius:999px;
    background:linear-gradient(90deg,#d97820,#f0a34f);
    transition:width .18s ease;
}
.pvr-progress-meta{
    margin-top:6px;
    display:flex;
    justify-content:space-between;
    gap:12px;
    color:#8fa4b2;
    font-size:.74rem;
}


/* =========================================================
   WEB VIEWER 2.3 — DARK / HIGH CONTRAST
   ========================================================= */

/* Tło całej strony */
html,
body,
body.pvr-body {
    background: #071018 !important;
    color: #eef5f8 !important;
    min-height: 100%;
}

/* Usuń jasne tło odziedziczone ze strony głównej */
body.pvr-body main,
body.pvr-body .pvr-shell {
    background: #071018 !important;
}

body.pvr-body .pvr-shell {
    color: #eef5f8 !important;
}

/* Górna karta */
body.pvr-body .pvr-hero {
    background: linear-gradient(135deg, #102431 0%, #0b1b26 100%) !important;
    border-color: #36566b !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.28);
}

body.pvr-body .pvr-hero h1,
body.pvr-body .pvr-hero h2,
body.pvr-body .pvr-hero h3 {
    color: #ffffff !important;
}

body.pvr-body .pvr-hero p,
body.pvr-body #pvrInspectionMeta {
    color: #bcd0dc !important;
}

body.pvr-body .pvr-kicker,
body.pvr-body .pvr-mini {
    color: #ff9a35 !important;
    font-weight: 800 !important;
}

/* Wszystkie główne panele */
body.pvr-body .pvr-panel,
body.pvr-body .pvr-center,
body.pvr-body .pvr-left > *,
body.pvr-body .pvr-right > * {
    background: #0d202b !important;
    border-color: #335469 !important;
    color: #eef5f8 !important;
}

/* Nagłówki - część była czarna przez style globalne strony */
body.pvr-body .pvr-panel h1,
body.pvr-body .pvr-panel h2,
body.pvr-body .pvr-panel h3,
body.pvr-body .pvr-center h1,
body.pvr-body .pvr-center h2,
body.pvr-body .pvr-center h3,
body.pvr-body #pvrPanelId,
body.pvr-body .pvr-analysis h2,
body.pvr-body .pvr-defects-panel h2 {
    color: #ffffff !important;
    text-shadow: none !important;
}

/* Tekst zwykły */
body.pvr-body .pvr-panel p,
body.pvr-body .pvr-panel span,
body.pvr-body .pvr-panel label,
body.pvr-body .pvr-center p,
body.pvr-body .pvr-center label {
    color: #dce8ee;
}

body.pvr-body .pvr-muted,
body.pvr-body .pvr-evidence p,
body.pvr-body .pvr-map-hint {
    color: #a9c0ce !important;
}

/* Kafelki KPI */
body.pvr-body .pvr-kpi {
    background: #081822 !important;
    border-color: #35566a !important;
}

body.pvr-body .pvr-kpi strong {
    color: #ffffff !important;
}

body.pvr-body .pvr-kpi span {
    color: #9fc3d8 !important;
}

/* Lista usterek */
body.pvr-body .pvr-defect-list {
    scrollbar-color: #48697c #0a1821;
}

body.pvr-body .pvr-defect-item {
    border-bottom-color: #294657 !important;
    color: #ffffff !important;
}

body.pvr-body .pvr-defect-item strong {
    color: #ffffff !important;
}

body.pvr-body .pvr-defect-item small {
    color: #ffc341 !important;
    font-weight: 600;
}

body.pvr-body .pvr-defect-item:hover,
body.pvr-body .pvr-defect-item.active {
    background: #18394b !important;
    box-shadow: inset 3px 0 0 #ff922f;
}

/* Pole wyszukiwania */
body.pvr-body .pvr-search {
    background: #071720 !important;
    color: #ffffff !important;
    border-color: #3f6479 !important;
}

body.pvr-body .pvr-search::placeholder {
    color: #829eae !important;
}

/* Toolbar */
body.pvr-body .pvr-toolbar {
    background: #0b1d27 !important;
    border-bottom-color: #335469 !important;
}

body.pvr-body .pvr-view-tabs button,
body.pvr-body .pvr-report-nav button,
body.pvr-body .pvr-icon-button,
body.pvr-body .pvr-secondary-button {
    background: #122c3a !important;
    border-color: #41687e !important;
    color: #ffffff !important;
}

body.pvr-body .pvr-view-tabs button:hover,
body.pvr-body .pvr-report-nav button:hover,
body.pvr-body .pvr-icon-button:hover,
body.pvr-body .pvr-secondary-button:hover {
    background: #1d455b !important;
    border-color: #ff922f !important;
}

body.pvr-body .pvr-view-tabs button.active {
    background: #17405a !important;
    border-color: #ff922f !important;
    color: #ffffff !important;
}

body.pvr-body .pvr-check,
body.pvr-body .pvr-check * {
    color: #ffffff !important;
}

/* Analiza panelu */
body.pvr-body .pvr-analysis {
    background: #0d202b !important;
}

body.pvr-body #pvrPanelSubtitle {
    color: #b8cfdb !important;
    font-weight: 500;
}

body.pvr-body .pvr-metric {
    background: #081923 !important;
    border-color: #3a5c70 !important;
}

body.pvr-body .pvr-metric span {
    color: #9dbccc !important;
}

body.pvr-body .pvr-metric strong {
    color: #ffffff !important;
}

/* Grafiki analizy */
body.pvr-body .pvr-evidence h3 {
    color: #f4f8fa !important;
    font-weight: 700 !important;
}

body.pvr-body .pvr-evidence p {
    color: #a9c0ce !important;
}

body.pvr-body .pvr-evidence img {
    background: #050d13 !important;
    border-color: #3a5c70 !important;
}

/* Komentarz */
body.pvr-body .pvr-comment {
    border-top-color: #35566a !important;
}

body.pvr-body .pvr-comment p,
body.pvr-body #pvrComment {
    color: #eef5f8 !important;
}

/* Badge */
body.pvr-body .pvr-badge {
    background: #27495d !important;
    color: #ffffff !important;
}

/* Mapa i 3D */
body.pvr-body .pvr-map-stage,
body.pvr-body .pvr-3d-stage,
body.pvr-body #pvr3dCanvas {
    background: #03090d !important;
}

body.pvr-body .pvr-map-hint,
body.pvr-body .pvr-3d-message {
    background: rgba(4, 17, 24, .94) !important;
    color: #e7f0f5 !important;
    border: 1px solid #315265;
}

/* Modal */
body.pvr-body .pvr-modal {
    background: rgba(1, 7, 11, .82) !important;
}

body.pvr-body .pvr-modal-card {
    background: #102631 !important;
    border-color: #476d81 !important;
    color: #edf5f8 !important;
    box-shadow: 0 24px 70px rgba(0,0,0,.55);
}

body.pvr-body .pvr-modal-card h1,
body.pvr-body .pvr-modal-card h2,
body.pvr-body .pvr-modal-card h3,
body.pvr-body .pvr-modal-body,
body.pvr-body .pvr-modal-body p,
body.pvr-body .pvr-modal-body li,
body.pvr-body .pvr-modal-body td {
    color: #eef5f8 !important;
}

body.pvr-body .pvr-modal-body td {
    border-bottom-color: #385a6d !important;
}

body.pvr-body .pvr-modal-close {
    color: #ffffff !important;
}

/* Pasek ładowania / komunikaty */
body.pvr-body .pvr-loading,
body.pvr-body .pvr-alert {
    background: #0d202b !important;
    border-color: #3b6176 !important;
    color: #eef5f8 !important;
}

body.pvr-body .pvr-progress-track {
    background: #061017 !important;
    border-color: #35566a !important;
}

body.pvr-body .pvr-progress-meta,
body.pvr-body .pvr-loading-copy span {
    color: #a9c0ce !important;
}

/* Główny przycisk */
body.pvr-body .pvr-file-button {
    background: #e68428 !important;
    border-color: #f3a04a !important;
    color: #ffffff !important;
}

body.pvr-body .pvr-file-button:hover {
    background: #f0953c !important;
}

/* Linki */
body.pvr-body a {
    color: #8dd5ff;
}

/* Wymuszenie jasnych tekstów dla elementów, które style.css ustawia na czarne */
body.pvr-body .pvr-shell strong,
body.pvr-body .pvr-shell b,
body.pvr-body .pvr-shell th,
body.pvr-body .pvr-shell td {
    color: #f4f8fa;
}

/* Tło poza głównym kontenerem — usuwa białe marginesy */
body.pvr-body::before,
body.pvr-body::after {
    background: #071018 !important;
}

/* Pasek przewijania */
body.pvr-body * {
    scrollbar-width: thin;
    scrollbar-color: #456a7e #08151d;
}

body.pvr-body *::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

body.pvr-body *::-webkit-scrollbar-track {
    background: #08151d;
}

body.pvr-body *::-webkit-scrollbar-thumb {
    background: #456a7e;
    border-radius: 10px;
    border: 2px solid #08151d;
}


/* WEB VIEWER 2.7 — prywatność wersji demo */
.pvr-demo-note{
    background:#0a1821;
    border:1px solid #35566a;
    color:#ffc16d !important;
    padding:10px 12px;
    border-radius:8px;
    margin-bottom:12px;
}
.pvr-demo-data-table .pvr-demo-blur{
    color:transparent !important;
    text-shadow:0 0 8px rgba(235,245,250,.9);
    user-select:none;
    pointer-events:none;
    filter:blur(5px);
}
.pvr-demo-data-table .pvr-demo-blur::selection{
    background:transparent;
    color:transparent;
}
