.gfm-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;padding:10px 16px;background:var(--penna-c-bg-elevated);border-bottom:1px solid color-mix(in srgb,var(--penna-c-text-3) 22%,transparent);flex-shrink:0}.gfm-summary{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;font-weight:600}.gfm-summary .pass{color:var(--penna-c-tip)}.gfm-summary .fail{color:var(--penna-c-danger);cursor:pointer}.gfm-summary .fail.summary-action:hover{text-decoration:underline}.gfm-summary .fail.is-active{outline:2px solid color-mix(in srgb,var(--penna-c-danger) 45%,transparent);border-radius:4px;padding:0 4px}.gfm-summary .skip,.gfm-summary .total{color:var(--penna-c-text-3);font-weight:500}.gfm-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}.gfm-filters input,.gfm-filters select,.gfm-filters button{font:inherit;font-size:13px}.gfm-filters input[type=search]{width:180px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--penna-c-text-3) 35%,transparent);border-radius:6px;background:var(--penna-c-bg);color:var(--penna-c-text-1)}.gfm-filters select{padding:6px 8px;border:1px solid color-mix(in srgb,var(--penna-c-text-3) 35%,transparent);border-radius:6px;background:var(--penna-c-bg);color:var(--penna-c-text-1);max-width:220px}.gfm-filters button{padding:6px 12px;border:1px solid color-mix(in srgb,var(--penna-c-text-3) 35%,transparent);border-radius:6px;background:var(--penna-c-bg);color:var(--penna-c-text-1);cursor:pointer}.gfm-filters button:hover{background:var(--penna-c-bg-elevated)}.gfm-status{width:100%;font-size:12px;color:var(--penna-c-text-3)}.gfm-main{flex:1;min-height:0;display:flex;overflow:hidden}.gfm-nav{width:220px;flex-shrink:0;overflow-y:auto;border-right:1px solid color-mix(in srgb,var(--penna-c-text-3) 22%,transparent);background:var(--penna-c-bg-elevated);padding:8px 0;font-size:12px}.gfm-nav .nav-group{margin-bottom:12px}.gfm-nav .nav-group h2{margin:0;padding:6px 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--penna-c-text-3)}.gfm-nav .nav-group .nav-count{font-weight:500;color:var(--penna-c-text-3)}.gfm-nav .nav-group a{display:block;padding:4px 12px;color:var(--penna-c-text-2);text-decoration:none}.gfm-nav .nav-group a:hover{background:color-mix(in srgb,var(--penna-c-brand-soft) 40%,var(--penna-c-bg-elevated))}.gfm-nav .nav-group a .status.pass{color:var(--penna-c-tip)}.gfm-nav .nav-group a .status.fail{color:var(--penna-c-danger)}.gfm-cases{flex:1;min-width:0;overflow-y:auto;padding:16px;background:var(--penna-c-bg)}.case{margin-bottom:24px;border:1px solid color-mix(in srgb,var(--penna-c-text-3) 22%,transparent);border-radius:8px;overflow:hidden}.case .case-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--penna-c-bg-elevated);border-bottom:1px solid color-mix(in srgb,var(--penna-c-text-3) 22%,transparent)}.case .case-header h3{margin:0 0 4px;font-size:15px;color:var(--penna-c-text-1)}.case .case-header .meta{font-size:12px;color:var(--penna-c-text-3)}.case .case-header .badge{flex-shrink:0;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.case .case-header .badge.pass{background:var(--penna-c-alert-tip-bg);color:var(--penna-c-alert-tip-text)}.case .case-header .badge.fail{background:var(--penna-c-alert-danger-bg);color:var(--penna-c-alert-danger-text)}.case .case-body{display:grid;grid-template-columns:1fr 1fr;gap:0}.case .panel{border-right:1px solid color-mix(in srgb,var(--penna-c-text-3) 22%,transparent);border-bottom:1px solid color-mix(in srgb,var(--penna-c-text-3) 22%,transparent);min-width:0}.case .panel:nth-child(2n){border-right:none}.case .panel:nth-last-child(-n+2){border-bottom:none}.case .panel h4{margin:0;padding:8px 12px;font-size:12px;font-weight:600;color:var(--penna-c-text-2);background:var(--penna-c-bg-elevated);border-bottom:1px solid color-mix(in srgb,var(--penna-c-text-3) 22%,transparent)}.case .panel pre{margin:0;padding:12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.45;white-space:pre-wrap;word-break:break-word;overflow:auto;max-height:280px;background:var(--penna-c-bg-elevated);color:var(--penna-c-text-1)}.case .panel .preview{padding:12px 16px;min-height:48px;max-height:280px;overflow:auto}.case .panel .fail-msg{padding:8px 12px;font-size:12px;color:var(--penna-c-alert-danger-text);background:var(--penna-c-alert-danger-bg);border-top:1px solid color-mix(in srgb,var(--penna-c-danger) 35%,transparent)}
