Spaces:
Running on Zero
Running on Zero
Download app/static/app.css from RealFalconsAI/DecisionLab: direct link, hf CLI and curl.
- Browser
- Download file 26 kB
-
https://huggingface.co/spaces/RealFalconsAI/DecisionLab/resolve/main/app/static/app.css
- Command line
-
hf download hf://spaces/RealFalconsAI/DecisionLab/app/static/app.css
-
curl -L -o app.css https://huggingface.co/spaces/RealFalconsAI/DecisionLab/resolve/main/app/static/app.css
26 kB
| :root { | |
| --red: #da001b; | |
| --red-deep: #a80015; | |
| --red-wash: #fdecee; | |
| --ink: #1d1f23; | |
| --graphite: #4a4f57; | |
| --graphite-wash: #eceef0; | |
| --muted: #6c7179; | |
| --line: #e4e2e0; | |
| --paper: #ffffff; | |
| --wash: #f6f6f5; | |
| --ok: #1f7a4d; | |
| --n-models: 3; /* set from the server's model list */ | |
| --display: "Futura PT", Futura, "Century Gothic", "Avenir Next", "Segoe UI", system-ui, sans-serif; | |
| --body: "Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif; | |
| --code: "SFMono-Regular", Consolas, "Liberation Mono", monospace; | |
| --radius-s: 4px; | |
| --radius-m: 10px; | |
| } | |
| * { box-sizing: border-box; } | |
| html { scroll-behavior: smooth; scroll-padding-top: 76px; } | |
| body { | |
| margin: 0; background: var(--paper); color: var(--ink); | |
| font: 16px/1.55 var(--body); font-variant-numeric: tabular-nums; | |
| } | |
| a { color: var(--red-deep); } | |
| code { font-family: var(--code); font-size: .88em; background: var(--wash); padding: .1em .35em; border-radius: var(--radius-s); } | |
| :focus-visible { outline: 3px solid var(--red); outline-offset: 2px; } | |
| /* ---------- top bar */ | |
| .topbar { | |
| position: sticky; top: 0; z-index: 10; display: flex; align-items: center; gap: 28px; | |
| padding: 14px clamp(16px, 4vw, 48px); background: rgba(255, 255, 255, .96); | |
| border-bottom: 1px solid var(--line); backdrop-filter: blur(6px); | |
| } | |
| .brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--ink); } | |
| .brand-logo { height: 20px; width: auto; display: block; } | |
| .brand-name { font: 500 18px/1 var(--display); letter-spacing: .02em; padding-left: 14px; border-left: 1px solid var(--line); } | |
| .nav { display: flex; gap: 22px; margin-left: auto; } | |
| .nav a { color: var(--graphite); text-decoration: none; font-size: 15px; } | |
| .nav a:hover { color: var(--red); } | |
| .readiness { font-size: 14px; color: var(--muted); white-space: nowrap; } | |
| .readiness.ready { color: var(--ok); } | |
| /* ---------- hero */ | |
| main { padding: 0 clamp(16px, 4vw, 48px); max-width: 1320px; margin: 0 auto; } | |
| .hero { | |
| display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px; align-items: center; | |
| padding: 72px 0 64px; border-bottom: 1px solid var(--line); | |
| } | |
| .kicker { color: var(--red); font-weight: 600; margin: 0 0 14px; } | |
| .hero h1 { font: 500 clamp(40px, 5.6vw, 72px)/1.02 var(--display); letter-spacing: -.01em; margin: 0 0 22px; } | |
| .lede { font-size: 19px; color: var(--graphite); max-width: 58ch; margin: 0 0 30px; } | |
| .hero-actions { display: flex; gap: 12px; flex-wrap: wrap; } | |
| .versus { display: flex; flex-wrap: wrap; align-items: stretch; row-gap: 10px; } | |
| .versus.many { gap: 10px; } | |
| .versus-side { flex: 1 0 auto; display: flex; flex-direction: column; padding: 24px 16px; border-radius: var(--radius-m); } | |
| .versus-side.side-laya { background: var(--graphite-wash); color: var(--ink); } | |
| .versus-mid { display: grid; place-items: center; padding: 0 8px; font: 500 22px var(--display); color: var(--muted); background: var(--paper); } | |
| .versus-name { font: 500 18px/1.2 var(--display); white-space: nowrap; } | |
| .versus-figure { font: 500 clamp(28px, 3vw, 44px)/1.05 var(--display); margin-top: 16px; white-space: nowrap; } | |
| .versus-unit { font-size: 14px; opacity: .85; } | |
| /* ---------- buttons */ | |
| .btn { | |
| display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 999px; | |
| padding: 11px 22px; font: 600 15px var(--body); text-decoration: none; cursor: pointer; border: 1.5px solid transparent; | |
| } | |
| .btn-primary { background: var(--red); color: #fff; } | |
| .btn-primary:hover { background: var(--red-deep); } | |
| .btn-primary:disabled { background: #d9b7bb; cursor: progress; } | |
| .btn-quiet { border-color: var(--ink); color: var(--ink); background: transparent; } | |
| .btn-quiet:hover { border-color: var(--red); color: var(--red); } | |
| .btn-small { padding: 6px 14px; font-size: 13px; } | |
| /* ---------- sections */ | |
| .section { padding: 64px 0; border-bottom: 1px solid var(--line); } | |
| .section-head { max-width: 760px; margin-bottom: 32px; } | |
| .step { font: 500 15px var(--display); color: var(--red); margin: 0 0 6px; letter-spacing: .03em; } | |
| .section h2 { font: 500 clamp(28px, 3.2vw, 38px)/1.15 var(--display); margin: 0 0 12px; } | |
| .section-note { color: var(--graphite); margin: 0; max-width: 72ch; } | |
| /* ---------- setup */ | |
| .models { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px; } | |
| .model-card { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 24px; background: var(--paper); } | |
| .model-card.side-laya, .sum-card.side-laya { border-top: 4px solid var(--graphite); } | |
| .model-card h3 { font: 500 24px var(--display); margin: 0; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 12px; } | |
| .model-card .repo { color: var(--muted); font-size: 14px; margin: 4px 0 18px; } | |
| .state-tag { font: 600 13px var(--body); padding: 3px 10px; border-radius: 999px; background: var(--wash); color: var(--graphite); } | |
| .state-tag.ready { background: #e6f4ec; color: var(--ok); } | |
| .state-tag.error { background: var(--red-wash); color: var(--red-deep); } | |
| .state-tag.loading::after { content: ""; display: inline-block; width: 7px; height: 7px; margin-left: 7px; border-radius: 50%; background: currentColor; animation: pulse 1.2s infinite ease-in-out; } | |
| @keyframes pulse { 50% { opacity: .2; } } | |
| .facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 20px; margin: 0; } | |
| .facts div { border-top: 1px solid var(--line); padding-top: 10px; } | |
| .facts dt { font-size: 13px; color: var(--muted); } | |
| .facts dd { margin: 2px 0 0; font-weight: 600; font-size: 17px; overflow-wrap: anywhere; } | |
| .model-error { color: var(--red-deep); font-size: 14px; margin: 16px 0 0; overflow-wrap: anywhere; } | |
| .env { color: var(--muted); font-size: 14px; margin: 18px 0 0; } | |
| /* ---------- decision */ | |
| .demo-blurb { margin: 0; font-size: 16px; color: var(--graphite); } | |
| .field { display: block; margin-bottom: 18px; } | |
| .field > span { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; } | |
| .field small { font-weight: 400; color: var(--muted); } | |
| textarea { | |
| width: 100%; resize: vertical; font: 13.5px/1.5 var(--code); color: var(--ink); padding: 12px 14px; | |
| border: 1px solid var(--line); border-radius: var(--radius-s); background: var(--wash); | |
| } | |
| textarea:focus { background: var(--paper); border-color: var(--red); outline: none; } | |
| .controls { display: grid; grid-template-columns: 1fr 1fr auto; gap: 20px; align-items: end; } | |
| .control span { display: block; font-size: 14px; font-weight: 600; margin-bottom: 8px; } | |
| .control output { color: var(--red); } | |
| input[type="range"] { width: 100%; accent-color: var(--red); } | |
| select { width: 100%; font: 14px var(--body); padding: 9px 10px; border: 1px solid var(--line); border-radius: var(--radius-s); background: var(--paper); color: var(--ink); } | |
| .run { min-width: 190px; } | |
| .form-error { color: var(--red-deep); font-weight: 600; margin: 14px 0 0; min-height: 1.2em; } | |
| /* ---------- verdicts */ | |
| .timing { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; border: 1px solid var(--line); border-radius: var(--radius-m); margin-bottom: 28px; overflow: hidden; } | |
| .timing div { padding: 16px 20px; border-right: 1px solid var(--line); } | |
| .timing div:last-child { border-right: 0; } | |
| .timing b { display: block; font: 500 28px/1.1 var(--display); } | |
| .timing span { font-size: 13px; color: var(--muted); } | |
| .empty { color: var(--muted); padding: 36px 0; } | |
| .verdict { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 22px 24px; margin-bottom: 20px; } | |
| .verdict-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; margin-bottom: 16px; } | |
| .verdict-q { font: 500 20px/1.3 var(--display); margin: 0; } | |
| .verdict-meta { font-size: 13px; color: var(--muted); margin: 2px 0 0; } | |
| .agree { align-self: flex-start; font-weight: 600; font-size: 13px; padding: 4px 12px; border-radius: 999px; } | |
| .agree.yes { background: #e6f4ec; color: var(--ok); } | |
| .agree.no { background: var(--red-wash); color: var(--red-deep); } | |
| .agree.part { background: #fff4e0; color: #8a5300; } | |
| .answers { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 16px; margin-bottom: 18px; } | |
| .answer { padding: 12px 16px; border-radius: var(--radius-s); background: var(--wash); border-left: 4px solid var(--graphite); } | |
| .answer .who { font-size: 13px; color: var(--muted); } | |
| .answer .what { font: 500 21px/1.25 var(--display); margin: 2px 0 6px; overflow-wrap: anywhere; } | |
| .answer .how { font-size: 13px; color: var(--graphite); } | |
| .badge { display: inline-block; font-weight: 700; font-size: 12px; padding: 1px 9px; border-radius: 999px; margin: 0 4px; } | |
| .badge.act { background: var(--ink); color: #fff; } | |
| .badge.defer { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); } | |
| .ref { font-size: 13px; } | |
| .ref.hit { color: var(--ok); } | |
| .ref.miss { color: var(--red-deep); } | |
| .answer .err { color: var(--red-deep); font-size: 14px; } | |
| .bars { display: grid; grid-template-columns: minmax(120px, 34%) minmax(0, 1fr); gap: 8px 14px; align-items: center; } | |
| .bar-stack { display: grid; gap: 3px; } | |
| .bar-cell { position: relative; height: 16px; background: var(--wash); border-radius: var(--radius-s); overflow: hidden; } | |
| /* DL1: bars grow with transform (compositor only), never width */ | |
| .bar-cell i { position: absolute; inset: 0; transform-origin: left center; transition: transform .45s ease; background: #b8bcc2; } | |
| .bar-cell.top i { background: var(--graphite); } | |
| .bar-cell span { position: absolute; left: 0; top: 0; line-height: 16px; font-size: 11px; font-weight: 600; padding: 0 6px; color: var(--ink); } | |
| .bar-cell.top span { color: #fff; } | |
| .bar-label { font-size: 13.5px; line-height: 1.25; overflow-wrap: anywhere; } | |
| .bar-label.is-ref { font-weight: 700; } | |
| .bar-label.is-ref::after { content: " (reference)"; font-weight: 400; color: var(--muted); font-size: 12px; } | |
| .raw { margin-top: 8px; } | |
| .raw summary { cursor: pointer; font-weight: 600; } | |
| .raw pre { background: var(--wash); padding: 16px; border-radius: var(--radius-s); overflow: auto; max-height: 420px; font: 12.5px/1.45 var(--code); } | |
| /* ---------- scoreboard */ | |
| .score-actions { display: flex; align-items: center; gap: 18px; margin-bottom: 24px; } | |
| .progress { color: var(--muted); } | |
| .summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px; margin-bottom: 28px; } | |
| .sum-card { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 20px 22px; } | |
| .sum-card h3 { font: 500 22px var(--display); margin: 0 0 12px; } | |
| .sum-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; margin: 0; } | |
| .sum-card dt { font-size: 13px; color: var(--muted); } | |
| .sum-card dd { margin: 0; font: 500 26px/1.15 var(--display); } | |
| .sum-both { grid-column: 1 / -1; color: var(--graphite); margin: 0; } | |
| .table-wrap { overflow-x: auto; } | |
| .score-table { width: 100%; border-collapse: collapse; font-size: 14px; } | |
| .score-table th { text-align: left; font-weight: 600; color: var(--muted); border-bottom: 2px solid var(--ink); padding: 8px 10px; white-space: nowrap; } | |
| .score-table td { border-bottom: 1px solid var(--line); padding: 9px 10px; vertical-align: top; } | |
| .score-table td.hit { color: var(--ok); } | |
| .score-table td.miss { color: var(--red-deep); } | |
| .score-table small { display: block; color: var(--muted); } | |
| /* ---------- notes + footer */ | |
| .footer { display: flex; align-items: center; gap: 14px; padding: 28px clamp(16px, 4vw, 48px); color: var(--muted); font-size: 14px; } | |
| .footer-logo { height: 14px; } | |
| /* ---------- responsive + motion */ | |
| @media (max-width: 1000px) { | |
| .hero { grid-template-columns: 1fr; padding-top: 48px; } | |
| .controls { grid-template-columns: 1fr; } | |
| } | |
| @media (max-width: 720px) { | |
| .nav { display: none; } | |
| .models, .summary, .answers { grid-template-columns: 1fr; } | |
| .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } | |
| .bars { grid-template-columns: 1fr; gap: 4px; } | |
| .bar-stack { margin-bottom: 8px; } | |
| .versus { flex-direction: column; } | |
| .versus-mid { padding: 4px 0; } | |
| .readiness { display: none; } | |
| } | |
| @media (prefers-reduced-motion: reduce) { | |
| html { scroll-behavior: auto; } | |
| .bar-cell i, .aus-bar i { transition: none; } | |
| .state-tag.loading::after { animation: none; } | |
| } | |
| /* ---------- narrow screens: never scroll sideways */ | |
| .hero > *, .workbench > *, .models > * { min-width: 0; } | |
| @media (max-width: 720px) { | |
| .hero h1 { font-size: 34px; } | |
| .lede { font-size: 17px; } | |
| .versus-side { padding: 20px 14px; } | |
| .versus-figure { font-size: 38px; } | |
| .bar-label { font-size: 12px; } | |
| } | |
| /* ---------- per-metric winners + Agentic Use Score */ | |
| :root { --win: #16a34a; --win-wash: #eaf7ee; } | |
| .sum-card dl > div { padding: 6px 8px; border-radius: var(--radius-s); border: 2px solid transparent; } | |
| .sum-card dl > div.win { border-color: var(--win); background: var(--win-wash); } | |
| .sum-card.winner { box-shadow: 0 0 0 3px var(--win); } | |
| .sum-card h3 { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 12px; } | |
| .win-tag { font: 700 12px var(--body); color: #fff; background: var(--win); padding: 3px 10px; border-radius: 999px; } | |
| .sum-card dl { grid-template-columns: repeat(2, minmax(0, 1fr)); } | |
| .aus { grid-column: 1 / -1; border: 1px solid var(--line); border-radius: var(--radius-m); padding: 22px 24px; | |
| display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 40px; } | |
| .aus-head { grid-column: 1 / -1; } | |
| .aus-head h3 { font: 500 24px var(--display); margin: 0 0 4px; } | |
| .aus-head p { margin: 0; color: var(--graphite); max-width: 80ch; } | |
| .aus-rank { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 10px; align-content: start; } | |
| .aus-rank li { display: grid; grid-template-columns: 34px auto minmax(60px, 1fr) 56px; align-items: center; gap: 12px; padding: 10px 12px; | |
| border-radius: var(--radius-s); border: 2px solid transparent; background: var(--wash); } | |
| .aus-rank li.first { border-color: var(--win); background: var(--win-wash); } | |
| .aus-pos { font: 500 26px var(--display); color: var(--muted); } | |
| .aus-rank li.first .aus-pos { color: var(--win); } | |
| .aus-name { font: 500 18px/1.2 var(--display); } | |
| .aus-bar { height: 12px; background: #fff; border-radius: 999px; overflow: hidden; } | |
| .aus-bar i { display: block; height: 100%; background: var(--graphite); transform-origin: left center; transition: transform .45s ease; } | |
| .aus-val { font: 500 24px var(--display); text-align: right; } | |
| .aus-table { width: 100%; border-collapse: collapse; font-size: 14px; align-self: start; margin-top: 8px; } | |
| .aus-table th { text-align: left; color: var(--muted); font-weight: 600; border-bottom: 2px solid var(--ink); padding: 6px 8px; } | |
| .aus-table td { border-bottom: 1px solid var(--line); padding: 7px 8px; } | |
| .aus-table td.win { background: var(--win-wash); color: var(--win); font-weight: 700; box-shadow: inset 0 0 0 2px var(--win); } | |
| .score-table .stakes { color: var(--red-deep); font-weight: 600; } | |
| @media (max-width: 900px) { | |
| .aus { grid-template-columns: 1fr; } | |
| .aus-rank li { grid-template-columns: 30px auto minmax(40px, 1fr) 48px; } | |
| .aus-name { font-size: 16px; } | |
| } | |
| .table-scroll { overflow-x: auto; min-width: 0; } | |
| /* ---------- demo picker: tabs + tiles above side-by-side editors */ | |
| .visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } | |
| .picker { border: 1px solid var(--line); border-radius: var(--radius-m); padding: 16px; margin-bottom: 20px; } | |
| .picker-bar { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; margin-bottom: 14px; } | |
| .tabs { display: inline-flex; background: var(--wash); border-radius: 999px; padding: 4px; gap: 2px; flex-wrap: wrap; } | |
| .tab { border: 0; background: transparent; font: 600 14px var(--body); color: var(--graphite); padding: 8px 16px; border-radius: 999px; cursor: pointer; } | |
| .tab:hover { color: var(--ink); } | |
| .tab[aria-selected="true"] { background: var(--paper); color: var(--red); box-shadow: 0 1px 3px rgba(0, 0, 0, .12); } | |
| .tab-count { font-weight: 500; color: var(--muted); margin-left: 4px; } | |
| .search input { width: min(280px, 100%); font: 14px var(--body); padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); color: var(--ink); } | |
| .search input:focus { border-color: var(--red); outline: none; } | |
| .tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; } | |
| .tile { display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: 0 6px; text-align: left; cursor: pointer; | |
| font: inherit; color: var(--ink); background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-s); padding: 9px 12px; } | |
| .tile:hover { border-color: var(--graphite); } | |
| .tile .n { font: 500 16px var(--display); color: var(--muted); grid-row: span 2; } | |
| .tile .t { font-weight: 600; font-size: 14px; line-height: 1.25; } | |
| .tile .g { font-size: 12px; color: var(--muted); } | |
| .tile[aria-selected="true"] { border-color: var(--red); background: var(--red-wash); box-shadow: inset 3px 0 0 var(--red); } | |
| .tile[aria-selected="true"] .n { color: var(--red); } | |
| .tiles .none { color: var(--muted); padding: 8px 4px; grid-column: 1 / -1; } | |
| .current { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin: 4px 0 16px; } | |
| .current-title { font: 500 24px/1.2 var(--display); margin: 0 0 4px; } | |
| .current-title .num { color: var(--red); margin-right: 10px; } | |
| .current-nav { display: flex; gap: 8px; flex-shrink: 0; } | |
| .editors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } | |
| .editors .field { margin-bottom: 0; display: flex; flex-direction: column; } | |
| .editors textarea { flex: 1; min-height: 300px; } | |
| .controls { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); } | |
| /* ---------- notes */ | |
| .aus-guide { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px 56px; padding: 28px 0 36px; border-bottom: 1px solid var(--line); } | |
| .aus-intro h3, .note h3 { font: 500 22px/1.25 var(--display); margin: 0 0 12px; } | |
| .aus-intro p, .note p { margin: 0 0 12px; color: var(--graphite); line-height: 1.6; } | |
| .aus-intro p:first-of-type { font-size: 17px; color: var(--ink); } | |
| .aus-footnote { font-size: 14px; } | |
| .weights { list-style: none; margin: 0; padding: 0; } | |
| .weights li { display: grid; grid-template-columns: 52px 88px minmax(0, 1fr); gap: 16px; align-items: baseline; padding: 14px 0; border-top: 1px solid var(--line); } | |
| .weights li:first-child { border-top: 0; padding-top: 4px; } | |
| .w-pct { font: 500 22px var(--display); color: var(--red); text-align: right; } | |
| .w-bar { height: 8px; background: var(--wash); border-radius: 999px; overflow: hidden; align-self: center; } | |
| .w-bar i { display: block; height: 100%; background: var(--red); } | |
| .w-text { color: var(--graphite); line-height: 1.55; } | |
| .w-text b { display: block; color: var(--ink); font-weight: 600; margin-bottom: 2px; } | |
| .note-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; padding-top: 32px; } | |
| .note { max-width: 46ch; } | |
| .note p:last-child { margin-bottom: 0; } | |
| @media (max-width: 1000px) { | |
| .aus-guide, .note-grid { grid-template-columns: 1fr; } | |
| .editors { grid-template-columns: 1fr; } | |
| .editors textarea { min-height: 220px; } | |
| .note { max-width: none; } | |
| } | |
| @media (max-width: 720px) { | |
| .picker-bar { flex-direction: column; align-items: stretch; } | |
| .search input { width: 100%; } | |
| .tiles { grid-template-columns: 1fr 1fr; } | |
| .current { flex-direction: column; align-items: flex-start; } | |
| .weights li { grid-template-columns: 48px minmax(0, 1fr); } | |
| .w-bar { display: none; } | |
| } | |
| .btn-quiet:disabled { opacity: .35; cursor: default; border-color: var(--ink); color: var(--ink); } | |
| /* score table: points earned per component, summing to the total */ | |
| .aus-table td b { font-weight: 700; font-size: 15px; } | |
| .aus-table td small { display: block; font-size: 12px; color: var(--muted); font-weight: 400; } | |
| .aus-table td.win small { color: var(--win); } | |
| .aus-table tfoot th, .aus-table tfoot td { border-top: 2px solid var(--ink); border-bottom: 0; padding: 10px 8px; text-align: left; font-weight: 700; } | |
| .aus-table tfoot td b { font: 500 22px var(--display); } | |
| /* ------------------------------------------------------------------ demo groups (families of tabs) */ | |
| .tabs-wrap { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: flex-end; } | |
| .tab-family { display: grid; gap: 4px; } | |
| .family-label { font: 600 11px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding-left: 12px; } | |
| .picker-bar { align-items: flex-end; } | |
| .group-blurb { margin: 0 0 12px; color: var(--graphite); font-size: 14px; min-height: 1.4em; } | |
| .tile .g { color: var(--muted); font-size: 12px; } | |
| .scope { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--graphite); } | |
| .scope select { width: auto; min-width: 260px; } | |
| .group-board { grid-column: 1 / -1; border: 1px solid var(--line); border-radius: var(--radius-m); padding: 18px 22px; } | |
| .group-board h3 { font: 500 20px var(--display); margin: 0 0 4px; } | |
| .group-board td small { display: block; font-size: 12px; color: var(--muted); font-weight: 400; } | |
| @media (max-width: 720px) { | |
| .score-actions { flex-wrap: wrap; } | |
| .scope, .scope select { width: 100%; min-width: 0; } | |
| } | |
| /* ---------- DL1: rendering containment. Off-screen sections skip layout and paint until scrolled to, | |
| and a change inside one section never re-lays out the others. */ | |
| #verdicts, #scoreboard, .notes { content-visibility: auto; contain-intrinsic-size: auto 900px; } | |
| .verdict, .summary, .table-wrap { contain: layout paint; } | |
| /* ---------- model colours. Discovered models take slots c0..c5 in folder order; Laya keeps graphite. | |
| Every model-coloured element reads --mc (strong) and --mc-soft (bar fill). */ | |
| .side-c0 { --mc: #da001b; --mc-soft: #f2a6ae; --mc-ink: #fff; } | |
| .side-c1 { --mc: #0b6f78; --mc-soft: #9fcfd3; --mc-ink: #fff; } | |
| .side-c2 { --mc: #5b3fa8; --mc-soft: #c3b6e6; --mc-ink: #fff; } | |
| .side-c3 { --mc: #9a5200; --mc-soft: #f0c895; --mc-ink: #fff; } | |
| .side-c4 { --mc: #1f5f9e; --mc-soft: #a9c6e6; --mc-ink: #fff; } | |
| .side-c5 { --mc: #4f6f16; --mc-soft: #c3d99a; --mc-ink: #fff; } | |
| .side-c6 { --mc: #a0306b; --mc-soft: #e8b3cf; --mc-ink: #fff; } | |
| .side-c7 { --mc: #2c6e5a; --mc-soft: #a8d5c6; --mc-ink: #fff; } | |
| .side-laya { --mc: var(--graphite); --mc-soft: #b8bcc2; --mc-ink: var(--ink); } | |
| .versus-side[class*="side-c"] { background: var(--mc); color: var(--mc-ink); } | |
| .versus-side.side-laya { background: var(--graphite-wash); color: var(--ink); } | |
| .model-card[class*="side-"], .sum-card[class*="side-"] { border-top: 4px solid var(--mc, var(--graphite)); } | |
| .answer[class*="side-"] { border-left-color: var(--mc, var(--graphite)); } | |
| .timing [class*="side-c"] b { color: var(--mc); } | |
| .bar-cell[class*="side-"] i { background: var(--mc-soft, #b8bcc2); } | |
| .bar-cell[class*="side-"].top i { background: var(--mc, var(--graphite)); } | |
| .aus-rank li[class*="side-"] .aus-bar i { background: var(--mc, var(--graphite)); } | |
| .no-models { border: 1px dashed var(--line); border-radius: var(--radius-m); padding: 18px 22px; color: var(--graphite); } | |
| /* ---------- intro weight bars (class widths: no inline styles under the CSP) */ | |
| .w-bar i.w-100 { width: 100%; } .w-bar i.w-71 { width: 71%; } .w-bar i.w-43 { width: 43%; } .w-bar i.w-29 { width: 29%; } | |
| /* ---------- Responsive: phones, tablets and laptops (1.10.2). Checked with a device audit at 320-1440 px. */ | |
| /* Text never goes below 12 px. */ | |
| .bar-cell span { font-size: 12px; } | |
| .family-label { font-size: 12px; } | |
| small { font-size: max(12px, .85em); } | |
| /* Grid children may shrink: a wide table scrolls inside its own box instead of widening the page. */ | |
| .summary > *, .models > *, .answers > *, .verdict > *, .aus > * { min-width: 0; } | |
| /* Every control is at least 24 px in both directions (WCAG 2.5.8), on any device. */ | |
| .brand { min-height: 32px; } | |
| input[type="range"] { height: 28px; } | |
| .repo a { display: inline-block; padding: 4px 0; } | |
| /* Tablets: brand, section links and the readiness badge no longer fit on one line; the setup cards show status. */ | |
| @media (max-width: 960px) { | |
| .readiness { display: none; } | |
| .nav { gap: 16px; } | |
| } | |
| /* Small phones: a long model name wraps at spaces, never inside a word. */ | |
| @media (max-width: 520px) { | |
| .versus-name { white-space: normal; } | |
| } | |
| /* Touch screens: 44 px tap targets, and 16 px form text so iPhones do not zoom in when a field is tapped. */ | |
| @media (pointer: coarse) { | |
| .btn, .tab, .tile, select, .search input, summary, .nav a, .brand { min-height: 44px; } | |
| .nav a, .brand { display: inline-flex; align-items: center; } | |
| summary { padding: 10px 0; box-sizing: border-box; } | |
| input, select, textarea { font-size: 16px; } | |
| input[type="range"] { height: 44px; } | |
| .repo a { padding: 10px 0; } | |
| } | |
| /* Section links in the header: at least 24 px tall with a mouse too. */ | |
| .nav a { padding: 4px 0; } | |
| /* Small phones: in the score ranking the name gets its own line and the bar runs underneath it. */ | |
| @media (max-width: 520px) { | |
| .aus-rank li { grid-template-columns: 30px minmax(0, 1fr) 48px; row-gap: 6px; } | |
| .aus-rank li .aus-name { grid-column: 2; grid-row: 1; } | |
| .aus-rank li .aus-val { grid-column: 3; grid-row: 1; } | |
| .aus-rank li .aus-bar { grid-column: 2 / 4; grid-row: 2; } | |
| } | |
| @media (pointer: coarse) { | |
| .repo a { padding: 12px 0; } | |
| .search input { font-size: 16px; } | |
| } | |
| /* ---------- runs with no reference answers: no score, a plain note instead */ | |
| .unscored-note { grid-column: 1 / -1; border: 1px dashed var(--line); border-radius: var(--radius-m); padding: 18px 22px; } | |
| .unscored-note h3 { font: 500 22px var(--display); margin: 0 0 6px; } | |
| .unscored-note p { margin: 0; color: var(--graphite); max-width: 70ch; } | |