@charset "UTF-8";:root{--bg: #f2f4f3;--surface: #ffffff;--sunken: #e8ecea;--line: #d3dad7;--ink: #18211e;--ink-2: #4c5a55;--ink-3: #74827d;--accent: #0e6b66;--accent-soft: #d6ebe8;--crit: #b3261e;--crit-soft: #f8dedb;--major: #b45309;--major-soft: #fbe8d2;--minor: #52606b;--minor-soft: #e3e8ec;--good: #23743f;--good-soft: #dcefe2;--warn-soft: #fff1c9;--warn: #8a6100;--font-display: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--font-body: "Sukhumvit Set", "Noto Sans Thai", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "SFMono-Regular", Menlo, monospace;--radius: 6px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #111715;--surface: #18201d;--sunken: #0d1211;--line: #2c3833;--ink: #e4ebe8;--ink-2: #a8b6b1;--ink-3: #7d8b86;--accent: #4fb8b0;--accent-soft: #163b38;--crit: #f2827a;--crit-soft: #3d1b19;--major: #f0a254;--major-soft: #3b2611;--minor: #a9b6c0;--minor-soft: #252e33;--good: #6cc98c;--good-soft: #17301f;--warn-soft: #362b0c;--warn: #e6c25a;color-scheme:dark}}:root[data-theme=dark]{--bg: #111715;--surface: #18201d;--sunken: #0d1211;--line: #2c3833;--ink: #e4ebe8;--ink-2: #a8b6b1;--ink-3: #7d8b86;--accent: #4fb8b0;--accent-soft: #163b38;--crit: #f2827a;--crit-soft: #3d1b19;--major: #f0a254;--major-soft: #3b2611;--minor: #a9b6c0;--minor-soft: #252e33;--good: #6cc98c;--good-soft: #17301f;--warn-soft: #362b0c;--warn: #e6c25a;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font:15px/1.6 var(--font-body)}.wrap{max-width:1080px;margin:0 auto;padding-inline:16px;padding-block:24px 64px;display:grid;gap:32px}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0}h2{font-size:20px;font-weight:600}code,.mono{font-family:var(--font-mono);font-size:.88em}code{background:var(--sunken);padding:1px 5px;border-radius:4px;overflow-wrap:anywhere}button,select,textarea,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--ink-2)}.small{font-size:13px}.label{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);font-weight:500}.page-head{display:grid;gap:14px}.brand{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.brand .mark{font-family:var(--font-mono);font-size:12px;color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:1px 6px;letter-spacing:.06em}.brand h1{font-size:26px;font-weight:600}.env{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--good-soft);color:var(--good)}.byline{font-size:13px;color:var(--ink-3)}.strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.strip>div{padding:14px 16px;display:grid;gap:2px;min-width:0}.strip>div+div{border-left:1px solid var(--line)}.strip .num{font-family:var(--font-display);font-size:26px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2}.strip .num small{font-size:15px;color:var(--ink-3);font-weight:500}.sevbar{display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--sunken);margin-top:6px}.sevbar span{display:block;height:100%}@media(max-width:720px){.strip{grid-template-columns:repeat(2,minmax(0,1fr))}.strip>div:nth-child(3){border-left:0}.strip>div:nth-child(n+3){border-top:1px solid var(--line)}}section{display:grid;gap:14px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.req-list{display:grid;gap:12px}.req{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--warn);border-radius:var(--radius);padding:16px;display:grid;gap:10px;min-width:0}.req.answered{border-left-color:var(--good)}.req h3{font-size:16px;font-weight:600;font-family:var(--font-body)}.req dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0;font-size:14px}.req dt{color:var(--ink-3)}.req dd{margin:0;min-width:0}.req form{display:grid;gap:8px}.req textarea{width:100%;min-height:64px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);resize:vertical}.answer{background:var(--good-soft);border-radius:var(--radius);padding:8px 12px;font-size:14px}.empty{background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius);padding:18px;color:var(--ink-2);font-size:14px}details.answered-list>summary{cursor:pointer;color:var(--ink-2);font-size:14px}details.answered-list[open]>summary{margin-bottom:10px}.btn{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:5px 12px;font-size:14px}.btn:hover{border-color:var(--ink-3)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--surface);font-weight:500}.btn:disabled{opacity:.5;cursor:not-allowed}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filters{display:flex;gap:8px 16px;flex-wrap:wrap;align-items:center}.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.seg button{border:0;background:none;padding:4px 10px;font-size:13px;color:var(--ink-2)}.seg button+button{border-left:1px solid var(--line)}.seg button[aria-pressed=true]{background:var(--accent-soft);color:var(--ink);font-weight:500}select{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:4px 8px;font-size:13px;max-width:100%}.ledger{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.group-head{padding:10px 16px;background:var(--sunken);font-size:13px;color:var(--ink-2);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.group-head strong{color:var(--ink);font-weight:600}.finding{border-top:1px solid var(--line)}.finding>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:4px 72px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 16px 10px 0}.finding>summary::-webkit-details-marker{display:none}.finding>summary:hover{background:color-mix(in srgb,var(--sunken) 50%,transparent)}.stripe{align-self:stretch}.sev-Critical .stripe{background:var(--crit)}.sev-Major .stripe{background:var(--major)}.sev-Minor .stripe{background:var(--line)}.pill{display:inline-block;font-size:12px;font-weight:600;padding:1px 8px;border-radius:999px;white-space:nowrap}.pill.Critical{background:var(--crit-soft);color:var(--crit)}.pill.Major{background:var(--major-soft);color:var(--major)}.pill.Minor{background:var(--minor-soft);color:var(--minor)}.f-title{min-width:0;display:grid}.f-title span:first-child{font-weight:500;overflow-wrap:anywhere}.f-title .meta{font-size:12px;color:var(--ink-3)}.verdict{font-size:12px;padding:2px 8px;border-radius:4px;white-space:nowrap;border:1px solid var(--line);color:var(--ink-2)}.verdict.confirmed{background:var(--crit-soft);border-color:transparent;color:var(--crit)}.verdict.not-bug{background:var(--sunken);border-color:transparent;color:var(--ink-2);text-decoration:line-through}.verdict.duplicate{background:var(--minor-soft);border-color:transparent;color:var(--minor)}.verdict.fixed{background:var(--good-soft);border-color:transparent;color:var(--good)}.detail{padding:4px 16px 18px 88px;display:grid;gap:14px}.cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cols>div{min-width:0}.cols p{margin:4px 0 0;overflow-wrap:anywhere}.judge{border-top:1px dashed var(--line);padding-top:12px;display:grid;gap:8px}.judge textarea{width:100%;min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);resize:vertical}.judged-by{font-size:13px;color:var(--ink-2)}@media(max-width:720px){.finding>summary{grid-template-columns:4px minmax(0,1fr) auto}.finding>summary .pill{display:none}.detail{padding-left:16px}.cols{grid-template-columns:1fr}}.pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:12px}.page-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:grid;gap:10px;align-content:start;min-width:0}.page-card h3{font-size:15px;font-weight:600;font-family:var(--font-body);overflow-wrap:anywhere}.status{font-size:12px;font-weight:600;padding:1px 8px;border-radius:999px;justify-self:start}.status.done{background:var(--good-soft);color:var(--good)}.status.waiting-data{background:var(--warn-soft);color:var(--warn)}.status.in-progress{background:var(--accent-soft);color:var(--accent)}.status.todo,.status.notes{background:var(--sunken);color:var(--ink-2)}.counts{display:flex;gap:10px;font-size:13px;color:var(--ink-2);flex-wrap:wrap}.counts b{font-variant-numeric:tabular-nums;color:var(--ink)}.page-card details summary{cursor:pointer;font-size:13px;color:var(--ink-2)}.page-card ul{margin:6px 0 0;padding-left:18px;font-size:13px;color:var(--ink-2);display:grid;gap:2px}.notice{font-size:13px;color:var(--ink-2);background:var(--sunken);border-radius:var(--radius);padding:8px 12px}.toast{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:var(--radius);font-size:14px;z-index:10;max-width:calc(100% - 32px)}@media(prefers-reduced-motion:no-preference){.finding[open] .detail{animation:open .14s ease-out}@keyframes open{0%{opacity:.4}to{opacity:1}}}html,body{margin:0}body{min-height:100vh;overflow-x:hidden}a{color:var(--accent)}.wrap{gap:24px}.topbar{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.topbar-in{max-width:1080px;margin:0 auto;padding:8px 16px;display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap}.topbar .brand-link{display:flex;gap:8px;align-items:center;text-decoration:none;color:var(--ink);font-family:var(--font-display);font-weight:600}.topbar .mark{font-family:var(--font-mono);font-size:12px;color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:1px 6px;letter-spacing:.06em}.topbar .who{margin-left:auto;display:flex;gap:8px;align-items:center;font-size:13px;color:var(--ink-2);flex-wrap:wrap}.tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:thin;max-width:100%}.tabs a{white-space:nowrap;text-decoration:none;color:var(--ink-2);font-size:14px;padding:6px 10px;border-radius:var(--radius)}.tabs a:hover{background:var(--sunken)}.tabs a.active{background:var(--accent-soft);color:var(--ink);font-weight:500}.tabs .badge{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:var(--warn-soft);color:var(--warn);font-size:12px;text-align:center}.subnav{border-bottom:1px solid var(--line);background:var(--bg)}.subnav-row{max-width:1080px;margin:0 auto;padding:6px 16px;display:flex;align-items:center;gap:8px}.subnav .tabs{min-width:0;flex:1 1 auto}.subnav .runner-pill{flex:none;display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:2px 10px;border-radius:999px;background:var(--sunken);color:var(--ink-2);white-space:nowrap;text-decoration:none}.runner-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3);flex:none}.runner-pill.on{background:var(--good-soft);color:var(--good)}.runner-pill.on .dot{background:var(--good);animation:qm-pulse 2s ease-in-out infinite}.runner-pill.busy{background:var(--accent-soft);color:var(--accent)}.runner-pill.busy .dot{background:var(--accent);animation:qm-pulse 1s ease-in-out infinite}.runner-pill.warn{background:var(--warn-soft);color:var(--warn)}.runner-pill.warn .dot{background:var(--warn)}@keyframes qm-pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.runner-pill .dot{animation:none!important}}@media(max-width:720px){.subnav-row{flex-direction:column;align-items:flex-start;gap:4px}.subnav .tabs{width:100%}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:grid;gap:10px;min-width:0}.card h3{font-size:16px;font-weight:600;font-family:var(--font-body);overflow-wrap:anywhere}.form{display:grid;gap:10px}.field{display:grid;gap:4px;min-width:0}.field>span{font-size:13px;color:var(--ink-2)}input[type=text],input[type=email],input[type=password],input:not([type]),textarea.input,select.input{width:100%;padding:7px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);min-width:0}textarea.input{min-height:64px;resize:vertical}textarea.code{font-family:var(--font-mono);font-size:13px}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px}.error{color:var(--crit);font-size:14px}.ok{color:var(--good);font-size:14px}.btn.danger{border-color:var(--crit);color:var(--crit)}.btn.small{padding:2px 8px;font-size:13px}.linklike{background:none;border:0;padding:0;color:var(--accent);text-decoration:underline;font-size:inherit}.login{max-width:380px;margin:12vh auto 0;padding-inline:16px;display:grid;gap:16px}.login h1{font-size:24px}.projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:12px}.project-card{text-decoration:none;color:inherit}.project-card:hover{border-color:var(--ink-3)}.progress{height:6px;background:var(--sunken);border-radius:3px;overflow:hidden}.progress span{display:block;height:100%;background:var(--accent)}.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}table.t{width:100%;border-collapse:collapse;font-size:14px}table.t th,table.t td{text-align:left;padding:8px 12px;border-top:1px solid var(--line);vertical-align:top}table.t thead th{border-top:0;background:var(--sunken);font-size:12px;color:var(--ink-3);font-weight:500;white-space:nowrap}table.t td.wrap-any{overflow-wrap:anywhere;min-width:160px}.shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:10px}.shot{display:grid;gap:4px;margin:0}.shot a{display:block;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--sunken)}.shot img{display:block;width:100%;height:auto;max-height:260px;object-fit:contain}.shot figcaption{font-size:12px;color:var(--ink-3);overflow-wrap:anywhere}.rule-head{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.method{font-family:var(--font-mono);font-size:12px;font-weight:600;padding:1px 6px;border-radius:4px;background:var(--sunken)}.method.DELETE{background:var(--crit-soft);color:var(--crit)}pre.json{margin:0;background:var(--sunken);padding:8px 10px;border-radius:var(--radius);font-family:var(--font-mono);font-size:12px;overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere}.status.approved{background:var(--good-soft);color:var(--good)}.status.proposed{background:var(--warn-soft);color:var(--warn)}.status.rejected{background:var(--sunken);color:var(--ink-2)}.status.open{background:var(--crit-soft);color:var(--crit)}.status.resolved{background:var(--accent-soft);color:var(--accent)}.status.closed{background:var(--sunken);color:var(--ink-2)}.ticket-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:10px 16px;border-top:1px solid var(--line);text-decoration:none;color:inherit}.ticket-row:first-child{border-top:0}.ticket-row:hover{background:color-mix(in srgb,var(--sunken) 50%,transparent)}.ticket-row.not-seen{box-shadow:inset 4px 0 0 var(--good)}.flag{font-size:12px;font-weight:600;padding:1px 8px;border-radius:999px;background:var(--good-soft);color:var(--good);white-space:nowrap}.comment{border-top:1px solid var(--line);padding-top:10px;display:grid;gap:2px}.comment p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.token-box{font-family:var(--font-mono);font-size:13px;background:var(--warn-soft);padding:10px 12px;border-radius:var(--radius);overflow-wrap:anywhere}.page-card a.title-link{color:inherit;text-decoration:none}.page-card a.title-link:hover{text-decoration:underline}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:720px){.ticket-row{grid-template-columns:52px minmax(0,1fr)}.ticket-row>:last-child{grid-column:2;justify-self:start}.topbar .who{margin-left:0;width:100%}}.kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 14px;margin:0;font-size:14px}.kv dt{color:var(--ink-3)}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}@media(max-width:720px){table.t.stack thead{display:none}table.t.stack,table.t.stack tbody,table.t.stack tr,table.t.stack td{display:block;width:100%}table.t.stack tr{border-top:1px solid var(--line);padding:8px 0}table.t.stack tr:first-child{border-top:0}table.t.stack td{border-top:0;padding:3px 12px}table.t.stack td[data-label]:before{content:attr(data-label);display:block;font-size:12px;color:var(--ink-3)}table.t.stack td.wrap-any{min-width:0}}.status.job-queued{background:var(--sunken);color:var(--ink-2)}.status.job-running{background:var(--accent-soft);color:var(--accent)}.status.job-done{background:var(--good-soft);color:var(--good)}.status.job-failed{background:var(--crit-soft);color:var(--crit)}.status.job-cancelled{background:var(--sunken);color:var(--ink-3)}.flag.warn{background:var(--warn-soft);color:var(--warn)}.job-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:8px 12px;align-items:start;padding:10px 16px;border-top:1px solid var(--line)}.job-row:first-child{border-top:0}.job-row.active{box-shadow:inset 4px 0 0 var(--accent)}.job-row .f-title{display:grid;gap:2px;min-width:0}.job-row .job-pages{color:var(--ink);text-decoration:none;font-weight:500;overflow-wrap:anywhere}.job-row .job-pages:hover{text-decoration:underline}.job-row .meta{font-size:12px;color:var(--ink-3);overflow-wrap:anywhere}.job-row .job-summary{overflow-wrap:anywhere}.machine .dot{width:10px;height:10px;border-radius:50%;background:var(--ink-3);align-self:center}.machine .dot.on{background:var(--good)}.machine.offline{opacity:.85}pre.log{margin:0;background:var(--sunken);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;font-family:var(--font-mono);font-size:12px;line-height:1.5;height:min(60vh,520px);overflow:auto;white-space:pre;tab-size:4;max-width:100%}.pick-tools{margin-bottom:6px}.pick-list{display:grid;max-height:min(50vh,420px);overflow:auto;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px}.pick-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 10px;border-top:1px solid var(--line);cursor:pointer}.pick-row:first-child{border-top:0}.pick-row:hover{background:color-mix(in srgb,var(--sunken) 50%,transparent)}.pick-title{overflow-wrap:anywhere;font-size:14px}@media(max-width:720px){.job-row{grid-template-columns:44px minmax(0,1fr)}.job-row>:last-child{grid-column:2;justify-self:start}}.flag.kind{background:var(--accent-soft);color:var(--accent);margin-right:6px;vertical-align:middle}html{color-scheme:light dark;--mat-sys-background: light-dark(#f7faf9, #101414);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#eff1f0, #2d3131);--mat-sys-inverse-primary: light-dark(#00dddd, #006a6a);--mat-sys-inverse-surface: light-dark(#2d3131, #e0e3e2);--mat-sys-on-background: light-dark(#191c1c, #e0e3e2);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #003737);--mat-sys-on-primary-container: light-dark(#004f4f, #00fbfb);--mat-sys-on-primary-fixed: light-dark(#002020, #002020);--mat-sys-on-primary-fixed-variant: light-dark(#004f4f, #004f4f);--mat-sys-on-secondary: light-dark(#ffffff, #1b3534);--mat-sys-on-secondary-container: light-dark(#324b4b, #cce8e7);--mat-sys-on-secondary-fixed: light-dark(#051f1f, #051f1f);--mat-sys-on-secondary-fixed-variant: light-dark(#324b4b, #324b4b);--mat-sys-on-surface: light-dark(#191c1c, #e0e3e2);--mat-sys-on-surface-variant: light-dark(#3f4948, #dae5e4);--mat-sys-on-tertiary: light-dark(#ffffff, #502400);--mat-sys-on-tertiary-container: light-dark(#723600, #ffdcc7);--mat-sys-on-tertiary-fixed: light-dark(#311300, #311300);--mat-sys-on-tertiary-fixed-variant: light-dark(#723600, #723600);--mat-sys-outline: light-dark(#6f7979, #889392);--mat-sys-outline-variant: light-dark(#bec9c8, #3f4948);--mat-sys-primary: light-dark(#006a6a, #00dddd);--mat-sys-primary-container: light-dark(#00fbfb, #004f4f);--mat-sys-primary-fixed: light-dark(#00fbfb, #00fbfb);--mat-sys-primary-fixed-dim: light-dark(#00dddd, #00dddd);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#4a6363, #b0cccb);--mat-sys-secondary-container: light-dark(#cce8e7, #324b4b);--mat-sys-secondary-fixed: light-dark(#cce8e7, #cce8e7);--mat-sys-secondary-fixed-dim: light-dark(#b0cccb, #b0cccb);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#f7faf9, #101414);--mat-sys-surface-bright: light-dark(#f7faf9, #363a39);--mat-sys-surface-container: light-dark(#ebefed, #1c2020);--mat-sys-surface-container-high: light-dark(#e6e9e7, #272b2a);--mat-sys-surface-container-highest: light-dark(#e0e3e2, #313635);--mat-sys-surface-container-low: light-dark(#f1f4f3, #191c1c);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0b0f0e);--mat-sys-surface-dim: light-dark(#d7dbd9, #101414);--mat-sys-surface-tint: light-dark(#006a6a, #00dddd);--mat-sys-surface-variant: light-dark(#dae5e4, #3f4948);--mat-sys-tertiary: light-dark(#964900, #ffb787);--mat-sys-tertiary-container: light-dark(#ffdcc7, #723600);--mat-sys-tertiary-fixed: light-dark(#ffdcc7, #ffdcc7);--mat-sys-tertiary-fixed-dim: light-dark(#ffb787, #ffb787);--mat-sys-neutral-variant20: #293232;--mat-sys-neutral10: #191c1c;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-body-large-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-body-medium-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-body-small-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-display-large-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-display-medium-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-display-small-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-headline-large-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-headline-medium-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-headline-small-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-label-large-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-label-medium-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-label-small-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-title-large-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-title-medium-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-title-small-font: "Sukhumvit Set", "Noto Sans Thai", system-ui, sans-serif;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}html{--mat-dialog-container-color: var(--surface);--mat-dialog-subhead-color: var(--ink);--mat-dialog-supporting-text-color: var(--ink-2);--mat-dialog-container-shape: 8px;--mat-snack-bar-container-color: var(--ink);--mat-snack-bar-supporting-text-color: var(--bg);--mat-tab-active-label-text-color: var(--ink);--mat-tab-inactive-label-text-color: var(--ink-2);--mat-tab-active-indicator-color: var(--accent);--mat-tab-active-focus-label-text-color: var(--ink);--mat-tab-active-hover-label-text-color: var(--ink);--mat-tab-active-focus-indicator-color: var(--accent);--mat-tab-active-hover-indicator-color: var(--accent);--mat-tab-divider-color: var(--line)}.sevbar .crit{background:var(--crit)}.sevbar .major{background:var(--major)}.sevbar .minor{background:var(--minor)}.flat{margin:0}.nowrap{white-space:nowrap}.narrow-select{max-width:280px}.narrow-form{max-width:480px}.dialog-text{margin:0 0 12px;overflow-wrap:anywhere}.mat-mdc-dialog-content .field{margin-top:4px}.admin-tabs{min-width:0}.admin-tabs .mat-mdc-tab-body-content{display:grid;gap:24px;padding-top:20px;overflow:visible}.admin-tabs .mat-mdc-tab-body-content>*{display:grid;gap:24px;min-width:0}app-shell,app-project-layout,app-finding,app-request-card,app-rule-card,app-propose-form,app-strip,app-evidence{display:block;min-width:0}app-overview,app-findings,app-page-detail,app-requests,app-guard,app-tickets{display:grid;gap:24px;min-width:0}app-admin-users,app-admin-machines,app-admin-audit{display:block;min-width:0}
