:root{--font-sans:"Inter", "Segoe UI", Tahoma, sans-serif;--font-display:"Inter", "Segoe UI", Tahoma, sans-serif;--font-mono:"Consolas", "Cascadia Code", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--color-bg:#15181f;--color-surface:#fff;--color-surface-soft:#f5f7fa;--color-text:#263748;--color-text-muted:#5f7184;--color-border:#d7dee9;--color-primary:#114f8e;--color-primary-strong:#0b3968;--color-focus:#1b5fa8;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--shadow-sm:0 1px 2px #121f2d14;--shadow-md:0 12px 26px #121f2d24;--bp-mobile:640px;--bp-tablet:960px;--bp-desktop:1200px}*{box-sizing:border-box}body{font-family:var(--font-sans);color:var(--color-text);background:radial-gradient(circle at 15% 15%, #f7fbfa, var(--color-bg));margin:0}.container{width:min(1120px, 100% - (var(--space-6) * 2));margin-inline:auto}.section{padding-block:var(--space-10)}.surface{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.row{flex-wrap:wrap;align-items:center;display:flex}.stack{flex-direction:column;display:flex}.align-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.px-4{padding-inline:var(--space-4)}.py-8{padding-block:var(--space-8)}@media (width<=1200px){.container{width:min(960px, 100% - (var(--space-5) * 2))}}@media (width<=960px){.section{padding-block:var(--space-8)}.container{width:min(100%, 100% - (var(--space-4) * 2))}}@media (width<=640px){.section{padding-block:var(--space-6)}.row{flex-direction:column;align-items:stretch}}:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}#root{min-height:100vh;display:block}.dashboard-page{background:#15181f;min-height:100vh;padding:2.5rem 1rem}.login-page{background:radial-gradient(circle at 100% 0,#1f4d7f,#141b26 52%);place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{background:#edf3fb;border:1px solid #1f3551;border-radius:.5rem;gap:.6rem;width:min(24rem,100%);padding:1.2rem;display:grid;box-shadow:0 20px 35px #0000005c}.login-card h1{color:#1a3652;margin:0;font-size:1.1rem}.login-card p{color:#47607b;margin:0;font-size:.84rem}.login-form{gap:.38rem;display:grid}.login-form label{color:#37516b;font-size:.64rem;font-weight:700}.login-form input{color:#1f344d;background:#fff;border:1px solid #bdd0e6;border-radius:.24rem;padding:.44rem .52rem;font-size:.74rem}.login-form button{justify-self:start;margin-top:.3rem}.login-error{color:#a11f2c;margin:0;font-size:.7rem;font-weight:700}.dashboard-shell{background:#f5f7fa;border:1px solid #d8dde6;border-radius:.35rem;width:min(1440px,100% - 3rem);margin:0 auto;overflow:hidden;box-shadow:0 24px 40px #00000059}.top-header{color:#fff;background:#114f8e;border-bottom:1px solid #0c3f73;justify-content:space-between;align-items:center;padding:.42rem .9rem;display:flex}.brand-row{align-items:center;gap:.45rem;display:flex}.brand-dot{background:#fff;border-radius:999px;width:.5rem;height:.5rem}.top-header h1{letter-spacing:.01em;color:#fff;margin:0;font-size:.8rem;font-weight:600}.badge{letter-spacing:.06em;color:#b9dbff;font-size:.58rem;font-weight:700}.top-header-actions{justify-items:end;gap:.22rem;display:grid}.banner-nav{align-items:center;gap:.28rem;display:flex}.banner-nav input{color:#1e3550;background:#fff;border:1px solid #8fb4d6;border-radius:.22rem;width:5rem;padding:.18rem .34rem;font-size:.58rem}.banner-nav .chip{padding:.14rem .34rem;font-size:.56rem}.banner-nav-error{color:#ffd7d7;font-size:.52rem}.surface-line{border-bottom:1px solid #e1e6ee;padding:.58rem .9rem}.toolbar{background:#eef2f7;justify-content:space-between;align-items:center;display:flex}.toolbar-left{flex-wrap:wrap;align-items:center;gap:.36rem;display:flex}.toolbar-form{gap:.36rem;display:flex}.toolbar-form input{color:#273648;background:#fff;border:1px solid #c9d4e3;border-radius:.22rem;padding:.2rem .42rem;font-size:.62rem}.chip{color:#273648;cursor:pointer;background:#fff;border:1px solid #c9d4e3;border-radius:.22rem;padding:.2rem .45rem;font-size:.64rem;line-height:1.2}.chip-strong{color:#fff;background:#1d2c42;border-color:#1d2c42}.chip-logout{color:#fff;background:#7f1f30;border-color:#7f1f30}.chip-logout:hover{border-color:#9f2c42}.chip:hover{border-color:#8ea7c8}.chip:focus-visible,.tab:focus-visible{outline-offset:1px;outline:2px solid #1b5fa8}.meta-text{color:#66788d;margin:0;font-size:.6rem}.ontology-strip{background:#f8fafc}.strip-title{letter-spacing:.07em;color:#607588;margin-bottom:.38rem;font-size:.55rem;font-weight:700}.strip-grid{color:#4e6277;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;font-size:.62rem;display:grid}.surface-card{background:#fff;border:1px solid #d6deea;border-radius:.25rem;margin:.75rem .9rem;padding:.65rem}.source-row,.mode-row{align-items:center;gap:.55rem;display:flex}.mode-row{margin-top:.52rem}.field-label{color:#5b7085;letter-spacing:.05em;width:5.2rem;font-size:.58rem;font-weight:700}.source-field-group{flex:1;gap:.5rem;display:flex}.source-field-group input{color:#2d3f56;background:#f9fbfe;border:1px solid #c9d4e3;border-radius:.24rem;flex:1;padding:.3rem .45rem;font-size:.62rem}.mode-toggle{gap:.4rem;display:flex}.analysis-grid{--metadata-panel-width:min(34rem, 42%);min-height:0;margin:0 .9rem;position:relative}.comparison-grid{margin-right:calc(var(--metadata-panel-width) + .75rem);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:.75rem;display:grid}.source-comparison-pane{flex-direction:column;min-height:clamp(24rem,100vh - 18rem,36rem);display:flex}.pane-header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.pane-header-main{gap:.28rem;display:grid}.pane-viewer-mode{flex-wrap:nowrap;gap:.2rem;display:flex}.pane-viewer-mode .chip{white-space:nowrap;padding:.12rem .34rem;font-size:.53rem}.pane-header-stacked{flex-direction:column;align-items:flex-start}.pane-form{align-items:center;gap:.22rem;display:flex}.pane-form input{color:#273648;background:#f9fbfe;border:1px solid #c9d4e3;border-radius:.22rem;width:4.25rem;padding:.16rem .33rem;font-size:.58rem}.pane-form .chip{padding:.16rem .34rem;font-size:.58rem}.pane-message{color:#5a6f83;min-height:1rem;padding:.35rem .6rem 0;font-size:.58rem}.diff-helper{color:#5c6f82;margin:0;font-size:.58rem}.diff-legend{flex-wrap:wrap;gap:.4rem;padding:.35rem .6rem .1rem;display:flex}.diff-badge{letter-spacing:.02em;border:1px solid #0000;border-radius:999px;padding:.14rem .45rem;font-size:.52rem;font-weight:700;display:inline-flex}.diff-badge-remove{color:#785f00;background:#fdf3c8;border-color:#e7d483}.diff-badge-add{color:#22683a;background:#e6f7ea;border-color:#abdfb8}.diff-content{border:1px solid #d4dde9;border-radius:.22rem;margin:.6rem;overflow:hidden}.diff-content-bubbles-only{padding:.52rem}.pane-bubble-strip{flex-wrap:wrap;align-items:center;gap:.36rem;margin:.24rem .6rem 0;display:flex}.diff-index-bubble-button{color:#1f3957;cursor:pointer;background:#eaf2fb;border:1px solid #9ab1cc;border-radius:999px;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;font-size:.58rem;font-weight:700;line-height:1;display:inline-flex}.diff-index-bubble-button:hover{background:#dbeafb;border-color:#5f83ad}.diff-index-bubble-button:focus-visible{outline-offset:1px;outline:2px solid #1b5fa8}.diff-index-bubble-button-active{color:#fff;background:#1b5fa8;border-color:#1b5fa8}.diff-section{border-top:1px solid #e1e8f2}.diff-section:first-child{border-top:none}.diff-section h3{color:#37516b;background:#f4f7fb;border-bottom:1px solid #e2e8f0;margin:0;padding:.42rem .55rem;font-size:.59rem}.diff-section ul{margin:0;padding:0;list-style:none}.diff-entry{border-top:1px solid #edf2f8;padding:.34rem .55rem;font-size:.57rem;display:block}.diff-entry:first-child{border-top:none}.diff-entry-changed{grid-template-columns:1fr;gap:.28rem;display:grid}.diff-nav-button{color:#23354a;text-align:left;cursor:pointer;background:#fff;border:1px solid #d1dbe8;border-radius:.22rem;grid-template-columns:minmax(0,1fr);align-items:start;gap:.18rem;width:100%;padding:.32rem .42rem;display:grid}.diff-nav-button-presence{grid-template-rows:auto;grid-template-columns:auto auto minmax(0,1fr);gap:.26rem}.diff-nav-button-inline{grid-template-columns:auto auto minmax(0,1fr);gap:.28rem}.diff-index-bubble{color:#1f3957;background:#eaf2fb;border:1px solid #9ab1cc;border-radius:999px;justify-content:center;justify-self:start;align-items:center;min-width:1.05rem;min-height:1.05rem;font-size:.54rem;font-weight:700;line-height:1;display:inline-flex}.diff-text-block{gap:.08rem;min-width:0;display:grid}.diff-nav-button:hover{border-color:#8ea7c8}.diff-nav-button:hover .diff-index-bubble{background:#dbeafb;border-color:#5f83ad}.diff-nav-button:focus-visible{outline-offset:1px;outline:2px solid #1b5fa8}.diff-nav-button:focus-visible .diff-index-bubble{border-color:#1b5fa8}.diff-nav-button-active{border-color:#1b5fa8;box-shadow:0 0 0 1px #1b5fa8}.diff-nav-button-active .diff-index-bubble{color:#fff;background:#1b5fa8;border-color:#1b5fa8}.diff-pill{color:#2f4964;letter-spacing:.02em;background:#f2f6fb;border:1px solid #c8d5e6;border-radius:999px;justify-content:center;justify-self:start;align-items:center;padding:.08rem .36rem;font-size:.5rem;font-weight:700;display:inline-flex}.diff-path{color:#30465d;font-family:var(--font-mono);word-break:break-word;overflow-wrap:anywhere;line-height:1.24}.diff-value{font-family:var(--font-mono);color:#23354a;word-break:break-word;overflow-wrap:anywhere;line-height:1.22}.diff-entry-remove{color:#795d00;background:#fef8df}.diff-entry-add{color:#1f5f34;background:#edf9f1}.source-target-banner{background:#edf6ff;border:1px solid #c3d9f3;border-radius:.22rem;margin:.2rem .6rem 0;padding:.22rem .42rem}.source-target-banner-pre{background:#fff8dd;border-color:#d5c986}.source-target-banner-post{background:#ecfaef;border-color:#8ec7a0}.source-target-path{color:#2f4964;font-size:.56rem;font-family:var(--font-mono);word-break:break-word}.json-path-view{gap:.2rem;display:grid}.json-path-row{background:#202a3a;border:1px solid #2d3a52;border-radius:.2rem;grid-template-columns:minmax(0,1.4fr) minmax(0,2fr);align-items:start;gap:.35rem;padding:.3rem .4rem;display:grid}.json-path-row:focus-visible{outline-offset:1px;outline:2px solid #9ec7ff}.json-path-row-active{background:#223449;border-color:#9ec7ff;box-shadow:0 0 0 1px #9ec7ff}.source-pane-active{border-color:#1b5fa8;box-shadow:0 0 0 1px #1b5fa8}.source-pane-active-pre{border-color:#8f7a1a;box-shadow:0 0 0 1px #8f7a1a}.source-pane-active-post{border-color:#2f8f52;box-shadow:0 0 0 1px #2f8f52}.source-code-view-active{background:#142031}.source-code-view-active-pre{background:linear-gradient(#302611 0%,#1c2535 40%)}.source-code-view-active-post{background:linear-gradient(#113026 0%,#1c2535 40%)}.comparison-code-wrapper{border-radius:.2rem;flex:1;min-height:0;margin:.45rem .6rem .6rem;display:flex}.comparison-code-wrapper .code-view{height:100%;margin:0}.code-view-lines{height:100%;min-height:34rem;overflow:auto}.code-line{white-space:pre;border-radius:.1rem;padding:0 .2rem;display:block}.code-line-highlight{color:#eef4ff;background:#1546a6}.comparison-code-wrapper .code-view::-webkit-scrollbar{width:10px;height:10px}.comparison-code-wrapper .code-view::-webkit-scrollbar-thumb{background:#4b6380;border-radius:999px}.comparison-code-wrapper .code-view::-webkit-scrollbar-track{background:#111a28}.source-code-view-active-pre .code-line-highlight{background:#1b4fb6}.source-code-view-active-post .code-line-highlight{background:#176b4f}.json-path-key{color:#8ec0ff;font-family:var(--font-mono);word-break:break-word}.json-path-value{color:#d2e4ff;font-family:var(--font-mono);word-break:break-word}.json-path-empty{color:#9db2ce}.diff-empty{color:#64788e;margin:0;padding:.42rem .55rem;font-size:.57rem}.panel{background:#fff;border:1px solid #d6deea;border-radius:.25rem}.panel-header{border-bottom:1px solid #e2e8f0;padding:.5rem .6rem}.panel-header h2{color:#344a60;margin:0;font-size:.68rem}.code-view{color:#c6dbff;min-height:17rem;font-family:var(--font-mono);background:#1c2535;border-radius:.2rem;margin:0;padding:.75rem;font-size:.63rem;line-height:1.55;overflow:auto}.code-panel{padding:0}.code-panel .panel-header{border-bottom:none}.code-panel .code-view{margin:.6rem}.metadata-panel{min-height:0;padding-bottom:.2rem}.metadata-panel-absolute{width:var(--metadata-panel-width);height:clamp(35.2rem,160vh - 28.8rem,54.4rem);position:absolute;top:0;right:0;overflow:hidden}.right-pane{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.right-pane-content{grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:.35rem;min-height:0;padding:.35rem;display:grid}.right-pane-half{min-height:0}.right-pane-top-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.3rem;display:grid}.right-pane-card{background:#f9fbfe;border:1px solid #d6deea;border-radius:.24rem;grid-template-rows:auto minmax(0,1fr);gap:.24rem;min-height:0;padding:.3rem;display:grid;overflow:hidden}.right-pane-card h3{color:#2f4662;margin:0;font-size:.55rem;line-height:1.25}.right-pane-image-button{cursor:zoom-in;background:0 0;border:0;width:100%;height:100%;min-height:0;margin:0;padding:0}.right-pane-image{object-fit:cover;background:#121a28;border:1px solid #d2dae7;border-radius:.2rem;width:100%;height:100%;min-height:0}.right-pane-empty{color:#9fb4cc;text-align:center;background:#121a28;border:1px solid #d2dae7;border-radius:.2rem;place-items:center;min-height:0;padding:.6rem;font-size:.58rem;display:grid}.right-pane-ocr-text{color:#415a73;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;min-height:0;margin:0;font-size:.57rem;line-height:1.35;overflow:auto}.image-expand-overlay{z-index:1500;background:#080f1cd1;place-items:center;padding:clamp(.8rem,2.5vw,1.6rem);display:grid;position:fixed;inset:0}.image-expand-close{color:#1f344d;cursor:pointer;background:#f4f8fd;border:1px solid #d8e3f0;border-radius:.24rem;padding:.3rem .6rem;font-size:.64rem;position:absolute;top:clamp(.8rem,2.8vw,1.2rem);right:clamp(.8rem,2.8vw,1.2rem)}.image-expand-image-button{cursor:zoom-out;background:0 0;border:0;max-width:min(94vw,70rem);max-height:min(88vh,52rem);margin:0;padding:0}.image-expand-image{object-fit:contain;background:#0f1726;border:1px solid #d0deee;border-radius:.35rem;width:auto;max-width:min(94vw,70rem);height:auto;max-height:min(88vh,52rem);display:block}.metadata-panel .panel-header{padding:.4rem .5rem}.metadata-columns-grid{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;display:grid}.metadata-column{background:#f9fbfe;border:1px solid #d6deea;border-radius:.24rem;grid-template-rows:auto minmax(0,1fr);gap:.24rem;min-height:0;padding:.3rem;display:grid;overflow:hidden}.metadata-column h3{color:#2f4662;margin:0;font-size:.55rem;line-height:1.25}.metadata-column p{color:#415a73;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;min-height:0;margin:0;font-size:.57rem;line-height:1.35;overflow:auto}.summary-list{gap:.42rem;margin:0;padding:.55rem .7rem;list-style:none;display:grid}.summary-list li{color:#42576e;justify-content:space-between;align-items:center;font-size:.64rem;display:flex}.summary-list strong{color:#1d2c42}.score-ring{aspect-ratio:1;color:#1b6c3c;background:#f8fcfa;border:5px solid #d0e6d7;border-top-color:#1f8f4c;border-radius:999px;place-items:center;width:5rem;margin:.45rem auto;font-size:1rem;font-weight:700;display:grid}.severity{text-align:center;color:#6a7f90;margin:0;font-size:.58rem}.severity strong{color:#ba7a21;margin-left:.25rem}.record-block{margin:.8rem .9rem .9rem}.record-tabs{border-bottom:1px solid #e1e6ee;gap:.35rem;padding:.5rem .55rem;display:flex}.tab{color:#5a6f83;background:#f6f9fd;border:1px solid #d1dbe8;border-radius:.22rem;padding:.28rem .48rem;font-size:.62rem}.tab.active{color:#1f3750;background:#fff;border-color:#9bb4d4}.record-content{color:#495d71;padding:.65rem;font-size:.64rem}.record-content p{color:#4f6378;margin:0;line-height:1.6}.status-tags{gap:.4rem;margin-top:.45rem;display:flex}.tag{border:1px solid #0000;border-radius:999px;padding:.16rem .45rem;font-size:.54rem;font-weight:700;display:inline-flex}.tag.good{color:#2f6f3e;background:#eaf7ec;border-color:#b6dfbd}.record-content ul{color:#5a6f83;margin:.55rem 0 0;padding-left:1rem}.record-content li{margin-top:.24rem}@media (width<=1100px){.analysis-grid{min-height:0}.comparison-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-right:0}.metadata-panel-absolute{width:auto;height:auto;position:static}.pane-header{flex-direction:column;align-items:flex-start}.pane-header-main{width:100%}.pane-viewer-mode,.pane-form{flex-wrap:wrap}.diff-entry{padding:.3rem .45rem}.source-comparison-pane{min-height:31rem}.diff-nav-button{justify-items:start}.diff-nav-button-inline{grid-template-columns:auto auto minmax(0,1fr)}.json-path-row{grid-template-columns:1fr}.code-view-lines{min-height:22rem}}@media (width<=760px){.comparison-grid,.right-pane-top-grid,.metadata-columns-grid{grid-template-columns:1fr}.metadata-columns-grid{grid-template-rows:repeat(4,minmax(0,1fr))}.right-pane-content{grid-template-rows:auto auto}.metadata-panel{min-height:auto}}@media (width<=1024px){.dashboard-shell{width:min(100%,100% - 1rem)}.analysis-grid{grid-template-columns:1fr}.summary-panel{order:-1}.strip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.dashboard-page{padding:1rem .45rem}.top-header,.surface-line,.surface-card,.record-block{margin-inline:.5rem}.top-header{flex-direction:column;align-items:flex-start;gap:.25rem}.top-header-actions{justify-items:start;width:100%}.banner-nav{flex-wrap:wrap}.toolbar,.source-row,.mode-row{flex-direction:column;align-items:flex-start}.field-label{width:auto}.source-field-group{flex-direction:column;width:100%}.record-tabs{flex-wrap:wrap}.source-comparison-pane{min-height:24rem}.code-view-lines{min-height:18rem}}
