:root{--bg:#f6f6f8;--surface:#fff;--surface-2:#f0f0f4;--border:#e2e2e8;--text:#17171c;--muted:#6b6b78;--accent:#6d4aff;--accent-text:#fff;--green:#1a7f4b;--green-bg:#e3f5eb;--amber:#8a5a00;--amber-bg:#fdf1d6;--red:#b42323;--red-bg:#fde4e4;--blue:#1f5fbf;--blue-bg:#e3edfc;--checker:#e9e9ee;--radius:8px;--shadow:0 1px 2px #0000000f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#111115;--surface:#1a1a20;--surface-2:#23232b;--border:#2f2f39;--text:#ececf1;--muted:#9a9aa8;--accent:#8b70ff;--green:#5fd49a;--green-bg:#173326;--amber:#f2c14e;--amber-bg:#3a2e12;--red:#ff8080;--red-bg:#3d1a1a;--blue:#7fb0ff;--blue-bg:#182a47;--checker:#2a2a32;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 .5rem;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.1rem}code,pre{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em}pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:12px;overflow-x:auto}.muted{color:var(--muted)}.topbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:10px 24px;display:flex}.brand{color:var(--text);align-items:center;gap:8px;font-size:1.05rem;font-weight:700;display:flex}.brand:hover{text-decoration:none}.brand-mark{background:linear-gradient(135deg, transparent 50%, #ffcf4a 50%) no-repeat right bottom / 50% 50%, var(--accent);border-radius:5px;width:20px;height:20px}.topbar-left{align-items:center;gap:10px;display:flex}.topbar-account{color:var(--muted);border-left:1px solid var(--border);padding-left:10px}.topbar-user{color:var(--muted);align-items:center;gap:8px;display:flex}.topbar-user img{border-radius:50%}.page{max-width:1400px;margin:0 auto;padding:24px}.page.narrow{max-width:720px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.page-header p{margin:0}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:20px;display:flex;overflow-x:auto}.tabs a{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px}.tabs a:hover{color:var(--text);text-decoration:none}.tabs a.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.stack>*+*{margin-top:16px}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}button,.button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-weight:500;display:inline-flex}button:hover,.button:hover{background:var(--surface-2);text-decoration:none}button:disabled{opacity:.5;cursor:default}.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.primary:hover{background:var(--accent);filter:brightness(1.08)}.approve{color:var(--green)}.approve.on{background:var(--green-bg);border-color:var(--green)}.reject{color:var(--red)}.reject.on{background:var(--red-bg);border-color:var(--red)}.link-button{color:var(--muted);background:0 0;border:0;padding:0}.link-button:hover{color:var(--text);background:0 0}input[type=text],input[type=number],textarea{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;width:100%;padding:6px 10px}label,.label{margin-bottom:4px;font-weight:500;display:block}.field+.field{margin-top:14px}.field .hint{color:var(--muted);margin-top:4px;font-size:.85em}.checkbox{align-items:center;gap:6px;font-weight:400;display:flex}.segmented{border:1px solid var(--border);border-radius:6px;display:inline-flex;overflow:hidden}.segmented button{border:0;border-radius:0}.segmented button+button{border-left:1px solid var(--border)}.segmented button.on{background:var(--surface-2);font-weight:600}.badge{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:.78rem;font-weight:600;display:inline-flex}.badge.passed,.badge.approved{background:var(--green-bg);color:var(--green)}.badge.review,.badge.pending,.badge.changed,.badge.new{background:var(--amber-bg);color:var(--amber)}.badge.failed,.badge.errored,.badge.rejected,.badge.error{background:var(--red-bg);color:var(--red)}.badge.play{background:var(--blue-bg);color:var(--blue)}.badge.warning{background:var(--amber-bg);color:var(--amber)}a.badge:hover{filter:brightness(.97);text-decoration:none}.badge.superseded,.badge.outdated{text-decoration:line-through}.badge.skipped{background:var(--amber-bg);color:var(--amber)}.badge.capturing,.badge.uploading{background:var(--blue-bg);color:var(--blue)}.banner{border-radius:var(--radius);background:var(--blue-bg);color:var(--blue);margin-bottom:16px;padding:10px 14px}.banner.warn{background:var(--amber-bg);color:var(--amber)}.banner.error{background:var(--red-bg);color:var(--red)}table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;background:var(--surface-2);font-size:.8rem;font-weight:600}tr:last-child td{border-bottom:0}.table-wrap{overflow-x:auto}.snapshot{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}.snapshot-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:10px 14px;display:flex}.snapshot-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.snapshot-title strong{font-weight:600}.snapshot-actions{gap:6px;display:flex}.snapshot-body{gap:14px;padding:14px;display:grid}.snapshot-body.split{grid-template-columns:1fr 1fr}@media (width<=800px){.snapshot-body.split{grid-template-columns:1fr}}.shot figcaption{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;font-size:.78rem;font-weight:600}.shot{min-width:0;margin:0}.shot-frame{border:1px solid var(--border);background:repeating-conic-gradient(var(--checker) 0 25%, transparent 0 50%) 0 0 / 16px 16px;border-radius:4px;max-height:80vh;overflow:auto}.shot-frame img{max-width:100%;height:auto;display:block}.error-text{white-space:pre-wrap;color:var(--red);margin:0}.empty{text-align:center;color:var(--muted);padding:48px 16px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.token-reveal{background:var(--green-bg);border:1px solid var(--green);border-radius:var(--radius);padding:12px}.token-reveal code{word-break:break-all;margin-top:6px;font-size:.95em;display:block}kbd{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-bottom-width:2px;border-radius:4px;padding:0 5px;font:500 .72rem ui-monospace,monospace}.shortcuts{margin:0;font-size:.82rem}.review-layout{grid-template-columns:minmax(220px,280px) minmax(0,1fr);grid-template-areas:"list main""list discussion";align-items:start;gap:16px;display:grid}.review-layout>.review-list{grid-area:list}.review-layout>.review-main{grid-area:main}.review-layout>.discussion{grid-area:discussion}@media (width>=1500px){.review-layout{grid-template-columns:minmax(220px,280px) minmax(0,1fr) minmax(260px,320px);grid-template-areas:"list main discussion"}}@media (width<=1100px){.review-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"list""main""discussion"}}.review-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-height:calc(100vh - 160px);position:sticky;top:16px;overflow:auto}@media (width<=1100px){.review-list{max-height:320px;position:static}}.review-list ul{flex-direction:column;gap:2px;margin:0;padding:6px;list-style:none;display:flex}.review-item{min-height:44px;color:var(--text);border-radius:6px;align-items:flex-start;gap:10px;padding:8px 10px;text-decoration:none;display:flex}.review-item:hover{background:var(--surface-2)}.review-item.on{background:color-mix(in srgb, var(--accent) 12%, var(--surface))}.review-item-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.review-item-title{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.review-item-meta{color:var(--muted);font:.75rem ui-monospace,monospace}.review-item-comments{color:var(--muted);align-items:center;gap:3px;font-size:.78rem;display:inline-flex}.dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px;margin-top:7px}.dot.pending{background:var(--amber)}.dot.approved{background:var(--green)}.dot.rejected,.dot.error{background:var(--red)}.review-main{flex-direction:column;gap:12px;min-width:0;display:flex}.review-header{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.review-heading{flex-direction:column;gap:4px;min-width:0;display:flex}.review-heading .muted{font-size:.82rem}.review-heading h3{letter-spacing:-.01em;margin:0;font-size:1.3rem;font-weight:600}.review-heading h3 .muted{font-size:inherit;font-weight:400}.review-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.review-actions button{min-height:36px}.review-actions kbd{margin-left:4px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--surface-2);color:var(--text);border-radius:6px;align-items:center;padding:2px 8px;font:.75rem ui-monospace,monospace;text-decoration:none;display:inline-flex}.chip.changed,.chip.warning,.chip.play{background:var(--amber-bg);color:var(--amber)}.chip.new{background:var(--blue-bg);color:var(--blue)}.chip.approved{background:var(--green-bg);color:var(--green)}.chip.rejected,.chip.error{background:var(--red-bg);color:var(--red)}.chip.pin-chip{background:color-mix(in srgb, var(--accent) 14%, var(--surface));color:var(--accent)}.viewer{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.viewer-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 10px;display:flex}.legend{color:var(--muted);gap:12px;font-size:.8rem;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.swatch{border-radius:2px;width:10px;height:10px}.swatch.changed{background:#e5262b}.swatch.added{background:#2eaa5c}.swatch.removed{background:#e000e0;height:3px}.zoom{align-items:center;gap:4px;margin-left:auto;display:flex}.zoom span{text-align:center;min-width:48px;font:.78rem ui-monospace,monospace}.zoom button{min-width:32px}.viewer-stage{background:var(--checker);height:max(420px,100vh - 300px);padding:16px;overflow:auto}.viewer-canvas{min-width:0;margin:0 auto}.viewer-side{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.viewer-figure{flex-direction:column;gap:8px;margin:0;display:flex}.viewer-figure figcaption{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.72rem;font-weight:600}.viewer-figure img{background:#fff;border-radius:4px;width:100%;display:block;box-shadow:0 1px 3px #0000001f}.blink-caption,.slider-caption{align-items:center;gap:10px;display:flex}.slider-caption{justify-content:space-between}.blink-caption .accent{color:var(--accent)}.blink-caption button{text-transform:none;letter-spacing:0;padding:2px 10px;font-weight:500}.blink{position:relative}.blink .blink-under{position:absolute;inset:0 auto auto 0}.slider{cursor:ew-resize;touch-action:none;-webkit-user-select:none;user-select:none;position:relative}.slider .slider-baseline{position:absolute;inset:0 auto auto 0}.slider-handle{background:var(--accent);pointer-events:none;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.slider-handle:after{content:"";background:var(--surface);border:2px solid var(--accent);border-radius:50%;width:22px;height:22px;margin:-11px 0 0 -11px;position:absolute;top:50%;left:50%}.slider-input{align-items:center;gap:12px;display:flex}.slider-input input{accent-color:var(--accent);flex:1}.pinnable{position:relative}.pinnable.placing{cursor:crosshair}.pin{place-items:center;width:26px;height:26px;text-decoration:none;display:grid;position:absolute;transform:translate(-50%,-100%)}.pin:before{content:"";background:var(--accent);border:2px solid #fff;border-radius:50% 50% 50% 0;position:absolute;inset:0;transform:rotate(-45deg);box-shadow:0 2px 6px #0000004d}.pin span{color:#fff;margin-top:-2px;font-size:.7rem;font-weight:700;position:relative}.pin.draft:before{background:color-mix(in srgb, var(--accent) 60%, #fff);border-style:dashed}.discussion{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex}.discussion header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;padding:12px 14px;display:flex}.discussion h3{margin:0;font-size:1rem}.discussion-empty{margin:0;padding:14px}.discussion ol{flex-direction:column;gap:14px;margin:0;padding:14px;list-style:none;display:flex}@media (width>=1500px){.discussion ol{max-height:calc(100vh - 420px);overflow:auto}}.discussion li{gap:10px;display:flex}.discussion li:target{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.discussion li>div{flex:1;min-width:0}.discussion p{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0}.avatar{background:color-mix(in srgb, var(--accent) 14%, var(--surface));width:28px;height:28px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:.7rem;font-weight:700;display:grid}.comment-meta{flex-wrap:wrap;align-items:baseline;gap:6px;font-size:.85rem;display:flex}.comment-delete{margin-left:auto}.comment-form{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:14px;display:flex}.comment-form label{margin:0;font-size:.85rem}.comment-form textarea{resize:vertical}.comment-form-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.comment-form-actions button{align-items:center;gap:6px;min-height:36px;display:inline-flex}.comment-form-actions button.on{border-color:var(--accent);color:var(--accent)}.comment-form-actions .primary{margin-left:auto}.stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px;display:grid}.stat-value{letter-spacing:-.02em;margin:4px 0;font-size:1.8rem;font-weight:600;line-height:1.2}.stat-note{font-size:.82rem}.segmented a.button{border:0;border-radius:0}.segmented a.button+a.button{border-left:1px solid var(--border)}.segmented a.button.on{background:var(--surface-2);font-weight:600}.bars{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.bars li{grid-template-columns:52px minmax(0,1fr) minmax(140px,auto);align-items:center;gap:12px;font-size:.85rem;display:grid}.bar-label,.bar-value{color:var(--muted);font-family:ui-monospace,monospace}.bar-track{background:var(--surface-2);border-radius:3px;height:12px;overflow:hidden}.bar-fill{background:var(--accent);height:100%;display:block}td.money{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.admin>.card,.admin>.stats,.admin>.admin-pair{margin-bottom:16px}.admin-pair{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:start;gap:16px;display:grid}.maintenance-banner{background:var(--amber-bg);color:var(--amber);border-bottom:1px solid color-mix(in srgb, var(--amber) 30%, transparent);padding:10px 24px;font-size:.9rem}.card.maintenance.on{border-color:var(--amber);background:color-mix(in srgb, var(--amber-bg) 50%, var(--surface))}th.money{text-align:right}.branch{overflow-wrap:anywhere;font-family:ui-monospace,monospace;font-size:.85em}.review-list-more{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px 12px;font-size:.82rem;display:flex}.check-outline{border:2px solid var(--amber);background:color-mix(in srgb, var(--amber) 12%, transparent);pointer-events:auto;border-radius:3px;position:absolute}.check-outline span{background:var(--amber);color:#fff;text-align:center;border-radius:9px;min-width:18px;height:18px;padding:0 4px;font:700 .68rem/18px system-ui,sans-serif;position:absolute;top:-10px;left:-10px}.outline-toggle{margin:0;font-size:.85rem}.check-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.check-list h4{margin:0 0 8px;font-size:.9rem}.check-list ol{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.check-list li{align-items:flex-start;gap:10px;display:flex}.check-list li>div{flex-direction:column;gap:2px;min-width:0;display:flex}.check-list code{color:var(--muted);overflow-wrap:anywhere;font-size:.8rem}.check-number{background:var(--amber);color:#fff;text-align:center;border-radius:10px;flex:none;min-width:20px;height:20px;font:700 .72rem/20px system-ui,sans-serif}.capture-summary{margin-bottom:1rem;padding:0}.capture-summary>summary{cursor:pointer;padding:12px 16px}.capture-summary-body{flex-direction:column;gap:16px;padding:0 16px 16px;display:flex}.capture-summary-heading{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 4px;font-size:12px}.reason-counts{flex-wrap:wrap;gap:8px;display:flex}.reason-count{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text);align-items:baseline;gap:6px;padding:6px 10px;display:inline-flex}.reason-count strong{font-size:1.1em}.changed-files td{vertical-align:top}.changed-files .badge{margin-left:8px}.changed-sources{margin:4px 0 0;padding-left:18px;font-size:.9em}.bar-row{align-items:center;gap:10px;display:flex}.bar-row .bar-track{flex:1}.other-reasons{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.other-reasons li{flex-wrap:wrap;gap:4px 12px;display:flex}.other-reasons li>span{flex:400px}.other-count{min-width:3ch}.why-filter{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;display:flex}.why-chip{align-items:center;gap:6px;display:inline-flex}.why-clear{width:22px;height:22px;color:inherit;border-radius:999px;place-items:center;display:inline-grid}.why-clear:hover{background:var(--surface-2);text-decoration:none}.capture-reason{margin:0 0 8px;font-size:.9em}.capture-reason summary{cursor:pointer}.capture-reason ul{margin:4px 0 0;padding-left:18px}
