:root{--color-success:#2f7043;--color-success-bg:#2f70431f;--color-warning:#9c5210;--color-warning-bg:#9c52101f;--color-error:#a93328;--color-error-bg:#a933281a;--color-info:#1f5e9e;--color-info-bg:#1f5e9e1f;--color-accent:#d97757;--color-accent-bg:#d977571f;--color-accent-strong:#c25e3c;--color-accent-text:#b8552f;--color-on-accent:#fff;--color-paper:#fff;--color-ink:#141413;--color-ink-text:#faf9f5;--text:#141413;--text-secondary:#6f6f68;--text-tertiary:#7f7d75;--text-h:#141413;--bg:#faf9f5;--bg-secondary:#fff;--bg-tertiary:#f4f2ec;--border:#e8e6dd;--separator:#1414131a;--shadow-sm:0 1px 2px #1414130a;--shadow-md:0 4px 20px #14141309, 0 0 0 1px #1414130a;--shadow-lg:0 12px 40px #14141314, 0 0 0 1px #1414130a;--radius-sm:10px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--focus-ring:0 0 0 3px #d977572e;--font-display:"Copernicus", "Tiempos Text", "Iowan Old Style", Georgia, "Times New Roman", serif;--font-ui:"Styrene A", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--sans:var(--font-ui);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-success:#5ebb7e;--color-success-bg:#5ebb7e24;--color-warning:#d9963f;--color-warning-bg:#d9963f24;--color-error:#ec7d70;--color-error-bg:#ec7d701f;--color-info:#6ba7e0;--color-info-bg:#6ba7e024;--color-accent:#e08b67;--color-accent-bg:#e08b6724;--color-accent-strong:#ef9d78;--color-accent-text:#e08b67;--color-on-accent:#191918;--color-ink:#f2f1eb;--color-ink-text:#191918;--text:#f2f1eb;--text-secondary:#b5b4ac;--text-tertiary:#8a8982;--text-h:#f7f6f1;--bg:#191918;--bg-secondary:#222220;--bg-tertiary:#2b2b28;--border:#2e2d2a;--separator:#ffffff1a;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 20px #0006, 0 0 0 1px #ffffff0a;--shadow-lg:0 12px 40px #0000008c, 0 0 0 1px #ffffff0a;--focus-ring:0 0 0 3px #e08b673d}}*{box-sizing:border-box}html,body,#root{min-height:100svh;margin:0;padding:0}body{color:var(--text);background:var(--bg);font-size:15px;line-height:1.5}button{font-family:inherit}h1,h2,h3,p{margin:0}.app-shell{max-width:860px;padding:var(--space-7) var(--space-5) var(--space-7);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}.app-header{align-items:center;gap:var(--space-3);text-align:center;margin-bottom:var(--space-2);flex-direction:column;display:flex}.app-brand{align-items:center;gap:var(--space-2);color:var(--text-tertiary);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:600;display:inline-flex}.app-title{font-family:var(--font-display);letter-spacing:-.015em;color:var(--text-h);text-wrap:balance;font-size:2.1rem;font-weight:500;line-height:1.15}.app-subtitle{color:var(--text-secondary);max-width:46ch;font-size:.95rem}.decision-guidance{gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-tertiary);flex-direction:column;display:flex}.decision-guidance strong{color:var(--text-h)}.decision-guidance span,.panel-help{color:var(--text-secondary);font-size:.88rem}.decision-guidance-approved{border-color:color-mix(in srgb, var(--color-success) 35%, var(--border));background:var(--color-success-bg)}.decision-guidance-approved_with_warnings{border-color:color-mix(in srgb, var(--color-warning) 35%, var(--border));background:var(--color-warning-bg)}.decision-guidance-rejected{border-color:color-mix(in srgb, var(--color-error) 35%, var(--border));background:var(--color-error-bg)}.panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5);gap:var(--space-3);flex-direction:column;display:flex}.panel-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);font-size:.72rem;font-weight:600}.segment{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-tertiary);flex-wrap:nowrap;align-self:flex-start;gap:2px;padding:3px;display:inline-flex;position:relative}.segment-indicator{border-radius:var(--radius-pill);background:var(--bg-secondary);height:calc(100% - 6px);box-shadow:var(--shadow-sm);z-index:0;pointer-events:none;transition:transform .22s cubic-bezier(.4,0,.2,1),width .22s cubic-bezier(.4,0,.2,1);position:absolute;top:3px;left:0}.segment-button{z-index:1;border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer;text-align:center;white-space:nowrap;background:0 0;border:none;padding:6px 16px;font-size:.82rem;font-weight:600;transition:color .15s;position:relative}.segment-button:hover,.segment-button[aria-pressed=true]{color:var(--text)}.segment-button:focus-visible{box-shadow:var(--focus-ring);outline:none}.drop-zone{justify-content:center;align-items:center;gap:var(--space-3);min-height:200px;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--bg-secondary);box-shadow:var(--shadow-md);cursor:pointer;text-align:center;flex-direction:column;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.drop-zone:hover{border-color:var(--color-accent);box-shadow:var(--shadow-lg)}.drop-zone.is-dragging{border-color:var(--color-accent-strong);box-shadow:var(--shadow-lg);background:var(--color-accent-bg)}.drop-zone input,#pdf-file{display:none}.drop-zone-icon{width:48px;height:48px;color:var(--color-accent);justify-content:center;align-items:center;display:flex}.drop-zone-icon svg{width:40px;height:40px;fill:var(--color-accent)}.drop-zone-title{color:var(--text-h);font-size:.98rem;font-weight:500}.drop-zone-hint{color:var(--text-tertiary);font-size:.82rem}.drop-zone-file{color:var(--color-accent-text);font-weight:500}.scan-panel{text-align:center;align-items:center;gap:var(--space-3)}.scan-status{color:var(--text-h);font-weight:500}.scan-detail{color:var(--text-tertiary);font-size:.85rem}.summary-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.summary-stat{min-width:56px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border);flex-direction:column;align-items:center;display:flex}.summary-value{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:650}.summary-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-size:.68rem}.decision-badge{margin-left:auto}.badge{border-radius:var(--radius-pill);letter-spacing:.01em;padding:4px 12px;font-size:.72rem;font-weight:600}.badge-decision-approved{background:var(--color-success-bg);color:var(--color-success)}.badge-decision-approved_with_warnings{background:var(--color-warning-bg);color:var(--color-warning)}.badge-decision-rejected,.badge-severity-error{background:var(--color-error-bg);color:var(--color-error)}.badge-severity-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge-severity-info{background:var(--color-info-bg);color:var(--color-info)}.btn{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-secondary);color:var(--text);cursor:pointer;align-items:center;gap:6px;padding:8px 18px;font-size:.82rem;font-weight:500;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.btn:hover{border-color:var(--separator);background:var(--bg-tertiary)}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn-primary{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-ink-text)}.btn-primary:hover{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-ink-text);opacity:.88}.error-panel{background:var(--color-error-bg);border:1px solid var(--color-error)}.error-text{color:var(--color-error);font-weight:500}.issue-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.issue{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);font-size:.88rem;display:flex}.issue-label{color:var(--text-h);font-weight:600}.issue-description{color:var(--text-secondary);text-align:right;max-width:55%;margin-left:auto;font-size:.82rem}.issue-page{color:var(--text-tertiary);white-space:nowrap;font-size:.78rem}.empty-state{padding:var(--space-5);text-align:center;color:var(--text-tertiary);font-size:.9rem}.spinner{border:2px solid var(--border);border-top-color:var(--color-accent);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.viewer-panel{gap:var(--space-3)}.pdf-toolbar{align-items:center;gap:var(--space-2);font-size:.85rem;display:flex}.pdf-toolbar button{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-secondary);color:var(--text);cursor:pointer;padding:6px 14px;font-size:.9rem;transition:border-color .15s,background .15s,color .15s}.pdf-toolbar button:hover:not(:disabled){border-color:var(--separator);background:var(--bg-tertiary)}.pdf-toolbar button:disabled{opacity:.4;cursor:default}.pdf-toolbar button:focus-visible{box-shadow:var(--focus-ring);outline:none}.toolbar-spacer{flex:1}.toolbar-label{color:var(--text-secondary);font-variant-numeric:tabular-nums}.pdf-viewer{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-secondary);min-height:240px;padding:var(--space-4);justify-content:center;align-items:flex-start;display:flex;overflow:auto}.pdf-canvas{border-radius:var(--radius-sm);max-width:100%;height:auto;box-shadow:var(--shadow-sm);background:var(--color-paper)}.issue-jump-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.issue-chip{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-secondary);color:var(--text);cursor:pointer;align-items:center;gap:6px;padding:5px 12px;font-size:.78rem;transition:border-color .15s,background .15s;display:inline-flex}.issue-chip:hover:not(:disabled){border-color:var(--separator);background:var(--bg-tertiary)}.issue-chip:disabled{opacity:.5;cursor:default}.issue-chip-active{border-color:var(--color-error);background:var(--color-error-bg);color:var(--color-error);font-weight:600}.issue-chip:focus-visible{box-shadow:var(--focus-ring);outline:none}.heatmap-toggle{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-secondary);color:var(--text);cursor:pointer;padding:6px 14px;font-size:.8rem;transition:background .15s,border-color .15s,color .15s}.heatmap-toggle:hover{border-color:var(--separator);background:var(--bg-tertiary)}.heatmap-toggle:focus-visible{box-shadow:var(--focus-ring);outline:none}.heatmap-active{border-color:var(--color-accent);background:var(--color-accent-bg);color:var(--color-accent-text);font-weight:600}.spot-legend{gap:var(--space-3);padding:var(--space-2) 0;color:var(--text-secondary);flex-wrap:wrap;font-size:.82rem;display:flex}.spot-legend-item{align-items:center;gap:6px;display:inline-flex}.spot-swatch{border:1px solid var(--border);border-radius:4px;width:14px;height:14px;display:inline-block}.viewer-error{color:var(--color-error);font-size:.85rem}.footnote{color:var(--text-tertiary);text-align:center;padding-top:var(--space-3);font-size:.75rem}@media (width<=640px){.app-shell{padding:var(--space-5) var(--space-4)}.app-title{font-size:1.7rem}.issue-description{display:none}.segment{align-self:stretch}.segment-button{flex:auto}}.file-meta{align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-3);color:var(--text-secondary);flex-wrap:wrap;font-size:.8rem;display:flex}.file-meta-name{color:var(--text);font-weight:600}.file-meta-item{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-tertiary);color:var(--text-secondary);padding:2px 10px}.issue-groups{gap:var(--space-4);flex-direction:column;display:flex}.issue-group{gap:var(--space-2);flex-direction:column;display:flex}.issue-group-head{align-items:center;gap:var(--space-2);display:flex}.issue-group-count{border-radius:var(--radius-full);justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 7px;font-size:.72rem;font-weight:700;display:inline-flex}.issue-group-count-error{background:var(--color-error-bg);color:var(--color-error)}.issue-group-count-warning{background:var(--color-warning-bg);color:var(--color-warning)}.issue-group-count-info{background:var(--bg-tertiary);color:var(--text-secondary)}.issue-group-label{color:var(--text);font-size:.85rem;font-weight:600}.issue-group-pages{color:var(--text-tertiary);font-size:.72rem}.checklist{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));margin:0;padding:0;list-style:none;display:grid}.checklist-item{align-items:center;gap:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);padding:8px 12px;font-size:.8rem;display:flex}.checklist-status{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:.7rem;font-weight:700;display:inline-flex}.checklist-pass .checklist-status{background:var(--color-success-bg);color:var(--color-success)}.checklist-fail .checklist-status{background:var(--color-error-bg);color:var(--color-error)}.checklist-warn .checklist-status{background:var(--color-warning-bg);color:var(--color-warning)}.checklist-label{color:var(--text);flex:1}.checklist-count{border-radius:var(--radius-pill);padding:1px 8px;font-size:.72rem;font-weight:700}.checklist-count-fail{background:var(--color-error-bg);color:var(--color-error)}.checklist-count-warn{background:var(--color-warning-bg);color:var(--color-warning)}.issue-detail{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-error);border-radius:var(--radius-md);background:var(--bg-secondary);flex-direction:column;display:flex}.issue-detail-head{align-items:center;gap:var(--space-2);display:flex}.issue-detail-cat{color:var(--text);font-weight:600}.issue-detail-page{color:var(--text-tertiary);font-size:.78rem}.issue-detail-text{color:var(--text);margin:0;font-size:.85rem}.issue-detail-tech{color:var(--text-tertiary);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}.doc-summary{gap:var(--space-4);flex-wrap:wrap;display:flex}.doc-summary-item{align-items:center;gap:var(--space-2);font-size:.8rem;display:flex}.doc-summary-key{color:var(--text-tertiary)}.doc-summary-value{color:var(--text);font-weight:600}.badge-pdfx-ok{background:var(--color-success-bg);color:var(--color-success)}.badge-pdfx-no{background:var(--color-warning-bg);color:var(--color-warning)}.file-bar{gap:var(--space-1);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-secondary);cursor:pointer;flex-direction:column;transition:border-color .15s,box-shadow .15s;display:flex}.file-bar:hover{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.file-bar.is-dragging{border-color:var(--color-accent-strong);background:var(--color-accent-bg)}.file-bar-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:600;overflow:hidden}.file-bar-hint{color:var(--text-tertiary);font-size:.75rem}.pdf-viewer-panel{gap:var(--space-3);flex-direction:column;display:flex}.pdf-viewer-body{gap:var(--space-3);height:min(72vh,760px);min-height:420px;display:flex}.pdf-stage{gap:var(--space-3);flex-direction:column;flex:auto;min-width:0;display:flex}.pdf-stage .pdf-viewer{flex:auto;justify-content:center;align-items:flex-start;min-height:0;display:flex;overflow:auto}.pdf-issues{gap:var(--space-2);border-left:1px solid var(--border);width:340px;padding-left:var(--space-3);flex-direction:column;flex:0 0 340px;display:flex;overflow:hidden}.pdf-issues-head{justify-content:space-between;align-items:center;display:flex}.pdf-issues-total{color:var(--text-tertiary);border:1px solid var(--border);border-radius:var(--radius-pill);padding:2px 10px;font-size:.8rem;font-weight:700}.pdf-issues .issue-list{gap:var(--space-3);min-height:0;padding-right:var(--space-1);flex-direction:column;flex:auto;display:flex;overflow-y:auto}.issue-list-group{flex-direction:column;gap:4px;display:flex}.issue-list-head{align-items:center;gap:var(--space-2);padding:4px 0;display:flex}.severity-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.severity-dot-error{background:var(--color-error)}.severity-dot-warning{background:var(--color-warning)}.severity-dot-info{background:var(--text-tertiary)}.issue-list-label{color:var(--text);flex:1;font-size:.8rem;font-weight:600}.issue-list-count{border-radius:var(--radius-pill);padding:1px 8px;font-size:.72rem;font-weight:700}.issue-list-count-error{background:var(--color-error-bg);color:var(--color-error)}.issue-list-count-warning{background:var(--color-warning-bg);color:var(--color-warning)}.issue-list-count-info{background:var(--bg-tertiary);color:var(--text-secondary)}.issue-list-rows{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.issue-row{align-items:center;gap:var(--space-2);text-align:left;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);width:100%;color:var(--text);cursor:pointer;flex-wrap:wrap;padding:6px 10px;font-size:.8rem;transition:border-color .12s,background .12s;display:flex}.issue-row:hover:not(:disabled){border-color:var(--separator);background:var(--bg-tertiary)}.issue-row:disabled{opacity:.55;cursor:default}.issue-row-active{border-color:var(--color-error);background:var(--color-error-bg)}.issue-row-page{color:var(--text-tertiary);border:1px solid var(--border);border-radius:var(--radius-pill);flex-shrink:0;padding:0 6px;font-size:.72rem}.issue-row-title{flex:1;min-width:0}.issue-row-desc{color:var(--text-secondary);flex-basis:100%;font-size:.74rem}.pdf-page-nav{align-items:center;gap:4px;display:inline-flex}.pdf-page-nav input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);width:52px;color:var(--text);text-align:center;padding:4px 6px;font-size:.85rem}.pdf-page-nav input:focus-visible{box-shadow:var(--focus-ring);outline:none}
