:root{--bg:#f5f8fb;--surface:#ffffffe6;--surface-strong:#fff;--surface-soft:#f7fbfd;--surface-border:#80a0b038;--text:#244053;--text-strong:#10283b;--text-muted:#6f8596;--sidebar-bg:linear-gradient(180deg, #072335 0%, #061826 100%);--sidebar-border:#ffffff14;--sidebar-text:#ebf6fae0;--teal:#0f8a93;--teal-soft:#0f8a931f;--teal-border:#0f8a9333;--red:#d9606d;--red-soft:#d9606d24;--amber:#d89b33;--amber-soft:#d89b3326;--green:#3d9d74;--green-soft:#3d9d7424;--gray-soft:#70809024;--shadow-lg:0 16px 48px #26536f14;--shadow-sm:0 8px 24px #2149610f;--radius-xl:18px;--radius-lg:14px;--radius-md:10px;--radius-sm:8px;--gutter:18px;--font-ui:"Segoe UI", "SF Pro Text", "Helvetica Neue", Arial, sans-serif;--font-display:"Avenir Next", "Segoe UI", "SF Pro Display", "Helvetica Neue", Arial, sans-serif}html,body,#root{min-height:100%}body{color:var(--text);font-family:var(--font-ui);background:linear-gradient(#f8fbfd 0%,#eef4f8 100%);margin:0}button,input,textarea,select{font:inherit}button{appearance:none}.app-shell{grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.app-main{flex-direction:column;min-width:0;display:flex}.app-content{padding:0 24px 24px}.sidebar{background:var(--sidebar-bg);box-shadow:inset -1px 0 0 var(--sidebar-border);color:var(--sidebar-text);flex-direction:column;gap:24px;padding:22px 18px;display:flex}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-mark{border-radius:var(--radius-lg);color:#dffcff;font:800 24px/1 var(--font-display);background:linear-gradient(#18b3bc47,#0e89911f);place-items:center;width:42px;height:42px;display:grid}.brand-name{color:#f4fbff;font:700 18px/1.2 var(--font-display);margin:0}.brand-caption{color:#dff0f7a3;margin:3px 0 0;font-size:12px}.sidebar-nav{gap:8px;display:grid}.nav-item{border-radius:var(--radius-lg);color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:14px;display:flex}.nav-item.is-active,.nav-item:hover{background:#ffffff14}.sidebar-footer{border-radius:var(--radius-lg);background:#ffffff08;border:1px solid #ffffff14;gap:10px;margin-top:auto;padding:16px;display:grid}.topbar{justify-content:space-between;align-items:center;gap:18px;padding:26px 24px 18px;display:flex}.topbar h1{color:var(--text-strong);font:800 36px/1 var(--font-display);letter-spacing:0;margin:0}.topbar-subtitle{color:var(--text-muted);margin:8px 0 0}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.topbar-search,.ghost-button,.primary-button,.icon-button{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.topbar-search{color:var(--text-muted);align-items:center;gap:10px;width:min(320px,100%);padding:0 14px;display:flex}.topbar-search input{color:var(--text-strong);background:0 0;border:0;width:100%;padding:12px 0}.topbar-search input:focus{outline:none}.ghost-button,.primary-button{color:var(--text-strong);cursor:pointer;align-items:center;gap:10px;padding:11px 14px;display:inline-flex}.primary-button{color:#fff;background:linear-gradient(#0f8a93 0%,#0c7078 100%)}.ghost-button:disabled,.primary-button:disabled{cursor:not-allowed;opacity:.58}.panel{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.empty-panel{padding:24px}.empty-panel h2{color:var(--text-strong);font:700 20px/1.25 var(--font-display);margin:0}.empty-panel p{color:var(--text-muted);margin:10px 0 0;line-height:1.55}.status-chip{border-radius:var(--radius-lg);white-space:nowrap;justify-content:center;align-items:center;padding:6px 10px;font-size:12px;display:inline-flex}.status-pass{background:var(--green-soft);color:var(--green)}.status-fail{background:var(--red-soft);color:var(--red)}.status-missing-data,.status-needs-review{color:#cb7c2f;background:#cb7c2f1f}.workspace-grid{gap:var(--gutter);grid-template-columns:minmax(260px,300px) minmax(0,1.1fr) minmax(340px,.9fr);grid-template-areas:"cases overview overview""cases validation detail""cases notes notes";display:grid}.case-list-panel{grid-area:cases;min-width:0;padding:18px}.case-overview-panel{grid-area:overview;min-width:0;padding:18px}.validation-results-panel{grid-area:validation;min-width:0;padding:18px}.result-detail-panel{grid-area:detail;min-width:0;padding:18px}.case-notes-panel{grid-area:notes;min-width:0;padding:18px}.panel-header{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.panel-header h2,.upload-form h3,.artifact-list h3{color:var(--text-strong);font:700 20px/1.25 var(--font-display);letter-spacing:0;margin:0}.panel-kicker{color:var(--text-muted);letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:700}.compact-button{flex:none;padding:9px 12px}.case-table-header,.table-row{grid-template-columns:minmax(0,1.2fr) minmax(88px,.8fr) minmax(92px,.9fr);gap:10px;display:grid}.case-table-header{color:var(--text-muted);padding:0 10px 8px;font-size:12px;font-weight:700}.case-list,.validation-list{gap:8px;display:grid}.table-row{background:var(--surface-soft);border:1px solid var(--surface-border);border-radius:var(--radius-md);color:var(--text);cursor:pointer;text-align:left;width:100%;min-width:0;padding:12px}.table-row:hover,.table-row.is-selected{border-color:var(--teal-border);box-shadow:var(--shadow-sm);background:#fff}.case-row strong,.result-row strong,.detail-line strong{color:var(--text-strong);overflow-wrap:anywhere}.case-row small,.result-row small{color:var(--text-muted);overflow-wrap:anywhere;margin-top:4px;font-size:12px;display:block}.muted{color:var(--text-muted);line-height:1.5}.empty-copy{margin:0;padding:12px 2px}.overview-layout{grid-template-columns:minmax(280px,.92fr) minmax(0,1.08fr);gap:18px;display:grid}.upload-form,.case-summary,.detail-stack{gap:14px;min-width:0;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.field{color:var(--text-strong);gap:7px;min-width:0;font-size:13px;font-weight:700;display:grid}.field input,.field textarea,.field select{border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--text-strong);background:#fff;width:100%;min-width:0;padding:10px 11px}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--teal);outline:3px solid var(--teal-soft)}.field textarea{resize:vertical;min-height:104px;line-height:1.45}.notes-field textarea{min-height:126px}.submit-button{justify-content:center;width:fit-content}.form-success,.form-error{border-radius:var(--radius-md);margin:0;padding:10px 12px;line-height:1.45}.form-success{background:var(--green-soft);color:var(--green)}.form-error{background:var(--red-soft);color:var(--red)}.stage-pill{background:var(--teal-soft);border:1px solid var(--teal-border);border-radius:var(--radius-md);color:var(--teal);flex:none;padding:7px 10px;font-size:12px;font-weight:700}.summary-grid,.result-counters{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.result-counters{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.summary-card{background:var(--surface-soft);border:1px solid var(--surface-border);border-radius:var(--radius-md);gap:6px;min-width:0;padding:12px;display:grid}.summary-card span{color:var(--text-muted);font-size:12px}.summary-card strong{color:var(--text-strong);overflow-wrap:anywhere;font-size:15px}.summary-card-teal{background:var(--teal-soft)}.summary-card-blue{background:#4470a71c}.summary-card-amber{background:var(--amber-soft)}.compact-summary-card strong{font-size:24px}.artifact-columns{gap:12px;display:grid}.artifact-list{background:var(--surface-soft);border:1px solid var(--surface-border);border-radius:var(--radius-md);min-width:0;padding:13px}.artifact-list h3{margin-bottom:10px;font-size:16px}.artifact-list ul{gap:9px;margin:0;padding:0;list-style:none;display:grid}.artifact-list li{gap:3px;min-width:0;display:grid}.artifact-list strong,.artifact-list span{overflow-wrap:anywhere}.artifact-list span{color:var(--text-muted);font-size:13px;line-height:1.45}.result-row{grid-template-columns:minmax(0,1.1fr) auto minmax(110px,.9fr);align-items:center}.result-main,.result-reason{overflow-wrap:anywhere;min-width:0}.detail-line{border-bottom:1px solid var(--surface-border);grid-template-columns:minmax(120px,.45fr) minmax(0,1fr);gap:8px;padding-bottom:10px;display:grid}.detail-line span,.evidence-box span,.detail-section>span,.detail-section>div>span{color:var(--text-muted);font-size:12px;font-weight:700}.detail-section{background:var(--surface-soft);border:1px solid var(--surface-border);border-radius:var(--radius-md);gap:12px;min-width:0;margin-top:14px;padding:12px;display:grid}.evidence-box{background:var(--surface-soft);border:1px solid var(--surface-border);border-radius:var(--radius-md);gap:8px;padding:12px;display:grid}.evidence-box p{overflow-wrap:anywhere;margin:0}.json-preview{border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--text-strong);white-space:pre-wrap;word-break:break-word;background:#fff;min-width:0;max-height:220px;margin:0;padding:11px;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.action-row{flex-wrap:wrap;gap:10px;min-width:0;display:flex}.chat-cta{background:var(--teal-soft);border:1px solid var(--teal-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;min-width:0;margin-top:14px;padding:12px;display:flex}.chat-cta strong{color:var(--text-strong)}.chat-cta p{color:var(--text-muted);margin:4px 0 0;line-height:1.45}.chat-drawer{background:var(--surface-strong);border:1px solid var(--surface-border);border-radius:var(--radius-xl) 0 0 var(--radius-xl);box-shadow:var(--shadow-lg);z-index:20;grid-template-rows:auto auto auto auto minmax(120px,1fr);gap:14px;width:420px;max-width:calc(100vw - 28px);height:calc(100vh - 32px);padding:18px;transition:transform .18s;display:grid;position:fixed;top:16px;right:0;transform:translate(105%)}.chat-drawer.is-open{transform:translate(0)}.chat-drawer-header{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.chat-drawer-header h3{color:var(--text-strong);font:700 20px/1.25 var(--font-display);letter-spacing:0;margin:0}.chat-summary{background:var(--surface-soft);border:1px solid var(--surface-border);border-radius:var(--radius-md);color:var(--text);gap:6px;min-width:0;margin:0;padding:12px;line-height:1.5;display:grid}.chat-summary strong,.chat-summary span{overflow-wrap:anywhere}.chat-prompts{flex-wrap:wrap;gap:8px;min-width:0;display:flex}.prompt-chip{border:1px solid var(--surface-border);border-radius:var(--radius-md);color:var(--text-strong);cursor:default;text-align:left;background:#fff;padding:8px 10px}.chat-input{border:1px solid var(--surface-border);border-radius:var(--radius-md);color:var(--text);resize:none;background:#fff;width:100%;min-width:0;min-height:120px;padding:12px;line-height:1.5}.chat-input:disabled{color:var(--text-muted);opacity:1}.rules-workspace{gap:var(--gutter);display:grid}.rules-hero{justify-content:space-between;align-items:center;gap:18px;min-width:0;padding:22px;display:flex}.rules-hero h2{color:var(--text-strong);font:800 28px/1.15 var(--font-display);letter-spacing:0;margin:0}.rules-hero p:last-child{color:var(--text-muted);max-width:760px;margin:8px 0 0;line-height:1.5}.rules-grid{gap:var(--gutter);grid-template-columns:minmax(300px,.42fr) minmax(0,.58fr);display:grid}.rules-registry-panel,.rule-constructor-panel{min-width:0;padding:18px}.constructor-stack{gap:10px;min-width:0;display:grid}.constructor-rule-card{background:var(--surface-soft);border:1px solid var(--surface-border);border-radius:var(--radius-md);color:var(--text);text-align:left;gap:7px;width:100%;min-width:0;padding:13px;display:grid}button.constructor-rule-card{cursor:pointer}button.constructor-rule-card:hover,.constructor-rule-card.is-selected{border-color:var(--teal-border);box-shadow:var(--shadow-sm);background:#fff}.constructor-rule-card strong,.constructor-rule-card span,.constructor-rule-card small{overflow-wrap:anywhere}.constructor-rule-card strong{color:var(--text-strong)}.constructor-rule-card span,.constructor-rule-card small{color:var(--text-muted);line-height:1.45}.constructor-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.constructor-status-card{background:var(--surface-soft);border:1px solid var(--surface-border);border-radius:var(--radius-md);gap:7px;min-width:0;padding:13px;display:grid}.constructor-status-card span{color:var(--text-muted);font-size:12px;font-weight:700}.constructor-status-card strong{color:var(--text-strong);overflow-wrap:anywhere}.constructor-status-card p{color:var(--text-muted);margin:0;line-height:1.45}.rule-constructor-panel .detail-section h3{color:var(--text-strong);font:700 16px/1.25 var(--font-display);letter-spacing:0;margin:0}.rule-constructor-panel .detail-section ul{gap:8px;margin:0;padding-left:18px;display:grid}.rule-constructor-panel .detail-section li{color:var(--text);overflow-wrap:anywhere;line-height:1.5}.meta-badge{background:var(--teal-soft);border:1px solid var(--teal-border);border-radius:var(--radius-md);color:var(--teal);justify-content:center;align-items:center;width:fit-content;padding:6px 9px;font-size:12px;font-weight:700;line-height:1.2;display:inline-flex}@media (width<=1240px){.app-shell{grid-template-columns:88px minmax(0,1fr)}.brand-caption,.nav-item span:last-child,.sidebar-footer{display:none}.brand-lockup{justify-content:center}.workspace-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"cases""overview""validation""detail""notes"}.overview-layout,.rules-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=860px){.app-shell{grid-template-columns:1fr}.sidebar{flex-direction:row;align-items:center;padding:14px;overflow-x:auto}.sidebar-nav{display:flex}.topbar{flex-direction:column;align-items:stretch}.topbar-actions{justify-content:stretch}.topbar-search{width:100%}.app-content{padding:0 14px 18px}.case-table-header{display:none}.table-row,.result-row,.detail-line,.form-grid,.summary-grid,.result-counters{grid-template-columns:minmax(0,1fr)}.submit-button{width:100%}.action-row,.chat-cta,.rules-hero,.chat-drawer-header{flex-direction:column;align-items:stretch}.action-row .ghost-button,.action-row .primary-button,.rules-hero .primary-button,.chat-cta .ghost-button{justify-content:center;width:100%}.constructor-status-grid{grid-template-columns:minmax(0,1fr)}.chat-drawer{border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:100vw;height:min(78vh,680px);top:auto;bottom:0;transform:translateY(105%)}.chat-drawer.is-open{transform:translateY(0)}}*{box-sizing:border-box}body{min-width:320px}
