html{background:#f5f7f7}body{min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}:root{--ink:#172126;--muted:#627078;--faint:#89949a;--line:#d8dfe2;--line-strong:#aeb9be;--surface:#fff;--surface-subtle:#f5f7f7;--surface-selected:#edf4ff;--blue:#1266d2;--blue-dark:#0c4fa9;--pass:#10804e;--pass-soft:#eaf7f0;--fail:#d33b32;--fail-soft:#fff0ee;--hold:#b47200;--hold-soft:#fff7e2;--shadow:0 16px 50px #1e2c3224;color:var(--ink);background:var(--surface-subtle);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}button{font:inherit;letter-spacing:0}button,a{-webkit-tap-highlight-color:transparent}.app-shell{background:var(--surface);grid-template-rows:64px minmax(610px,1fr) auto auto;min-height:100vh;display:grid}.app-header{border-bottom:1px solid var(--line);z-index:20;background:#fffffff5;justify-content:space-between;align-items:center;gap:24px;padding:0 28px;display:flex;position:sticky;top:0}.brand-group{align-items:center;gap:20px;min-width:0;display:flex}.wordmark{color:#0e1417;white-space:nowrap;font-size:25px;font-weight:760;line-height:1}.header-divider{background:var(--line);width:1px;height:28px}.fixture-switcher{color:var(--ink);align-items:center;padding:8px 4px;display:inline-flex}.provenance{border:1px solid var(--line);color:#39464c;white-space:nowrap;border-radius:4px;align-items:center;gap:7px;padding:6px 9px;font-size:13px;display:inline-flex}.button,.icon-button{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);cursor:pointer;transition:border-color .14s,background .14s,color .14s,transform .14s}.button{border-radius:4px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:8px 14px;font-weight:650;display:inline-flex}.button:hover,.icon-button:hover{border-color:var(--blue);color:var(--blue-dark);background:#f7fbff}.button:active,.icon-button:active{transform:translateY(1px)}.button:focus-visible,.icon-button:focus-visible,.scenario-row:focus-visible,.segmented button:focus-visible{outline-offset:2px;outline:3px solid #1266d240}.icon-button{border-radius:4px;place-items:center;width:34px;height:34px;padding:0;display:grid}.workspace{grid-template-columns:270px minmax(540px,1fr) 330px;min-height:0;display:grid}.scenario-rail,.contract-panel{background:var(--surface);min-width:0}.scenario-rail{border-right:1px solid var(--line)}.contract-panel{border-left:1px solid var(--line);flex-direction:column;display:flex}.rail-heading,.inspector-heading{border-bottom:1px solid var(--line);text-transform:uppercase;color:#49565c;justify-content:space-between;align-items:center;height:64px;padding:0 24px;font-size:12px;font-weight:740;display:flex}.rail-heading span:last-child{color:var(--faint)}.scenario-list{display:grid}.scenario-row{border:0;border-bottom:1px solid var(--line);background:var(--surface);min-height:88px;color:var(--ink);text-align:left;cursor:pointer;grid-template-columns:24px 18px minmax(0,1fr) auto;align-items:center;gap:10px;padding:14px 18px 14px 22px;display:grid;position:relative}.scenario-row:before{content:"";background:0 0;width:4px;position:absolute;inset:0 auto 0 0}.scenario-row:hover{background:#f8fafb}.scenario-row.selected{background:var(--surface-selected)}.scenario-row.selected:before{background:var(--blue)}.scenario-row.pass>svg{color:var(--pass)}.scenario-row.fail>svg{color:var(--fail)}.scenario-row.hold>svg{color:var(--hold)}.scenario-index{color:var(--faint);font-size:12px}.scenario-copy{gap:4px;min-width:0;display:grid}.scenario-copy strong{overflow-wrap:anywhere;font-size:14px;line-height:1.25}.scenario-copy small{color:var(--muted);overflow-wrap:anywhere;font-size:12px;line-height:1.25}.scenario-verdict{align-self:end;font-size:11px;font-weight:780}.scenario-row.pass .scenario-verdict{color:var(--pass)}.scenario-row.fail .scenario-verdict{color:var(--fail)}.scenario-row.hold .scenario-verdict{color:var(--hold)}.outcome-canvas{background-image:linear-gradient(#eef2f3 1px,#0000 1px),linear-gradient(90deg,#eef2f3 1px,#0000 1px);background-position:-1px -1px;background-size:28px 28px;min-width:0;padding:0 30px 28px}.outcome-canvas>*{background-color:#fffffff0}.verdict-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;min-height:64px;display:flex}.verdict-title{align-items:center;gap:10px;min-width:0;display:flex}.verdict-title h1{letter-spacing:0;margin:0;font-size:19px;line-height:1.2}.verdict-title h1 span{font-weight:700}.verdict-header.pass .verdict-title{color:var(--pass)}.verdict-header.fail .verdict-title{color:var(--fail)}.verdict-header.hold .verdict-title{color:var(--hold)}.check-tally{color:var(--muted);white-space:nowrap;font-size:13px}.check-tally strong{color:var(--ink);font-size:15px}.claim-section{border-bottom:1px solid var(--line);padding:24px 4px}.claim-section h2{margin:0 0 10px;font-size:16px}.claim-section blockquote{border:1px solid var(--line-strong);background:#fbfcfc;border-radius:4px;gap:10px;max-width:610px;margin:0;padding:12px 15px;display:inline-flex}.claim-section blockquote>span{color:var(--muted);font-family:Georgia,serif;font-size:25px;line-height:1}.claim-section p{color:#3f4a50;margin:0;font-family:Georgia,Times New Roman,serif;font-size:15px;font-style:italic;line-height:1.55}.outcome-flow{grid-template-columns:minmax(185px,1fr) minmax(150px,.85fr) minmax(185px,1fr);align-items:center;gap:0;padding:28px 0 24px;display:grid}.entity-panel{min-width:0}.entity-heading{color:var(--blue-dark);text-transform:uppercase;align-items:center;gap:8px;margin-bottom:9px;font-size:12px;font-weight:780;display:flex}.entity-body{border:1px solid var(--line-strong);background:#fff;border-radius:4px;padding:12px 14px}.entity-row{grid-template-columns:92px minmax(0,1fr);gap:10px;padding:4px 0;font-size:12px;display:grid}.entity-row span{color:var(--muted)}.entity-row strong{color:#303b40;overflow-wrap:anywhere;font-weight:640}.entity-row strong.bad{color:var(--fail)}.entity-row strong.good{color:var(--pass)}.relationship{align-content:center;justify-items:center;min-height:160px;padding:24px 12px 0;display:grid;position:relative}.relationship-line{border-top:2px dashed var(--fail);position:absolute;top:65px;left:0;right:0}.pass .relationship-line{border-top-style:solid;border-top-color:var(--pass)}.relationship-mark{z-index:1;width:38px;height:38px;color:var(--fail);background:#fff;border:2px solid;border-radius:50%;place-items:center;display:grid}.pass .relationship-mark{color:var(--pass)}.relationship p{color:var(--fail);text-align:center;background:#fff;max-width:180px;margin:15px 0 0;padding:4px;font-size:12px;line-height:1.45;position:relative}.pass .relationship p{color:var(--pass)}.state-comparison{grid-template-columns:1fr 30px 1fr;align-items:center;gap:12px;padding-top:4px;display:grid}.state-arrow{color:var(--muted);justify-self:center}.state-table{min-width:0}.state-table h3{text-transform:uppercase;letter-spacing:.04em;color:#48555b;margin:0 0 8px;font-size:11px}.state-table h3 span{text-transform:none;color:var(--faint);letter-spacing:0;font-weight:520}.table-wrap{border:1px solid var(--line-strong);background:#fff;border-radius:3px;overflow:auto}.state-table table{border-collapse:collapse;width:100%;min-width:340px;font-size:10px}.state-table th,.state-table td{text-align:left;border-right:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px}.state-table th:last-child,.state-table td:last-child{border-right:0}.state-table tbody tr:last-child td{border-bottom:0}.state-table th{color:var(--muted);background:#fafbfb;font-weight:650}.state-table td.changed{color:var(--fail);background:var(--fail-soft);font-weight:740}.inspector-heading>div{align-items:center;gap:9px;display:flex}.inspector-heading h2{margin:0;font-size:12px}.segmented{border:1px solid var(--line-strong);border-radius:4px;grid-template-columns:1fr 1fr;margin:16px 20px 10px;display:grid;overflow:hidden}.segmented button{border:0;border-right:1px solid var(--line-strong);min-height:36px;color:var(--muted);cursor:pointer;background:#fff;font-size:12px}.segmented button:last-child{border-right:0}.segmented button.active{color:#fff;background:var(--blue);font-weight:700}.check-list{flex:1;padding:0 20px;overflow:auto}.check-row{border-bottom:1px solid var(--line);grid-template-columns:22px 1fr;align-items:start;gap:9px;padding:11px 0;display:grid}.check-row.pass>svg{color:var(--pass)}.check-row.fail>svg{color:var(--fail)}.check-row.hold>svg{color:var(--hold)}.check-row>div{gap:4px;display:grid}.check-row strong{font-size:12px;font-weight:620;line-height:1.35}.check-row small{color:var(--faint);text-transform:capitalize;font-size:10px}.empty-filter{color:var(--pass);justify-items:center;gap:9px;padding:40px 10px;font-size:12px;display:grid}.inspector-summary{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:8px;padding:14px 20px;font-size:10px;display:flex}.evidence-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;grid-template-columns:1.1fr 1fr 1fr 1fr auto;gap:0;padding:16px 28px;display:grid}.evidence-cell{border-right:1px solid var(--line);gap:5px;min-width:0;padding:0 22px;display:grid}.evidence-cell:first-child{padding-left:0}.evidence-cell span{text-transform:uppercase;color:#536067;font-size:10px;font-weight:740}.evidence-cell strong{text-overflow:ellipsis;white-space:nowrap;font-family:SFMono-Regular,Consolas,monospace;font-size:10px;overflow:hidden}.evidence-cell small,.evidence-cell button{color:var(--muted);font-size:10px}.evidence-cell button{color:var(--blue);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0}.result-button{color:var(--blue-dark);border-color:var(--blue);align-self:center;margin-left:24px}.progress-strip{background:#fff;grid-template-columns:repeat(3,1fr);min-height:86px;padding:16px max(28px,16vw);display:grid}.progress-step{grid-template-columns:34px 1fr;align-items:center;gap:10px;display:grid;position:relative}.progress-step:not(:last-child):after{content:"";border-top:2px solid var(--blue);position:absolute;top:16px;left:34px;right:8px}.progress-icon{z-index:1;color:#fff;background:var(--blue);border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.progress-step>div:last-child{gap:2px;display:grid}.progress-step span{color:var(--faint);font-size:10px}.progress-step strong{font-size:12px}.progress-strip.fail .progress-step:last-child .progress-icon{background:var(--fail)}.progress-strip.pass .progress-step:last-child .progress-icon{background:var(--pass)}.dialog-backdrop{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0c141866;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.data-dialog{border:1px solid var(--line-strong);width:min(760px,100%);max-height:min(780px,100vh - 48px);box-shadow:var(--shadow);background:#fff;border-radius:6px;grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.data-dialog header,.data-dialog footer{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding:14px 18px;display:flex}.data-dialog header>div{align-items:center;gap:9px;display:flex}.data-dialog h2{margin:0;font-size:15px}.data-dialog pre{color:#d9e2e6;white-space:pre-wrap;overflow-wrap:anywhere;background:#172126;margin:0;padding:20px;font:12px/1.6 SFMono-Regular,Consolas,monospace;overflow:auto}.data-dialog footer{border-top:1px solid var(--line);border-bottom:0}.data-dialog footer span{color:var(--muted);font-size:11px}.loading{min-height:100vh;color:var(--muted);background:#fff;justify-content:center;align-items:center;gap:10px;display:flex}.loading.error{color:var(--fail)}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1180px){.workspace{grid-template-columns:220px minmax(500px,1fr)}.contract-panel{border-left:0;border-top:1px solid var(--line);grid-column:1/-1}.check-list{grid-template-columns:repeat(2,1fr);column-gap:24px;max-height:360px;display:grid}.evidence-strip{grid-template-columns:repeat(4,1fr)}.result-button{grid-column:1/-1;justify-self:end;margin:16px 0 0}}@media (width<=820px){.app-shell{display:block}.app-header{height:auto;min-height:64px;padding:12px 16px;position:static}.brand-group{gap:12px}.header-divider,.provenance{display:none}.fixture-switcher{font-size:12px}.workspace{display:block}.scenario-rail{border-right:0;border-bottom:1px solid var(--line)}.rail-heading{height:46px;padding:0 16px}.scenario-list{scroll-snap-type:x mandatory;display:flex;overflow-x:auto}.scenario-row{scroll-snap-align:start;border-right:1px solid var(--line);flex:0 0 210px;grid-template-columns:24px minmax(0,1fr);gap:10px;min-height:76px;padding:12px 14px}.scenario-copy{grid-column:2}.scenario-index,.scenario-verdict{display:none}.outcome-canvas{padding:0 16px 24px}.verdict-header{flex-direction:column;align-items:flex-start;gap:8px;min-height:0;padding:16px 0}.verdict-title h1{font-size:17px}.outcome-flow{grid-template-columns:1fr;gap:12px}.relationship{min-height:118px;padding:12px 0}.relationship-line{border-top:0;border-left:2px dashed var(--fail);height:auto;inset:0 auto 0 50%}.pass .relationship-line{border-left-style:solid;border-left-color:var(--pass)}.relationship p{max-width:250px;margin-top:10px}.state-comparison{grid-template-columns:1fr}.state-arrow{transform:rotate(90deg)}.check-list{grid-template-columns:1fr}.evidence-strip{grid-template-columns:1fr 1fr;padding:16px}.evidence-cell{border-bottom:1px solid var(--line);padding:12px}.evidence-cell:nth-child(2n){border-right:0}.result-button{grid-column:1/-1;width:100%}.progress-strip{padding:16px}}@media (width<=520px){.wordmark{font-size:21px}.app-header .button{width:38px;padding:0;font-size:0}.claim-section blockquote{width:100%}.state-table table{min-width:100%}.state-table th,.state-table td{padding:7px 5px;font-size:9px}.evidence-strip{grid-template-columns:1fr}.evidence-cell{border-right:0}.progress-strip{grid-template-columns:1fr;gap:12px}.progress-step:not(:last-child):after{border-top:0;border-left:2px solid var(--blue);inset:32px auto -12px 16px}.dialog-backdrop{padding:10px}.data-dialog footer span{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
