:root{color:#18202b;font-synthesis:none;text-rendering:optimizelegibility;background:#f4f6f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,a{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.loading,.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{background:#fff;border:1px solid #d7dde5;border-radius:8px;width:min(420px,100%);padding:28px;box-shadow:0 16px 40px #18202b14}.brand-mark,.brand{color:#0f766e;align-items:center;gap:10px;display:inline-flex}.brand-mark{background:#eef7f5;border:1px solid #b9d8d3;border-radius:8px;justify-content:center;width:42px;height:42px}.login-panel h1{letter-spacing:0;margin:18px 0 8px;font-size:28px}.login-panel p{color:#607086;margin:0 0 22px;line-height:1.5}.app-shell{min-height:100vh}.topbar{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff5;border-bottom:1px solid #d9e0e7;justify-content:space-between;align-items:center;min-height:58px;padding:0 22px;display:flex;position:sticky;top:0}.brand{font-weight:700}.userbar{color:#374256;align-items:center;gap:10px;display:flex}.userbar img{border-radius:50%;width:28px;height:28px}.workspace{grid-template-columns:minmax(380px,.9fr) minmax(420px,1.1fr);gap:18px;max-width:1440px;margin:0 auto;padding:20px;display:grid}.left-column,.right-column,.target-stack{flex-direction:column;gap:16px;display:flex}.section,.summary-grid,.target-report{background:#fff;border:1px solid #d9e0e7;border-radius:8px}.section-header,.target-header,.project-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-header{border-bottom:1px solid #e7ebf0;padding:16px}.section-header h2,.target-header h3{letter-spacing:0;margin:0;font-size:16px}.section-header p,.target-header p{color:#6a778a;margin:3px 0 0;font-size:13px}.toolbar{flex-wrap:wrap;gap:8px;display:flex}.primary-action,.secondary-action,.icon-button{border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:36px;text-decoration:none;transition:border-color .12s,background-color .12s,color .12s;display:inline-flex}.primary-action{color:#fff;background:#0f766e;border:1px solid #0f766e;padding:0 14px}.primary-action:hover{background:#115e59}.primary-action.compact{min-width:82px}.secondary-action{color:#273244;background:#fff;border:1px solid #c9d2dc;padding:0 12px}.secondary-action:hover,.icon-button:hover{background:#f3f6f9}.icon-button{color:#273244;background:#fff;border:1px solid #c9d2dc;width:34px}.table-shell{overflow-x:auto}table{border-collapse:collapse;table-layout:fixed;width:100%}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #edf0f3;padding:12px 14px;font-size:13px}th{color:#607086;font-weight:600}.check-col{width:54px}.repo-cell{color:#1f2937;overflow-wrap:anywhere;font-weight:650}.inline-meta{color:#4d5b70;align-items:center;gap:6px;display:inline-flex}.empty-cell,.empty-block{color:#7b8796;text-align:center;padding:24px}.runs-section{min-height:260px}.run-list{flex-direction:column;display:flex}.run-item{color:#293449;text-align:left;background:#fff;border:0;border-bottom:1px solid #edf0f3;grid-template-columns:96px minmax(120px,1fr) 80px;align-items:center;gap:10px;width:100%;padding:12px 16px;display:grid}.run-item.selected{background:#f3f8f7}.status{border-radius:999px;justify-content:center;align-items:center;min-width:86px;min-height:24px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.status.success{color:#166534;background:#e8f6ee}.status.failed{color:#b42318;background:#fff1f1}.status.running{color:#1d4ed8;background:#eef4ff}.status.queued{color:#4b5563;background:#f3f4f6}.status.skipped{color:#9a3412;background:#fff7ed}.summary-grid{grid-template-columns:repeat(3,1fr);display:grid}.summary-grid div{border-right:1px solid #e7ebf0;padding:16px}.summary-grid div:last-child{border-right:0}.summary-grid span{color:#6a778a;margin-bottom:4px;font-size:12px;display:block}.summary-grid strong{letter-spacing:0;font-size:24px}.report-section{min-height:560px}.target-report{margin:14px;overflow:hidden}.target-header{border-bottom:1px solid #e7ebf0;padding:14px}.notice,.global-error{color:#455165;background:#f8fafc;border:1px solid #d9e0e7;border-radius:7px;align-items:center;gap:8px;margin:12px 14px;padding:10px 12px;display:flex}.notice.error,.global-error{color:#9f1d1d;background:#fff7f7;border-color:#f4c7c7}.global-error{max-width:1440px;margin:16px auto 0}.success-icon{color:#15803d}.running-icon{color:#2563eb}.failed-icon{color:#b42318}.project-report{border-top:1px solid #edf0f3;padding:14px}.project-title{color:#273244;justify-content:flex-start;font-weight:650}.project-title span:not(:first-of-type){color:#6a778a;font-size:12px;font-weight:500}.chapter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.chapter-item{background:#fbfcfd;border:1px solid #dfe5ec;border-radius:7px;padding:10px}.chapter-item span{color:#5f6e82;min-height:34px;font-size:12px;display:block}.chapter-item strong{font-size:20px}.diagnostic-list{flex-direction:column;gap:8px;display:flex}details{border:1px solid #dfe5ec;border-radius:7px;overflow:hidden}summary{cursor:pointer;color:#273244;overflow-wrap:anywhere;justify-content:space-between;gap:12px;padding:10px 12px;display:flex}.diagnostic{border-top:1px solid #edf0f3;padding:10px 12px}.diagnostic div{color:#66758a;justify-content:space-between;gap:12px;font-size:12px;display:flex}.diagnostic p{margin:6px 0;line-height:1.45}.diagnostic small{color:#66758a;line-height:1.45;display:block}.report-page{max-width:1680px;margin:0 auto;padding:20px}.report-page-header,.report-layout,.source-panel,.issue-details,.file-explorer{background:#fff;border:1px solid #d9e0e7;border-radius:8px}.report-page-header{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px;display:grid}.report-page-title h1{letter-spacing:0;margin:0;font-size:20px}.report-page-title p{color:#6a778a;margin:3px 0 0;font-size:13px}.report-page-stats{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.report-page-stats span{color:#4d5b70;border:1px solid #dfe5ec;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:650}.report-layout{grid-template-columns:minmax(260px,.7fr) minmax(440px,1.5fr) minmax(280px,.8fr);gap:0;margin-top:16px;display:grid;overflow:hidden}.file-explorer,.source-panel,.issue-details{border:0;border-radius:0;min-height:680px}.file-explorer,.code-column{border-right:1px solid #e7ebf0}.explorer-header,.source-toolbar,.selected-file-meta,.issue-details h3{border-bottom:1px solid #e7ebf0;min-height:48px;margin:0;padding:12px 14px}.explorer-header,.source-toolbar,.selected-file-meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.explorer-header h2,.issue-details h3{letter-spacing:0;font-size:15px}.explorer-header h2{margin:0}.explorer-header span,.source-toolbar strong{color:#6a778a;font-size:12px}.explorer-list{flex-direction:column;display:flex}.explorer-item{color:#273244;text-align:left;background:#fff;border:0;border-bottom:1px solid #edf0f3;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;width:100%;padding:12px 14px;display:grid;position:relative}.explorer-item.active{background:#f3f8f7;box-shadow:inset 3px 0 #0f766e}.explorer-item span{overflow-wrap:anywhere;grid-column:1/2;font-weight:650}.explorer-item small{color:#6a778a;overflow-wrap:anywhere;grid-column:1/2}.explorer-item strong{color:#b42318;text-align:center;background:#fff1f1;border-radius:999px;grid-area:1/2/3/3;align-self:start;min-width:28px;padding:3px 7px;font-size:12px}.code-column{min-width:0}.selected-file-meta{color:#5f6e82;justify-content:flex-start;font-size:13px}.selected-file-meta span{align-items:center;gap:6px;display:inline-flex}.source-toolbar{color:#273244;justify-content:flex-start;font-weight:650}.source-toolbar span{overflow-wrap:anywhere;min-width:0}.code-snippets{background:#fbfcfd;max-height:632px;overflow:auto}.snippet-window{min-width:max-content}.snippet-gap{color:#8591a3;padding:8px 14px 8px 72px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px}.code-line{color:#1f2937;text-align:left;background:0 0;border:0;grid-template-columns:58px minmax(0,1fr);width:100%;min-width:100%;padding:0;display:grid}.code-line.has-issue{background:#fff1f1}.code-line.has-issue:hover,.code-line.selected{background:#ffe0e0}.line-number,.line-text{white-space:pre;min-height:22px;padding:3px 8px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:12px;line-height:16px;display:block}.line-number{-webkit-user-select:none;user-select:none;color:#8591a3;text-align:right;border-right:1px solid #e2e8f0}.line-text{overflow:visible}.syntax-keyword,.syntax-decorator{color:#3559b8;font-weight:650}.syntax-string{color:#0f766e}.syntax-comment{color:#7b8796;font-style:italic}.syntax-number,.syntax-literal{color:#b45309}.syntax-function{color:#7c3aed}.syntax-member,.syntax-attr{color:#be185d}.syntax-tag{color:#047857;font-weight:650}.syntax-operator,.syntax-punctuation{color:#526174}.issue-details{padding-bottom:14px}.issue-details p{color:#66758a;margin:12px 14px;line-height:1.45}.issue-card{background:#fff7f7;border:1px solid #f4c7c7;border-radius:7px;margin:12px 14px 0;padding:12px}.issue-card div{color:#9f1d1d;justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.issue-card p{color:#273244;margin:8px 0}.issue-card small{color:#66758a;margin-top:6px;line-height:1.4;display:block}.fallback-diagnostics{padding-bottom:14px}@media (width<=980px){.workspace{grid-template-columns:1fr}.chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-layout{grid-template-columns:1fr}.file-explorer,.source-panel,.issue-details{border-bottom:1px solid #e7ebf0;min-height:auto}.file-explorer,.code-column{border-right:0}.code-snippets{max-height:520px}}@media (width<=620px){.topbar,.section-header,.report-page-header,.target-header{flex-direction:column;align-items:flex-start}.workspace,.report-page{padding:12px}.report-page-header{display:flex}.report-page-stats{justify-content:flex-start}.summary-grid,.chapter-grid{grid-template-columns:1fr}.summary-grid div{border-bottom:1px solid #e7ebf0;border-right:0}.run-item{grid-template-columns:1fr}}
