@font-face{font-family:Ryker;font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/Ryker-Medium.otf) format("opentype")}@font-face{font-family:Ryker;font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/Ryker-Bold.otf) format("opentype")}:root{--ink: #210000;--ink-soft: #6b5a5a;--ink-faint: #9a8b8b;--paper: #ffffff;--page: #f4f4f4;--line: #ececec;--green-dark: #003e00;--green: #00c466;--green-light: #bdf4cc;--green-tint: #f2fcf5;--must: #ff3342;--must-bg: #f9cbd2;--must-ink: #62003b;--should: #ffb93e;--should-bg: #fff0c6;--should-ink: #876300;--nice: #9998a5;--nice-bg: #d0e0ea;--nice-ink: #222b3d;--good-bg: #bdf4cc;--good-ink: #003e00;--font-title: "Ryker", "Raleway", system-ui, sans-serif;--font-text: "Raleway", system-ui, sans-serif;--font-mono: ui-monospace, Consolas, monospace;--radius: 14px;--radius-sm: 10px;--column: 1040px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--page);color:var(--ink);font:14px/1.55 var(--font-text);font-variant-numeric:lining-nums tabular-nums}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}details>summary{list-style:none;cursor:pointer}details>summary::-webkit-details-marker{display:none}:focus-visible{outline:2px solid var(--green-dark);outline-offset:2px}.wrap{max-width:var(--column);margin:0 auto;padding:0 24px}.mono{font-family:var(--font-mono)}.muted{color:var(--ink-soft);font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.only-narrow{display:none!important}@media (max-width: 767px){.wrap{padding:0 12px}.only-wide{display:none!important}.only-narrow{display:revert!important}}.app-header{background:var(--paper);border-bottom:1px solid var(--line)}.app-header-row{display:flex;align-items:center;gap:16px;min-height:60px}.app-brand{display:flex;align-items:center;gap:12px;color:var(--ink)}.app-name{padding-left:12px;border-left:1px solid #cfc6c6;font-size:9.5px;font-weight:600;line-height:1.15}.app-nav{display:flex;align-items:center;gap:18px;margin-left:auto}.app-nav-link{font-weight:600}.app-nav-link:hover{color:var(--green-dark)}.page{padding-top:18px;padding-bottom:48px}.pill{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border:1px solid transparent;border-radius:999px;background:none;font-size:13px;font-weight:700;line-height:1.2;white-space:nowrap}.pill:disabled{opacity:.55;cursor:default}.pill-primary{background:var(--green-dark);color:#fff}.pill-secondary{background:var(--green-light);color:var(--green-dark)}.pill-neutral{background:var(--paper);color:var(--ink);border-color:#ddd}.pill-danger{background:var(--must-bg);color:var(--must-ink)}.pill:hover:not(:disabled){filter:brightness(.95)}.pill-primary:hover:not(:disabled){filter:brightness(1.3)}.pill-sm{padding:4px 12px;font-size:12px}.band{position:relative;isolation:isolate;overflow:hidden;margin-bottom:14px;padding:16px 22px;border-radius:var(--radius);background:var(--green-light);color:var(--green-dark)}.band>:not(.ref-line){position:relative;z-index:1}.ref-line{position:absolute;z-index:0;top:-10px;right:-8px;width:auto;height:calc(100% + 20px);max-height:190px;color:var(--green);pointer-events:none}.band-crumbs{font-size:12px;font-weight:600}.band-crumbs a:hover{text-decoration:underline}.band-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 16px}.band-title{font:700 34px/1.12 var(--font-title);overflow-wrap:anywhere}.band-actions{display:flex;gap:8px;margin-right:120px;padding-bottom:4px}.band-lead{margin-top:2px;font-size:12.5px;font-weight:500}.band .chips{margin-top:10px}.band-tabs{display:flex;gap:4px;margin:12px -22px -16px;padding:0 16px}.band-tab{padding:8px 16px;border-radius:10px 10px 0 0;font-weight:700}.band-tab:hover{background:#ffffff80}.band-tab.is-active{background:var(--page)}.band-tab em{margin-left:4px;padding:0 7px;border-radius:999px;background:var(--paper);font-size:11px;font-style:normal}.chips{display:flex;flex-wrap:wrap;gap:4px}.chips-inline{display:inline-flex;flex-wrap:wrap;gap:4px}.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;background:var(--paper);color:var(--ink);font-size:11.5px;font-weight:700;white-space:nowrap}.chip-soft{background:var(--page)}.dot{display:inline-block;flex-shrink:0;width:8px;height:8px;margin:0;border-radius:50%}.dot-high{background:var(--must)}.dot-medium{background:var(--should)}.dot-low{background:var(--nice)}.sev-inline{display:inline-flex;gap:10px;font-size:11.5px;font-weight:700}.sev{display:inline-flex;align-items:center;gap:4px}.card{margin-bottom:14px;overflow:hidden;border:0;border-radius:var(--radius);background:var(--paper)}.card-pad{padding:18px 22px}.empty-state{display:flex;justify-content:center;padding:36px 20px}.alert{margin-bottom:14px;padding:10px 14px;border:0;border-radius:var(--radius-sm);font-size:13px}.alert ul{margin:6px 0 0 18px}.alert-error{background:var(--must-bg);color:var(--must-ink)}.alert-warn{background:var(--should-bg);color:var(--should-ink)}.alert-info{border-left:4px solid var(--green);background:var(--paper);color:var(--ink)}.tag{display:inline-block;padding:0 8px;border:0;border-radius:999px;background:var(--page);color:var(--ink-soft);font-size:10.5px;font-weight:700;line-height:1.8;white-space:nowrap}.tag-master{background:var(--green-dark);color:#fff}.badge{display:inline-block;padding:1px 9px;border:0;border-radius:999px;background:var(--page);color:var(--ink-soft);font-size:11px;font-weight:700;white-space:nowrap}.badge-should{background:var(--should-bg);color:var(--should-ink)}.lang-code{color:var(--ink-faint);font-size:11px;font-weight:500}.lbl{margin:20px 0 8px;color:var(--ink-soft);font:700 10.5px/1.4 var(--font-text);letter-spacing:.06em;text-transform:uppercase}.chev{color:var(--ink-faint);font-size:12px;transition:transform .15s}details[open]>summary .chev{transform:rotate(180deg)}.icon-btn{display:inline-flex;padding:7px;border:0;border-radius:8px;background:none;color:var(--ink-faint)}.icon-btn:hover{background:var(--must-bg);color:var(--must-ink)}.back-link{display:inline-block;margin-bottom:10px;color:var(--green-dark);font-weight:700}.spinner-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;padding:60px 20px;text-align:center}.spinner{width:36px;height:36px;border:3px solid var(--green-light);border-top-color:var(--green-dark);border-radius:50%;animation:spin .8s linear infinite}.spinner-text{font-weight:600}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 767px){.app-header-row{min-height:52px}.band{padding:12px 14px}.band-title{font-size:26px}.band-actions{margin-right:0}.band-tabs{margin:10px -14px -12px;padding:0 8px}.ref-line{right:-40px;max-height:130px}}.steps{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;list-style:none;font-size:12px;font-weight:700}.step{padding:3px 12px;border-radius:999px;background:#ffffffa6}.step.is-current{background:var(--green-dark);color:#fff}.field{margin-bottom:16px}.field-label{display:block;margin-bottom:6px;color:var(--ink-soft);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.field-input{width:100%;min-width:0;padding:9px 14px;border:1px solid #ddd;border-radius:var(--radius-sm);background:var(--paper);outline:none}.field-input:focus{border-color:var(--green);box-shadow:0 0 0 3px #00c46633}.field-row{display:flex;gap:8px}.field-row .field-input{flex:1}.field-hint{margin-top:5px;color:var(--ink-soft);font-size:12px}.form-actions{display:flex;flex-wrap:wrap;gap:8px}.folder-chosen{align-self:center;font-weight:700}.sending{margin:4px 0 16px}.auth-page{display:flex;justify-content:center;padding-top:48px}.auth-card{width:100%;max-width:420px;margin:0 auto}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:18px}.auth-title{font-family:var(--font-title);font-size:26px;margin:0 0 14px}.auth-note{margin-top:14px;font-size:13px}.account-menu{position:relative}.account-menu summary{list-style:none;cursor:pointer;font-weight:600;white-space:nowrap}.account-menu summary::-webkit-details-marker{display:none}.account-menu-list{position:absolute;right:0;top:calc(100% + 8px);z-index:10;min-width:180px;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:0 6px 20px #00000014;padding:6px}.account-menu-list a,.account-menu-list button{text-align:left;padding:8px 10px;border-radius:6px;background:none;border:0;font:inherit;color:var(--ink);cursor:pointer}.account-menu-list a:hover,.account-menu-list button:hover{background:var(--green-tint)}.scan-list{padding:4px 20px}.scan-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);cursor:pointer}.scan-row:last-child{border-bottom:0}.scan-row:hover .scan-name{color:var(--green-dark);text-decoration:underline}.scan-main{min-width:0}.scan-name{font-size:15px;font-weight:700;overflow-wrap:anywhere}.scan-note{color:var(--should-ink);font-size:12px;font-weight:600}.scan-size{display:flex;gap:4px}.scan-del{display:flex;justify-content:flex-end}.scan-confirm{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;white-space:nowrap}@media (max-width: 767px){.scan-list{padding:2px 14px}.scan-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}.scan-main{grid-column:1;grid-row:1}.scan-del{grid-column:2;grid-row:1;align-self:start}.scan-size,.scan-sev{grid-column:1 / -1}}.pv-module>summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:14px 22px}.pv-module-id{font:700 18px/1.2 var(--font-title)}.pv-module-meta{color:var(--ink-soft);font-size:12.5px}.pv-module>summary .chev{margin-left:auto}.pv-body{padding:0 22px 14px}.pv-lang{padding:10px 0;border-top:1px solid var(--line)}.pv-lang-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 8px;margin-bottom:4px;font-weight:700}.pv-lang-head .tag{margin-left:6px}.pv-file{display:grid;grid-template-columns:minmax(0,1fr) 170px 70px;gap:8px;align-items:center;padding:4px 0;border-bottom:1px dashed var(--line);font-size:12.5px}.pv-file:last-of-type{border-bottom:0}.pv-file-name{overflow-wrap:anywhere}.pv-chars{color:var(--ink-soft);text-align:right}.use{justify-self:start;padding:1px 9px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.use-ai{background:var(--good-bg);color:var(--good-ink)}.use-rules{background:var(--page);color:var(--ink)}.use-included,.use-none{border:1px dashed #ddd;background:var(--paper);color:var(--ink-faint)}.pv-warn{margin-top:6px;padding:6px 10px;border-radius:8px;background:var(--should-bg);color:var(--should-ink);font-size:12.5px;font-weight:600}.action-bar{position:sticky;bottom:12px;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 18px;border-radius:var(--radius);background:var(--paper);box-shadow:0 -4px 18px #21000014}.action-bar .muted{margin-left:auto}@media (max-width: 767px){.pv-module>summary,.pv-body{padding-left:14px;padding-right:14px}.pv-file{grid-template-columns:minmax(0,1fr) auto}.pv-chars{display:none}.action-bar .muted{width:100%;margin-left:0}}.split{display:grid;grid-template-columns:290px minmax(0,1fr);gap:14px;align-items:start}.module-list{position:sticky;top:12px;max-height:calc(100vh - 24px);margin-bottom:0;overflow-y:auto}.module-item{display:block;padding:12px 16px;border-left:4px solid transparent;border-bottom:1px solid var(--line)}.module-item:last-child{border-bottom:0}.module-item:hover{background:var(--page)}.module-item.is-selected{border-left-color:var(--green);background:var(--green-tint)}.module-item-id{display:block;font-weight:800}.module-item-name{display:block;margin-bottom:3px;color:var(--ink-soft);font-size:12.5px}.module-detail{min-width:0;margin-bottom:0;padding:20px 24px}.module-missing{min-width:0;margin-bottom:0}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.detail-title{font:700 24px/1.15 var(--font-title)}.detail-summary{margin-top:12px;font-size:13.5px;line-height:1.6}.systemic-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}.systemic-summary .chev{margin-left:auto}details[open]>.systemic-summary{margin-bottom:12px}@media (max-width: 767px){.split{grid-template-columns:1fr}.module-list{position:static;max-height:none}.split:not(.has-selection) .module-detail{display:none}.split.has-selection .module-list{display:none}.module-detail{padding:14px}.detail-head{flex-direction:column}.detail-title{font-size:20px}}.hs-badge{display:inline-block;padding:3px 11px;border:0;border-radius:999px;font-size:11.5px;font-weight:700;white-space:nowrap}.hs-sc{background:var(--must-bg);color:var(--must-ink)}.hs-na{background:var(--should-bg);color:var(--should-ink)}.hs-hi{background:var(--nice-bg);color:var(--nice-ink)}.hs-ok{background:var(--good-bg);color:var(--good-ink)}.score{display:inline-block;min-width:46px;padding:2px 8px;border-radius:999px;font-size:12.5px;font-weight:700;text-align:center}.score-good{background:var(--good-bg);color:var(--good-ink)}.score-mid{background:var(--should-bg);color:var(--should-ink)}.score-bad{background:var(--must-bg);color:var(--must-ink)}.score-none{background:var(--page);color:var(--ink-faint)}.swatch{display:inline-block;width:10px;height:10px;margin-right:4px;padding:0;border-radius:3px;min-width:0}.lhead,.lrow{display:grid;grid-template-columns:minmax(0,1fr) repeat(6,62px);gap:6px;align-items:center;padding:4px 0}.lhead{padding-bottom:6px;border-bottom:1px solid var(--line);color:var(--ink-soft);font-size:11px;font-weight:700}.lhead span:not(:first-child){text-align:center}.lname{padding:0;border:0;background:none;font-weight:700;text-align:left;cursor:default}.lname small{color:var(--ink-faint);font-weight:500}.lcell{display:flex;justify-content:center}.legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:8px;color:var(--ink-soft);font-size:12px}.lscores,.lvs{margin-bottom:4px}.issue{margin-bottom:6px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper)}.issue>summary{display:flex;align-items:center;gap:10px;padding:10px 12px}.issue-title{flex:1;min-width:0;font-weight:600}.issue-tags{display:flex;flex-wrap:wrap;gap:4px;flex-shrink:0}.issue-body{padding:0 14px 12px 30px;font-size:13px}.issue-body p{margin-bottom:8px;line-height:1.6}.evidence{padding:8px 12px;border-radius:8px;background:var(--page)}.evidence-row{display:flex;align-items:baseline;gap:8px;margin-top:4px;font-size:12px;overflow-wrap:anywhere}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.filter-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border:0;border-radius:999px;background:var(--page);font-size:12.5px;font-weight:700}.filter-pill[aria-pressed=true]{background:var(--green-dark);color:#fff}.filters-spacer{flex:1}.filter-select{padding:4px 12px;border:1px solid #ddd;border-radius:999px;background:var(--paper);font-size:12.5px;font-weight:600}.filter-status{display:flex;align-items:center;gap:10px;min-height:30px;margin:10px 0}.lv{margin-bottom:6px;border:1px solid var(--line);border-radius:var(--radius-sm)}.lv>summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px}.lv-name{flex:1;min-width:140px;font-weight:700}.lv-body{padding:0 14px 14px;border-top:1px solid var(--line)}.lv-block{margin-top:12px}.lv-block .lbl{margin:0 0 6px}.lv-block p,.lv-li{font-size:13px;line-height:1.6}.lv-li{margin-bottom:4px}.lv-file{display:flex;justify-content:space-between;gap:8px;padding:2px 0;border-bottom:1px dashed var(--line);font-size:12.5px;overflow-wrap:anywhere}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}.empty-note{margin-top:12px;color:var(--must-ink);font-size:13px;font-weight:600}.finding-row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.finding-body{flex:1;min-width:0}.finding-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.finding-cat{font-size:12.5px;font-weight:600}.finding-pat{color:var(--ink-soft);font-size:12px}.finding-ctx{display:block;margin-top:4px;padding:4px 8px;border-radius:6px;background:var(--page);font:11.5px/1.5 var(--font-mono);overflow-wrap:anywhere}.ft-tag{flex-shrink:0;padding:1px 6px;border-radius:4px;background:var(--page);font-size:10px;font-weight:700}.ft-EN_RESIDUE{background:var(--should-bg);color:var(--should-ink)}.ft-CURRENCY{background:var(--nice-bg);color:var(--nice-ink)}.ft-STRUCTURE{background:var(--must-bg);color:var(--must-ink)}.ft-VOLUME{background:#dec5ff;color:#2d0051}.systemic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.systemic-card{padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--should);border-radius:var(--radius-sm)}.systemic-card-hdr{display:flex;align-items:center;gap:8px;margin-bottom:6px}.systemic-pattern{font-weight:700}.systemic-meta{margin-bottom:6px;color:var(--ink-soft);font-size:12px}.systemic-mods{display:flex;flex-wrap:wrap;gap:4px}.mod-chip{padding:1px 6px;border-radius:4px;background:var(--page);font:600 11px var(--font-mono)}@media (max-width: 767px){.lhead{display:none}.lrow{grid-template-columns:minmax(0,1fr) auto;border-bottom:1px solid var(--line)}.lname{cursor:pointer}.lname:after{content:" ▾";color:var(--ink-faint)}.lcell-avg{grid-column:2;grid-row:1}.lcell-domain{display:none}.lrow.is-open .lcell-domain{display:flex;grid-column:1 / -1;justify-content:space-between}.lcell-domain:before{content:attr(data-label);color:var(--ink-soft);font-size:12px}.issue>summary{flex-wrap:wrap}.issue-tags{order:3;width:100%;padding-left:18px}.issue-body{padding-left:14px}.filters-spacer{display:none}.two-cols{grid-template-columns:1fr}}.progress{display:block;height:12px;overflow:hidden;border-radius:999px;background:var(--page)}.progress-fill{display:block;height:100%;border-radius:999px;background:var(--green);transition:width .6s ease}.progress-sm{height:6px}.progress-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.progress-note{margin:10px 0 14px}.job-modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;list-style:none}.job-module{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--radius-sm);background:var(--page);font-size:12.5px}.job-icon{width:14px;text-align:center;font-weight:700}.job-running{background:var(--green-tint);outline:1px solid var(--green)}.job-running .job-icon{color:var(--green-dark);animation:spin 1.2s linear infinite}.job-done .job-icon{color:var(--green-dark)}.job-error{background:var(--must-bg);color:var(--must-ink)}.job-skipped,.job-waiting{color:var(--ink-soft)}.running-list{padding:4px 20px 12px}.running-list .lbl{margin-top:14px}.running-row{display:grid;grid-template-columns:minmax(0,1fr) auto 160px;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.running-row:last-child{border-bottom:0}.running-row:hover .scan-name{color:var(--green-dark);text-decoration:underline}@media (max-width: 767px){.running-list{padding:2px 14px 10px}.running-row{grid-template-columns:minmax(0,1fr);gap:4px}}label.pv-file{cursor:pointer}.pv-file-name input{margin-right:8px;vertical-align:middle;accent-color:var(--green-dark)}.pv-file.is-excluded .pv-file-name .mono,.pv-file.is-excluded .pv-chars{text-decoration:line-through;color:var(--ink-faint)}.use-excluded{border:1px dashed var(--must);background:var(--paper);color:var(--must-ink)}.criteria-pick{display:inline-flex;align-items:center;gap:8px;max-width:100%;min-width:0}.criteria-pick .field-label{margin:0}.criteria-pick .filter-select{min-width:0;max-width:100%}.kept-until{margin:-6px 0 12px 4px}.pv-master{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px}.pv-master .field-label{margin:0}.pv-master .filter-select{max-width:100%;min-width:0}.admin-section{margin-bottom:16px}.admin-title{font-family:var(--font-title);font-size:20px;margin:0 0 12px}.admin-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.admin-add .field-input{flex:1 1 180px;min-width:0}.admin-list{display:flex;flex-direction:column}.admin-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.admin-name{max-width:260px}.admin-user-who{display:flex;flex-direction:column;gap:2px;flex:1 1 260px;min-width:0}.admin-user .filter-select{max-width:100%}.admin-check{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.admin-user.is-inactive .admin-name{color:var(--ink-faint);text-decoration:line-through}.temp-password-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.temp-password-row code{font-family:var(--font-mono);font-size:16px;padding:4px 8px;background:var(--paper);border:1px solid var(--line);border-radius:6px}.scan-org{font-weight:600}.scans-filter{display:flex;align-items:center;gap:8px;margin:0 0 12px}
