/* ============================================================ RingBRP — visual system v2 Corrected after design critique. The governing principle: USE THE COVER FOR IDENTITY, THE INTERIOR AND THE ORIGINAL CHARACTER SHEET FOR INFORMATION ARCHITECTURE. v1 used the cover for everything, which produced a branding exercise rather than a working tool. Sources, sampled not guessed: · Cover — ultramarine #18268d, lemon yellow (hue 57°), white. · Interior — Swiss grid; heavy rule above a section head and a thin rule below; Helvetica body; multi-column category boxes. · Explorer sheet — characteristics paired with their derived rolls on one line; skills in columnar category boxes; the weapons table always visible at the foot, never hidden. Type — four registers, two families, one webfont: · Display Michroma, ONLY at the 18px name and 11px section heads. · Utility Helvetica Bold 10px caps — every small label. · Body Helvetica 13px/1.3. · Data Helvetica Bold with tabular figures. Mono is reserved for band strings and dice output. Colour roles are separated. YELLOW MEANS ROLLABLE OR ACTIVE. Passive numbers are white. That distinction is the whole point, and v1 lost it by making every value yellow. ============================================================ */ @font-face { font-family: "Michroma"; src: url("../fonts/Michroma-Regular.woff2") format("woff2"); font-weight: 400; font-display: swap; } .ringbrp-sheet, .ringbrp-chat, .ringbrp-window { /* sampled from the 1984 Explorer Book cover */ --rb-void: #0c125b; --rb-deep: #101a6e; --rb-blue: #18268d; --rb-panel: #16215f; /* structure — lifted so non-text contrast is actually visible */ --rb-line: #6674d8; /* 3.1:1 on the page ground */ --rb-hairline: #4d5ac0; /* 2.2:1 — decorative separators only */ --rb-yellow: #f2ea72; --rb-yellow-dim: rgba(242, 234, 114, 0.45); --rb-white: #ecefee; --rb-muted: #a8b2e3; /* 5.96:1 on the lightest ground */ --rb-danger: #ff7a5c; --rb-good: #86e5b0; --rb-display: "Michroma", "Eurostile", sans-serif; --rb-body: "Helvetica Neue", Helvetica, Arial, sans-serif; --rb-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace; } /* ============================================================ Frame — flat spot colour, no gradients ============================================================ */ .ringbrp-sheet { background: var(--rb-deep); color: var(--rb-white); font-family: var(--rb-body); font-size: 13px; line-height: 1.3; height: 100%; display: flex; flex-direction: column; box-shadow: inset 0 0 0 1px var(--rb-yellow-dim); } .ringbrp-sheet input, .ringbrp-sheet select, .ringbrp-sheet textarea { background: var(--rb-void); border: 1px solid var(--rb-line); color: var(--rb-white); border-radius: 0; padding: 2px 5px; font-family: var(--rb-body); font-size: 13px; } .ringbrp-sheet input:focus, .ringbrp-sheet select:focus, .ringbrp-sheet textarea:focus { border-color: var(--rb-yellow); box-shadow: none; outline: 1px solid var(--rb-yellow); } .ringbrp-sheet a { color: var(--rb-white); cursor: pointer; text-decoration: none; } .ringbrp-sheet a[data-action^='roll'], .ringbrp-sheet .rb-char-x5, .ringbrp-sheet .rb-skill-name, .ringbrp-sheet .rb-add { color: var(--rb-yellow); } .ringbrp-sheet a:hover { color: #fff; text-shadow: none; } .ringbrp-sheet ::-webkit-scrollbar { width: 10px; } .ringbrp-sheet ::-webkit-scrollbar-thumb { background: var(--rb-line); } .ringbrp-sheet ::-webkit-scrollbar-track { background: var(--rb-void); } /* --- the utility register: every small label --- */ .rb-origin label, .rb-ages label, .rb-vital-label, .rb-dl, .rb-table th, .rb-block, .rb-track-label, .rb-type, .rb-grid2 label, .rb-strip-label { font-family: var(--rb-body); font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rb-muted); } /* --- data: tabular figures in the body face, not mono --- */ .rb-char input, .rb-hp input, .rb-big, .rb-armour input, .rb-skill-val, .rb-dv, .rb-track-val, .rb-standing, .rb-char-x5 { font-family: var(--rb-body); font-variant-numeric: tabular-nums; font-weight: 700; } /* ============================================================ Header — identity ============================================================ */ .rb-header { display: flex; gap: 14px; align-items: flex-start; padding: 12px 14px 10px; background: transparent; border-bottom: 3px solid var(--rb-yellow); } .rb-portrait { width: 84px; height: 84px; flex: 0 0 84px; object-fit: cover; border: 1px solid var(--rb-line); background: var(--rb-void); } .rb-headline { flex: 1 1 auto; display: flex; flex-direction: column; gap: 6px; min-width: 0; } .rb-name { font-family: var(--rb-display); font-size: 18px; letter-spacing: .02em; color: var(--rb-white); background: transparent; border: none; border-bottom: 1px solid var(--rb-hairline); padding: 0 0 4px; } .rb-name:focus { border-bottom-color: var(--rb-yellow); outline: none; } .rb-role { font-size: 12px; color: var(--rb-muted); background: transparent; border: none; } .rb-origin, .rb-ages { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; } .rb-origin label, .rb-ages label { display: flex; align-items: center; gap: 5px; } .rb-origin input, .rb-ages input { width: 92px; } .rb-origin select { width: 116px; } .rb-origin input, .rb-ages input, .rb-origin select { font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--rb-white); font-size: 12px; } .rb-ages input { width: 54px; } .rb-style-fixed { font-family: var(--rb-body); font-size: 10px; font-weight: 700; letter-spacing: .06em; color: var(--rb-void); background: var(--rb-yellow); padding: 3px 8px; text-transform: uppercase; } /* --- vitals: HP reads as one expression --- */ .rb-vitals { display: flex; gap: 8px; align-items: stretch; } .rb-vitals > div { min-width: 78px; padding: 6px 10px; text-align: center; background: var(--rb-void); border: 1px solid var(--rb-line); display: flex; flex-direction: column; justify-content: center; gap: 2px; } .rb-vitals > .rb-hp { display: grid; grid-template-columns: auto auto auto; grid-template-rows: auto auto; align-items: baseline; justify-content: center; column-gap: 3px; } .rb-hp .rb-vital-label { grid-column: 1 / -1; } .rb-hp input { width: 42px; text-align: right; font-size: 24px; background: transparent; border: none; padding: 0; color: var(--rb-white); } .rb-hp input:focus { outline: none; background: var(--rb-blue); } .rb-slash { color: var(--rb-muted); font-size: 16px; } .rb-max { font-size: 15px; color: var(--rb-muted); font-weight: 700; } .rb-big { font-size: 24px; color: var(--rb-white); } .rb-armour input { width: 44px; text-align: center; font-size: 24px; background: transparent; border: none; padding: 0; color: var(--rb-white); } .rb-wounded { border-color: var(--rb-danger) !important; } .rb-wound-flag { font-family: var(--rb-body); font-size: 10px; font-weight: 700; color: var(--rb-danger); text-transform: uppercase; letter-spacing: .04em; } /* ============================================================ Characteristics — the roll target is the dominant number ============================================================ */ .rb-characteristics { display: grid; grid-template-columns: repeat(8, 1fr); gap: 1px; padding: 0; background: var(--rb-hairline); border-top: 2px solid var(--rb-yellow); border-bottom: 2px solid var(--rb-yellow); } .rb-char { text-align: center; background: var(--rb-deep); padding: 9px 2px 7px; } .rb-char-label { display: block; width: 100%; font-family: var(--rb-body); font-size: 11px; font-weight: 700; letter-spacing: .12em; color: var(--rb-line); cursor: pointer; } .rb-char:hover .rb-char-label { color: var(--rb-white); } /* The characteristic itself. It was set smaller than the skill ratings beneath it, so the eight numbers the whole system derives from read as a caption. */ .rb-char input { width: 100%; text-align: center; font-family: var(--rb-display); font-size: 26px; font-weight: 700; line-height: 1.05; letter-spacing: -.01em; background: transparent; border: none; padding: 2px 0 3px; color: var(--rb-white); } .rb-char input:focus { outline: 1px solid var(--rb-yellow); color: var(--rb-white); } /* the ×5 chip — the actual roll target, so it keeps parity with the raw score */ .rb-char-x5 { display: block; min-height: 30px; line-height: 30px; font-size: 22px; color: var(--rb-yellow); cursor: pointer; border-top: 1px solid var(--rb-hairline); } .rb-char-x5::before { content: "×5 "; font-size: 10px; font-weight: 700; color: var(--rb-muted); letter-spacing: .04em; } .rb-char-x5:hover { background: var(--rb-yellow); color: var(--rb-void); } .rb-char-x5:hover::before { color: var(--rb-void); } /* ============================================================ Derived strip ============================================================ */ .rb-derived { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; padding: 7px 14px; border-bottom: 1px solid var(--rb-hairline); } .rb-dl { margin-right: 5px; } .rb-dv { font-size: 13px; color: var(--rb-white); } .rb-warn { color: var(--rb-danger); } .rb-rolls { margin-left: auto; display: flex; gap: 6px; } .rb-rolls button { font-family: var(--rb-body); font-size: 11px; font-weight: 700; letter-spacing: .04em; background: transparent; border: 1px solid var(--rb-yellow-dim); color: var(--rb-yellow); padding: 4px 10px; border-radius: 0; width: auto; line-height: 1.3; cursor: pointer; text-transform: uppercase; } .rb-rolls button:hover { background: var(--rb-yellow); border-color: var(--rb-yellow); color: var(--rb-void); } /* ============================================================ Persistent weapon strip — the original sheet never hides weapons ============================================================ */ .rb-weaponstrip { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 6px 14px; border-bottom: 1px solid var(--rb-hairline); background: var(--rb-panel); } .rb-strip-label { flex: 0 0 auto; } .rb-strip-weapon { display: flex; align-items: baseline; gap: 7px; font-size: 12px; } .rb-strip-weapon a { font-weight: 700; } .rb-strip-dmg { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--rb-white); } .rb-strip-range, .rb-strip-ammo { font-size: 11px; color: var(--rb-muted); font-variant-numeric: tabular-nums; } .rb-strip-empty { font-size: 12px; color: var(--rb-muted); font-style: italic; } /* ============================================================ Tabs — solid active state, not a Material underline ============================================================ */ .rb-tabs { display: flex; padding: 0 14px; background: var(--rb-void); border-bottom: 1px solid var(--rb-line); } .rb-tabs .item { font-family: var(--rb-body); font-weight: 700; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--rb-muted); padding: 9px 14px 8px; } .rb-tabs .item:hover { color: var(--rb-white); } .rb-tabs .item.active { color: var(--rb-void); background: var(--rb-yellow); } .rb-body { flex: 1 1 auto; overflow-y: auto; padding: 12px 14px 16px; } /* ============================================================ Section heads — the book's rule treatment ============================================================ */ .rb-cat { margin-bottom: 14px; break-inside: avoid; } .rb-cat-head { display: flex; align-items: baseline; gap: 9px; margin: 0 0 4px; font-family: var(--rb-display); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--rb-white); border: none; border-top: 2px solid var(--rb-yellow); border-bottom: 1px solid var(--rb-hairline); padding: 5px 0 4px; } .rb-catbonus { font-family: var(--rb-body); font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--rb-yellow); background: transparent; border: 1px solid var(--rb-yellow-dim); padding: 0 5px; } .rb-add { margin-left: auto; font-size: 12px; } .rb-add-wide { display: block; text-align: center; padding: 6px; margin-top: 8px; border: 1px dashed var(--rb-line); font-family: var(--rb-body); font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; } /* ============================================================ Skills — two columns, the original sheet's search pattern ============================================================ */ .rb-body .tab[data-tab="skills"].active { display: block; column-count: 2; column-gap: 22px; column-fill: balance; } @media (max-width: 720px) { .rb-body .tab[data-tab="skills"].active { column-count: 1; } } .rb-skills { list-style: none; margin: 0; padding: 0; } .rb-skill { display: grid; grid-template-columns: 13px 20px minmax(0,1fr) 44px 104px 15px 15px; gap: 5px; align-items: center; min-height: 26px; padding: 0; border-bottom: 1px solid var(--rb-hairline); } .rb-skill:hover { background: var(--rb-blue); } .rb-tick { width: 12px; height: 12px; border: 1px solid var(--rb-muted); display: inline-block; } .rb-tick.on { background: var(--rb-yellow); border-color: var(--rb-yellow); } .rb-skill-name { font-size: 13px; color: var(--rb-white); } .rb-skill-name:hover { color: var(--rb-yellow); } /* passive datum, therefore white. The NAME carries the roll affordance. */ .rb-skill-val { text-align: right; font-size: 13px; color: var(--rb-white); } .rb-skill-bands { font-family: var(--rb-mono); font-size: 9.5px; color: var(--rb-muted); text-align: right; letter-spacing: -.03em; white-space: nowrap; overflow: hidden; } /* roll affordance: underline whatever rolls */ .ringbrp-sheet a[data-action^="roll"] { text-decoration: underline; text-decoration-color: var(--rb-yellow-dim); text-underline-offset: 2px; } .rb-char-x5, .rb-char-label { text-decoration: none !important; } /* ============================================================ Tables & lists ============================================================ */ .rb-table { width: 100%; border-collapse: collapse; font-size: 13px; margin-bottom: 12px; } .rb-table th { text-align: left; border-bottom: 1px solid var(--rb-line); padding: 4px 5px; } .rb-table td { padding: 5px; border-bottom: 1px solid var(--rb-hairline); } .rb-table tbody tr:hover { background: var(--rb-blue); } .rb-actions { text-align: right; white-space: nowrap; } .rb-list { list-style: none; margin: 0 0 12px; padding: 0; font-size: 13px; } .rb-list li { display: flex; align-items: center; gap: 10px; min-height: 26px; border-bottom: 1px solid var(--rb-hairline); } .rb-strong { font-weight: 700; color: var(--rb-white); } .rb-dim { color: var(--rb-muted); font-size: 12px; } .rb-empty { color: var(--rb-muted); font-style: italic; text-align: center; padding: 26px; } .rb-equip { color: var(--rb-muted); } .rb-equip.on { color: var(--rb-yellow); } .rb-block { margin: 12px 0 4px; border-top: 1px solid var(--rb-hairline); padding-top: 7px; } .rb-wounds li { border-left: 3px solid var(--rb-danger); padding-left: 8px; } /* ============================================================ Expedition ============================================================ */ .rb-tracks { display: flex; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--rb-hairline); } .rb-track { flex: 1; display: flex; align-items: center; justify-content: center; gap: 9px; background: var(--rb-void); border: 1px solid var(--rb-line); padding: 9px; } .rb-track-val { font-size: 26px; color: var(--rb-white); min-width: 32px; text-align: center; } .rb-track-max { font-size: 12px; color: var(--rb-muted); font-weight: 700; } .rb-tracks.rb-crisis .rb-track-val { color: var(--rb-danger); } .rb-crisis-note { color: var(--rb-danger); text-align: center; font-size: 13px; margin: 7px 14px; } .rb-bigbutton { width: 100%; padding: 10px; margin-bottom: 12px; font-family: var(--rb-body); font-weight: 700; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; background: transparent; border: 2px solid var(--rb-yellow); color: var(--rb-yellow); border-radius: 0; cursor: pointer; } .rb-bigbutton:hover { background: var(--rb-yellow); color: var(--rb-void); } .rb-table tr.rb-done td { opacity: .45; } .rb-table tr.rb-current td { box-shadow: inset 3px 0 0 var(--rb-yellow); } .rb-standing { font-size: 13px; color: var(--rb-white); } .rb-objective { font-size: 12px; color: var(--rb-muted); font-style: italic; width: 100%; } /* ============================================================ Item sheet ============================================================ */ .rb-item-header { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border-bottom: 3px solid var(--rb-yellow); background: transparent; } .rb-item-img { width: 52px; height: 52px; border: 1px solid var(--rb-line); } .rb-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; } .rb-grid2 label { display: flex; flex-direction: column; gap: 3px; } .rb-grid2 label input, .rb-grid2 label select { font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--rb-white); } .rb-check { flex-direction: row !important; align-items: center; gap: 7px; } .rb-hint { font-size: 12px; color: var(--rb-muted); margin-top: 10px; } .rb-fn { border: 1px solid var(--rb-line); padding: 8px 10px; margin-bottom: 10px; } .rb-fn legend { font-family: var(--rb-body); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rb-yellow); padding: 0 5px; } /* ============================================================ Chat — flat card ============================================================ */ .ringbrp-chat { background: var(--rb-void); border: 1px solid var(--rb-line); box-shadow: inset 0 0 0 1px var(--rb-yellow-dim); padding: 10px 12px; color: var(--rb-white); font-family: var(--rb-body); } .rb-chat-title { font-family: var(--rb-display); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--rb-yellow); margin: 0 0 7px; border: none; border-bottom: 1px solid var(--rb-hairline); padding-bottom: 6px; } .rb-chat-line { font-size: 12px; color: var(--rb-muted); font-variant-numeric: tabular-nums; display: flex; gap: 7px; align-items: baseline; flex-wrap: wrap; } .rb-chat-eff { color: var(--rb-white); font-weight: 700; } .rb-chat-flavour { list-style: none; margin: 7px 0 0; padding: 0; font-size: 12px; color: var(--rb-muted); } .rb-chat-flavour li:before { content: "› "; color: var(--rb-yellow); } .rb-chat-result { display: flex; align-items: baseline; gap: 12px; margin-top: 8px; } .rb-chat-roll { font-size: 32px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; } .rb-chat-level { font-family: var(--rb-display); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; } .rb-chat-bands { display: flex; gap: 14px; font-family: var(--rb-mono); font-size: 10px; color: var(--rb-muted); margin-top: 7px; border-top: 1px solid var(--rb-hairline); padding-top: 6px; } .rb-roll.rb-critical .rb-chat-level, .rb-roll.rb-critical .rb-chat-roll { color: var(--rb-yellow); } .rb-roll.rb-special .rb-chat-level, .rb-roll.rb-special .rb-chat-roll { color: var(--rb-good); } .rb-roll.rb-success .rb-chat-level { color: var(--rb-good); } .rb-roll.rb-failure .rb-chat-level { color: var(--rb-muted); } .rb-roll.rb-fumble .rb-chat-level, .rb-roll.rb-fumble .rb-chat-roll { color: var(--rb-danger); } .rb-wound-title { font-family: var(--rb-display); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--rb-danger); margin: 8px 0 4px; border: none; } .rb-wound-text { font-size: 13px; margin: 0 0 5px; } .rb-wound-loss { font-size: 13px; color: var(--rb-yellow); margin: 0 0 5px; font-weight: 700; } .rb-wound-stamina { font-size: 11px; color: var(--rb-muted); font-style: italic; margin: 0; } .rb-dialog .notes { font-size: 12px; color: var(--rb-muted); } /* ============================================================ ITEM SHEET — the statline, after the 1984 weapons table ============================================================ */ .rb-item-ident { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1 1 auto; } .rb-item .rb-name { font-size: 18px; } .rb-statline { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); background: var(--rb-void); border-top: 2px solid var(--rb-yellow); border-bottom: 1px solid var(--rb-line); } .rb-stat { min-width: 0; padding: 6px 10px; border-right: 1px solid var(--rb-line); display: flex; flex-direction: column; gap: 2px; } .rb-stat:last-child { border-right: none; } .rb-stat-wide { grid-column: span 3; } /* the actionable datum dominates — the mistake corrected on the character sheet */ .rb-stat-primary { grid-column: span 2; } .rb-stat-primary .rb-stat-value { font-size: 22px; line-height: 1.05; color: var(--rb-yellow); } .rb-stat-label { font-family: var(--rb-body); font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rb-muted); } .rb-stat-value { font-family: var(--rb-body); font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--rb-white); } .rb-stat-big { font-size: 20px; line-height: 1.1; color: var(--rb-white); } .rb-stat-of { font-size: 13px; color: var(--rb-muted); } .rb-stat-mono { font-family: var(--rb-mono); font-size: 12px; font-weight: 400; color: var(--rb-muted); } .rb-stat-question { font-size: 13px; font-weight: 400; font-style: italic; color: var(--rb-white); } .rb-stat-roll { color: var(--rb-yellow); cursor: pointer; text-decoration: underline; text-decoration-color: var(--rb-yellow-dim); text-underline-offset: 3px; } .rb-stat-roll:hover { color: #fff; } .rb-statline-locked { box-shadow: inset 3px 0 0 var(--rb-danger); } .rb-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px 12px; } .rb-grid3 label { display: flex; flex-direction: column; gap: 3px; font-family: var(--rb-body); font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rb-muted); } .rb-grid3 label input, .rb-grid3 label select { font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--rb-white); } .rb-wide { width: 100%; } .rb-hint-warn { color: var(--rb-danger); } .rb-fnbody { margin-bottom: 12px; } .rb-fn-effect { font-size: 12px; color: var(--rb-muted); margin: 0 0 8px; border-left: 2px solid var(--rb-line); padding-left: 9px; } .rb-locked-chip { font-family: var(--rb-body); font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rb-void); background: var(--rb-danger); padding: 1px 6px; } .rb-tags { display: flex; flex-wrap: wrap; gap: 5px; margin: 0; } .rb-tag { font-family: var(--rb-body); font-size: 11px; font-weight: 700; color: var(--rb-white); border: 1px solid var(--rb-line); padding: 1px 6px; } .rb-taboo { color: var(--rb-danger); font-size: 12px; } .rb-desire { color: var(--rb-good); font-size: 12px; } .rb-offerform { color: var(--rb-white); font-size: 12px; } .rb-standing-chip { font-family: var(--rb-body); font-size: 11px; font-weight: 700; color: var(--rb-void); background: var(--rb-yellow); padding: 0 6px; min-width: 26px; text-align: center; } /* --- research steps --- */ .rb-steps { list-style: none; margin: 0 0 12px; padding: 0; } .rb-step { display: grid; grid-template-columns: 26px 1fr auto; gap: 9px; align-items: baseline; padding: 7px 0; border-bottom: 1px solid var(--rb-hairline); } .rb-step-n { font-family: var(--rb-body); font-size: 12px; font-weight: 700; text-align: center; color: var(--rb-muted); border: 1px solid var(--rb-line); line-height: 20px; } .rb-step-current { box-shadow: inset 3px 0 0 var(--rb-yellow); padding-left: 8px; } .rb-step-current .rb-step-n { color: var(--rb-void); background: var(--rb-yellow); border-color: var(--rb-yellow); } .rb-step-done { opacity: .5; } .rb-step-body { display: flex; flex-direction: column; gap: 2px; } .rb-step-type { font-family: var(--rb-body); font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rb-white); } .rb-step-state { font-size: 11px; color: var(--rb-muted); text-transform: uppercase; letter-spacing: .04em; } .rb-steps-compact .rb-step { grid-template-columns: 22px auto 1fr; padding: 4px 0; } /* ============================================================ EXPEDITION — tracks, next leg, standings ============================================================ */ .rb-track { flex-direction: column; gap: 3px; padding: 9px 8px; } .rb-track-row { display: flex; align-items: center; justify-content: center; gap: 10px; } .rb-track-btn { font-family: var(--rb-body); font-size: 16px; font-weight: 700; line-height: 1; width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--rb-line); color: var(--rb-muted); } .rb-track-btn:hover { background: var(--rb-yellow); border-color: var(--rb-yellow); color: var(--rb-void); } .rb-track-val { font-size: 30px; line-height: 1; } .rb-track-max { font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rb-muted); } .rb-track-pips { display: none; } .rb-track-low .rb-track-val { color: var(--rb-white); } .rb-track-low { border-color: var(--rb-yellow); } .rb-track-crisis { border-color: var(--rb-danger); } .rb-track-crisis .rb-track-val { color: var(--rb-danger); } .rb-track-crisis .rb-pip.on { background: var(--rb-danger); } .rb-progress { font-size: 11px; color: var(--rb-muted); text-transform: uppercase; letter-spacing: .04em; font-weight: 700; display: flex; gap: 5px; align-items: center; } .rb-progress strong { color: var(--rb-white); font-size: 13px; } .rb-nextleg { border: 1px solid var(--rb-yellow-dim); background: var(--rb-void); padding: 12px; margin-bottom: 16px; } .rb-nextleg-head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 8px; } .rb-nextleg-n { font-family: var(--rb-body); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rb-void); background: var(--rb-yellow); padding: 2px 7px; } .rb-nextleg-terrain { font-size: 14px; font-weight: 700; color: var(--rb-white); } .rb-unexplored { margin-left: auto; font-family: var(--rb-body); font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rb-white); border: 1px solid var(--rb-line); padding: 1px 6px; } .rb-nextleg-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 6px 14px; margin-bottom: 10px; } .rb-rolltarget { display: flex; align-items: baseline; gap: 9px; border-top: 1px solid var(--rb-line); border-bottom: 1px solid var(--rb-line); padding: 7px 0; margin-bottom: 10px; } .rb-rolltarget-label { font-family: var(--rb-body); font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rb-muted); } .rb-rolltarget-val { font-family: var(--rb-body); font-size: 26px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--rb-yellow); line-height: 1; } .rb-rolltarget-note { font-size: 11px; color: var(--rb-muted); margin-left: auto; } .rb-bigbutton[disabled] { border-color: var(--rb-line); color: var(--rb-muted); cursor: not-allowed; opacity: .55; } .rb-bigbutton[disabled]:hover { background: transparent; color: var(--rb-muted); } .rb-nextleg-stats > span { display: flex; align-items: baseline; gap: 5px; } .rb-nextleg-encounter { font-size: 12px; color: var(--rb-danger); margin: 0 0 10px; border-left: 3px solid var(--rb-danger); padding-left: 9px; } .rb-nextleg .rb-bigbutton { margin-bottom: 0; } .rb-itinerary td { font-size: 12px; } .rb-leg-n { font-weight: 700; color: var(--rb-muted); width: 24px; } .rb-leg-event { font-size: 11px; color: var(--rb-danger); } .rb-yes { color: var(--rb-good); } .rb-no { color: var(--rb-muted); } .rb-project, .rb-group { border: 1px solid var(--rb-hairline); padding: 10px 12px; margin-bottom: 12px; } .rb-project-head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 5px; } .rb-project-status { margin-left: auto; font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--rb-muted); } .rb-project-q { font-size: 12px; font-style: italic; color: var(--rb-muted); margin: 0 0 8px; } .rb-disc-state { width: 10px; height: 10px; border: 1px solid var(--rb-muted); display: inline-block; flex: 0 0 10px; } .rb-disc-state.on { background: var(--rb-good); border-color: var(--rb-good); } .rb-standings li { flex-wrap: wrap; } .rb-standing-scale { display: flex; gap: 2px; margin-left: auto; } .rb-scale-cell { font-family: var(--rb-body); font-size: 10px; font-weight: 700; width: 24px; text-align: center; line-height: 18px; border: 1px solid var(--rb-hairline); color: var(--rb-muted); } .rb-scale-cell.on { color: var(--rb-void); } .rb-scale-good.on { background: var(--rb-yellow); border-color: var(--rb-yellow); } .rb-scale-bad.on { background: var(--rb-danger); border-color: var(--rb-danger); } /* standing as a signed value plus its word, not a seven-box rating widget */ .rb-standing-value { font-family: var(--rb-body); font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--rb-white); min-width: 30px; text-align: right; } .rb-standing-good { color: var(--rb-white); } .rb-standing-bad { color: var(--rb-danger); } .rb-standing-scale { display: none; } .rb-stat-small { font-size: 12px; font-weight: 400; color: var(--rb-muted); } /* ---- hit locations ---- */ .rb-species-select { width: 130px; font-size: 12px; margin-left: 4px; } .rb-loctable td { font-size: 12px; } .rb-mono-cell { font-family: var(--rb-mono); font-size: 11px; color: var(--rb-muted); text-align: right; } /* was display:flex on a