:root{--blox-deep-green: #16535B;--blox-deep-green-dark: #0F3A40;--blox-emerald: #00CFA2;--blox-emerald-wash: #E6FBF5;--blox-lime: #DBFF00;--blox-lime-pressed: #C4E600;--blox-lime-wash: #F7FFE0;--blox-slate: #708090;--blox-slate-light: #A8B2BC;--blox-slate-dark: #4A5560;--blox-canvas: #F0F5F5;--blox-surface: #FFFFFF;--blox-surface-secondary: #E8F0F0;--blox-card-border: #E0E8E8;--blox-destructive: #C62828;--blox-error-wash: #FFEBEE;--blox-warning-text: #8A6D00;--blox-success-text: #0B7A64;--blox-font-ui: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--blox-font-ui-ar: "IBM Plex Sans Arabic", "IBM Plex Sans", "Noto Naskh Arabic", Tahoma, "Segoe UI", Arial, sans-serif;--blox-font-num: "Space Grotesk", "IBM Plex Sans", -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--blox-radius-btn: 14px;--blox-radius-field: 12px;--blox-radius-card: 16px;--blox-radius-pill: 999px;--bg: var(--blox-canvas);--surface: var(--blox-surface);--border: var(--blox-card-border);--text: var(--blox-deep-green);--text-dim: var(--blox-slate);--primary: var(--blox-emerald);--primary-hover: #00B78F;--sidebar-bg: var(--blox-deep-green-dark);--sidebar-text: rgba(255, 255, 255, .78);--sidebar-active: #ffffff;--ok-bg: var(--blox-emerald-wash);--ok-fg: var(--blox-success-text);--warn-bg: var(--blox-lime-wash);--warn-fg: var(--blox-warning-text);--bad-bg: var(--blox-error-wash);--bad-fg: var(--blox-destructive);--info-bg: var(--blox-surface-secondary);--info-fg: var(--blox-deep-green);--neutral-bg: var(--blox-surface-secondary);--neutral-fg: var(--blox-slate-dark);--radius: var(--blox-radius-card);--shadow: 0 1px 2px rgba(22, 83, 91, .06)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--blox-font-ui);font-size:14px;color:var(--text);background:var(--bg)}html[dir=rtl] body{font-family:var(--blox-font-ui-ar)}h1,h2,h3,h4{margin:0 0 .5rem;font-weight:600;letter-spacing:-.01em;color:var(--blox-deep-green)}h1{font-size:1.35rem;font-weight:700;letter-spacing:-.02em}h2{font-size:1.1rem}h3{font-size:1rem}a{color:var(--blox-emerald);text-decoration:none}a:hover{text-decoration:underline}.num,.mono,.kpi-value,.conf-score,.bar-count{font-family:var(--blox-font-num);font-variant-numeric:tabular-nums}.shell{display:flex;min-height:100vh}.sidebar{width:218px;flex-shrink:0;background:var(--blox-deep-green-dark);color:var(--sidebar-text);display:flex;flex-direction:column;padding:16px 10px}.sidebar .brand{color:#fff;font-size:1.05rem;font-weight:700;letter-spacing:.02em;padding:6px 12px 18px}.sidebar .brand img{display:block;height:24px;width:auto}.sidebar .brand small{display:block;font-weight:400;color:#fff9;font-size:.72rem;margin-top:6px}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{color:var(--sidebar-text);padding:9px 12px;border-radius:var(--blox-radius-pill);font-weight:500;border-inline-start:3px solid transparent}.sidebar nav a:hover{color:var(--sidebar-active);background:#ffffff0f;text-decoration:none}.sidebar nav a.active{color:var(--sidebar-active);background:#00cfa22e;border-inline-start:3px solid var(--blox-emerald)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:10px 24px;display:flex;align-items:center;justify-content:flex-end;gap:14px}.topbar .who{text-align:end;line-height:1.25}.topbar .who .name{font-weight:600;color:var(--blox-deep-green)}.topbar .who .role{color:var(--text-dim);font-size:.78rem}.content{padding:24px;flex:1}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.card{background:var(--surface);border:1px solid rgba(22,83,91,.08);border-radius:var(--blox-radius-card);box-shadow:var(--shadow);padding:16px;margin-bottom:16px}.card>h3{margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-bottom:16px}.kpi{background:var(--surface);border:1px solid rgba(22,83,91,.08);border-radius:var(--blox-radius-card);box-shadow:var(--shadow);padding:14px 16px}.kpi .kpi-label{color:var(--blox-slate);font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:500}.kpi .kpi-value{font-size:28px;font-weight:600;color:var(--blox-deep-green);margin-top:4px}.bar-row{display:grid;grid-template-columns:200px 1fr 44px;align-items:center;gap:10px;margin-bottom:6px}.bar-track{background:var(--blox-surface-secondary);border-radius:var(--blox-radius-pill);height:14px;overflow:hidden}.bar-fill{background:var(--blox-emerald);height:100%;border-radius:var(--blox-radius-pill);min-width:2px}.bar-count{text-align:end;color:var(--text-dim)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.86rem}th,td{text-align:start;padding:8px 10px;border-bottom:1px solid var(--blox-card-border);vertical-align:top}th{color:var(--blox-slate);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}tbody tr:hover{background:var(--blox-canvas)}tr.clickable{cursor:pointer}.num{white-space:nowrap}.mono{font-size:.84rem;letter-spacing:.01em}.badge{display:inline-block;padding:2px 8px;border-radius:var(--blox-radius-pill);font-size:.74rem;font-weight:600;white-space:nowrap}.badge-ok{background:var(--blox-emerald-wash);color:var(--blox-success-text)}.badge-warn{background:var(--blox-lime-wash);color:var(--blox-warning-text)}.badge-bad{background:var(--blox-error-wash);color:var(--blox-destructive)}.badge-info{background:var(--blox-surface-secondary);color:var(--blox-deep-green)}.badge-neutral{background:var(--blox-surface-secondary);color:var(--blox-slate-dark)}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--blox-slate-light);background:var(--surface);color:var(--blox-deep-green);padding:7px 14px;border-radius:var(--blox-radius-btn);font-size:.86rem;font-weight:500;cursor:pointer;font-family:inherit}.btn:hover:not(:disabled){background:var(--blox-canvas)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--blox-emerald);outline-offset:1px}.btn-primary{background:var(--blox-lime);border-color:var(--blox-lime);color:var(--blox-deep-green);font-weight:600;min-height:40px}.btn-primary:hover:not(:disabled){background:var(--blox-lime-pressed);border-color:var(--blox-lime-pressed)}.btn-danger{background:var(--blox-destructive);border-color:var(--blox-destructive);color:#fff}.btn-danger:hover:not(:disabled){background:#a82121;border-color:#a82121}.btn-ok{background:var(--blox-emerald);border-color:var(--blox-emerald);color:#073b32}.btn-ok:hover:not(:disabled){background:#00b78f;border-color:#00b78f}.btn-small{padding:3px 9px;font-size:.78rem;min-height:0}.btn-ghost{border:none;background:transparent}.btn-ghost:hover:not(:disabled){background:var(--neutral-bg)}label.field{display:block;margin-bottom:12px;font-weight:500;font-size:.84rem}label.field>span{display:block;margin-bottom:4px;color:var(--blox-slate-dark)}input[type=text],input[type=email],input[type=password],input[type=search],select,textarea{width:100%;padding:8px 10px;border:1px solid var(--blox-slate-light);border-radius:var(--blox-radius-field);font-size:.88rem;font-family:inherit;background:var(--surface);color:var(--blox-deep-green)}input:focus,select:focus,textarea:focus{outline:2px solid var(--blox-emerald);outline-offset:0;border-color:var(--blox-emerald)}textarea{resize:vertical;min-height:72px}.check-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-weight:400}.filters{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px}.filters .field{margin-bottom:0;min-width:160px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.state-note{padding:22px;text-align:center;color:var(--text-dim)}.card:has(>.state-note:last-child){padding:10px 14px;margin-bottom:10px;background:transparent;border-style:dashed;box-shadow:none}.card:has(>.state-note:last-child)>h3{display:inline;font-size:.8rem;color:var(--text-dim)}.card:has(>.state-note:last-child)>.state-note{display:inline;padding:0 0 0 8px;font-size:.8rem}.card:has(>.state-note:last-child)>.state-note:before{content:"— "}.error-box{background:var(--blox-error-wash);color:var(--blox-destructive);border:1px solid rgba(198,40,40,.25);border-radius:var(--blox-radius-field);padding:10px 12px;margin:8px 0;font-size:.86rem}.banner-ok,.banner-bad{border-radius:var(--blox-radius-field);padding:8px 12px;font-weight:600;font-size:.85rem;margin-bottom:10px}.banner-ok{background:var(--blox-emerald-wash);color:var(--blox-success-text)}.banner-bad{background:var(--blox-error-wash);color:var(--blox-destructive)}.hint{color:var(--text-dim);font-size:.8rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f3a4080;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 16px;z-index:50;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--blox-radius-card);box-shadow:0 12px 40px #0f3a4040;width:100%;max-width:480px}.modal-wide{max-width:760px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0}.modal-body{padding:18px}.pager{display:flex;align-items:center;gap:10px;justify-content:flex-end;padding-top:12px}.pager-info{color:var(--text-dim);font-size:.82rem}.workspace{display:grid;grid-template-columns:minmax(280px,1fr) minmax(340px,1.3fr) minmax(320px,1.1fr);gap:16px;align-items:start}@media (max-width: 1200px){.workspace{grid-template-columns:1fr 1fr}}@media (max-width: 860px){.workspace{grid-template-columns:1fr}}.doc-item{border:1px solid var(--blox-card-border);border-radius:var(--blox-radius-field);padding:10px 12px;margin-bottom:10px}.doc-item .doc-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.doc-title{font-weight:600;color:var(--blox-deep-green)}.field-row{display:grid;grid-template-columns:minmax(90px,130px) 1fr auto;gap:8px;align-items:center;padding:4px 0;border-bottom:1px dashed var(--blox-card-border);font-size:.83rem}.field-row:last-child{border-bottom:none}.field-name{color:var(--text-dim)}.kv{display:grid;grid-template-columns:minmax(140px,200px) 1fr;gap:4px 12px;font-size:.86rem}.kv dt{color:var(--text-dim);margin:0}.kv dd{margin:0;font-weight:500}.conf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.conf-cell{border:1px solid var(--blox-card-border);border-radius:var(--blox-radius-field);padding:10px;text-align:center}.conf-cell .conf-kind{color:var(--text-dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.conf-cell .conf-score{font-size:1.2rem;font-weight:600;color:var(--blox-deep-green);margin-top:4px}.match-item{border:1px solid var(--blox-card-border);border-radius:var(--blox-radius-field);padding:10px 12px;margin-bottom:10px}.comment{border-bottom:1px solid var(--border);padding:8px 0;font-size:.86rem}.comment:last-child{border-bottom:none}.comment .meta{color:var(--text-dim);font-size:.76rem;margin-bottom:2px}.reason-list{margin:6px 0 0;padding-inline-start:18px}.reason-list li{margin-bottom:2px}pre.json{background:var(--blox-canvas);border:1px solid var(--blox-card-border);border-radius:var(--blox-radius-field);padding:10px;font-size:.78rem;font-family:var(--blox-font-num);font-variant-numeric:tabular-nums;overflow-x:auto;margin:6px 0;direction:ltr;text-align:left}.decision-btns{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.inline-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--blox-canvas)}.login-card{background:var(--surface);border:1px solid rgba(22,83,91,.08);border-radius:var(--blox-radius-card);box-shadow:0 1px 2px #16535b0f;padding:28px;width:100%;max-width:380px}.login-card .login-logo{display:block;height:26px;width:auto;margin-bottom:14px}.login-card h1{margin-bottom:4px}.login-card .sub{color:var(--text-dim);margin-bottom:18px;font-size:.86rem}.login-hint{margin-top:16px;padding:10px 12px;background:var(--blox-surface-secondary);color:var(--blox-deep-green);border-radius:var(--blox-radius-field);font-size:.78rem;line-height:1.5}.muted{color:var(--text-dim)}.spread{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.stack-sm>*+*{margin-top:8px}.mt{margin-top:12px}.verdict{padding:18px 20px;margin-bottom:16px;border:1px solid var(--blox-card-border);border-inline-start:4px solid var(--blox-slate-light);border-radius:var(--blox-radius-card);background:var(--blox-surface);box-shadow:var(--shadow)}.verdict-low{border-inline-start-color:var(--blox-emerald)}.verdict-medium{border-inline-start-color:var(--blox-warning-text)}.verdict-high,.verdict-prohibited{border-inline-start-color:var(--blox-destructive)}.verdict-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.verdict-headline{font-size:1.15rem;font-weight:600;color:var(--blox-deep-green)}.verdict-body{margin:4px 0 0;color:var(--blox-slate-dark);font-size:.92rem}.verdict-score{text-align:end;flex:0 0 auto}.verdict-score-num{display:block;font-family:var(--blox-font-num);font-size:2rem;font-weight:600;line-height:1;color:var(--blox-deep-green)}.verdict-score-of{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.verdict-scale{margin-block:16px 6px}.verdict-scale-track{position:relative;display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--blox-surface-secondary)}.verdict-zone{display:block;height:100%}.zone-low{background:color-mix(in srgb,var(--blox-emerald) 55%,white)}.zone-medium{background:color-mix(in srgb,var(--blox-warning-text) 45%,white)}.zone-high{flex:1;background:color-mix(in srgb,var(--blox-destructive) 45%,white)}.verdict-marker{position:absolute;inset-block:-3px;width:3px;border-radius:2px;background:var(--blox-deep-green)}.verdict-scale-labels{position:relative;height:16px;font-size:.68rem;color:var(--text-dim)}.verdict-scale-labels>span{position:absolute;transform:translate(-50%)}.verdict-scale-labels>span:first-child{inset-inline-start:0;transform:none}.verdict-scale-end{inset-inline-end:0;inset-inline-start:auto!important;transform:none!important}.verdict-findings{margin:12px 0 0;padding-inline-start:18px}.verdict-findings li{margin-block:4px;font-size:.92rem}.verdict-findings li.is-blocking{font-weight:600}.verdict-finding-tag{margin-inline-start:8px;padding:1px 8px;border-radius:var(--blox-radius-pill);background:var(--blox-error-wash);color:var(--blox-destructive);font-size:.68rem;font-weight:600}.verdict-tech-toggle{margin-top:12px;padding:0;border:0;background:none;color:var(--text-dim);font:inherit;font-size:.78rem;text-decoration:underline;cursor:pointer}.verdict-tech{width:100%;margin-top:8px;font-size:.76rem}.verdict-pending{border-inline-start-color:var(--blox-slate-light)}.identity-summary{margin:0 0 12px;font-size:.92rem;color:var(--blox-slate-dark)}.identity-summary .is-match{color:var(--blox-success-text)}.identity-summary .is-mismatch{color:var(--blox-destructive)}.identity-summary .is-pending{color:var(--blox-warning-text)}.identity-row{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 0;border-top:1px solid var(--blox-card-border)}.identity-row:first-child{border-top:0}.identity-label{grid-column:1 / -1;font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim)}.identity-values{display:flex;flex-wrap:wrap;gap:12px}.identity-declared,.identity-doc{display:flex;flex-direction:column}.identity-cap{font-size:.68rem;color:var(--text-dim)}.identity-value{font-size:.9rem;color:var(--blox-deep-green);overflow-wrap:anywhere}.identity-none{color:var(--text-dim);font-style:italic}.identity-verdict{align-self:center;padding:2px 10px;border-radius:var(--blox-radius-pill);font-size:.72rem;font-weight:600;white-space:nowrap}.identity-verdict-match{background:var(--blox-emerald-wash);color:var(--blox-success-text)}.identity-verdict-mismatch{background:var(--blox-error-wash);color:var(--blox-destructive)}.identity-verdict-missing{background:var(--blox-lime-wash);color:var(--blox-warning-text)}.identity-verdict-not_declared{background:var(--blox-surface-secondary);color:var(--text-dim)}.identity-mismatch{background:color-mix(in srgb,var(--blox-error-wash) 35%,transparent)}.doc-viewer-empty{margin-top:8px}.doc-viewer{margin-top:10px}.doc-viewer-img,.doc-viewer-pdf{display:block;width:100%;max-height:460px;border:1px solid var(--blox-card-border);border-radius:var(--blox-radius-field);background:var(--blox-surface-secondary)}.doc-viewer-img{object-fit:contain}.doc-viewer-video{display:block;width:100%;max-height:460px;border:1px solid var(--blox-card-border);border-radius:var(--blox-radius-field);background:#000}.doc-viewer-pdf{height:460px}.doc-viewer-text{max-height:260px;margin:0;padding:10px;overflow:auto;border:1px solid var(--blox-card-border);border-radius:var(--blox-radius-field);background:var(--blox-surface-secondary);font-size:.74rem;line-height:1.5}.doc-viewer-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}.meter{padding:12px 14px;border:1px solid var(--blox-card-border);border-radius:var(--blox-radius-field);background:var(--blox-surface)}.meter-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.meter-label{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.meter-value{font-family:var(--blox-font-num);font-size:1.35rem;font-weight:600;line-height:1.1;color:var(--blox-deep-green)}.meter-track{position:relative;height:6px;margin-block:8px 6px;border-radius:999px;background:var(--blox-surface-secondary);overflow:hidden}.meter-fill{height:100%;border-radius:999px;background:var(--blox-emerald);transition:width .25s ease}.meter-threshold{position:absolute;inset-block:-2px;width:2px;background:var(--blox-slate);opacity:.55}.meter-foot{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:.72rem}.meter-verdict{font-weight:600}.meter-detail{color:var(--text-dim);font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meter-verdict-strong{color:var(--blox-success-text)}.meter-verdict-adequate{color:var(--blox-warning-text)}.meter-verdict-weak{color:var(--blox-destructive)}.meter-verdict-absent{color:var(--text-dim)}.meter-weak .meter-fill{background:var(--blox-destructive)}.meter-adequate .meter-fill{background:var(--blox-warning-text)}.meter-absent .meter-value{color:var(--text-dim)}.meter-absent .meter-track{opacity:.5}.score-chip{display:inline-flex;align-items:baseline;gap:6px;padding:3px 9px;border-radius:var(--blox-radius-pill);background:var(--blox-surface-secondary);font-size:.72rem;line-height:1.5}.score-chip-label{color:var(--text-dim);letter-spacing:.03em}.score-chip-verdict{font-weight:600}.score-chip-num{font-family:var(--blox-font-num);color:var(--text-dim)}.score-chip-strong{background:var(--blox-emerald-wash)}.score-chip-strong .score-chip-verdict{color:var(--blox-success-text)}.score-chip-adequate{background:var(--blox-lime-wash)}.score-chip-adequate .score-chip-verdict{color:var(--blox-warning-text)}.score-chip-weak{background:var(--blox-error-wash)}.score-chip-weak .score-chip-verdict{color:var(--blox-destructive)}.score-chip-absent .score-chip-verdict{color:var(--text-dim)}.rule-id{display:block;font-size:.72rem;font-weight:600;color:var(--blox-deep-green)}.rule-reason{display:block;font-size:.75rem;color:var(--text-dim)}.dev-quick{text-align:start}.dev-quick>strong{display:block;margin-block-end:8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.7}.dev-quick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:6px}.dev-quick-grid button{display:flex;flex-direction:column;gap:1px;padding:6px 8px;border:1px solid var(--blox-deep-green, currentColor);border-radius:var(--blox-radius-field, 6px);background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer;opacity:.85}.dev-quick-grid button:hover:not(:disabled){opacity:1}.dev-quick-grid button:disabled{opacity:.4;cursor:default}.dev-quick-name{font-weight:600}.dev-quick-role{font-size:10px;opacity:.65}.dev-quick-note{margin:8px 0 0;font-size:11px;opacity:.7}
