:root{--primary: #5b53d6;--primary-dark: #443cb8;--surface: #ffffff;--surface-muted: #f5f5fb;--border: #e2e1f2;--border-dark: #c6c4e6;--text-main: #16162a;--text-muted: #5e5d7d;--shadow-soft: 0 2px 12px rgba(22,22,42,0.07);--rpl-void: #0b0d1c;--rpl-void-2: #131730;--rpl-line: rgba(148,163,220,0.18);--rpl-ink: #e8eaf8;--rpl-ink-dim: #9aa0c8;}
.rpl-shell{display: grid;grid-template-columns: 1fr;gap: 1.25rem;margin-bottom: 1.5rem;}
@media (min-width: 992px){.rpl-shell{grid-template-columns: 330px minmax(0, 1fr);align-items: start;}}
.rpl-bench{background: var(--surface);border: 1px solid var(--border);border-radius: 1rem;padding: 1.25rem;box-shadow: var(--shadow-soft);}
@media (min-width: 992px){.rpl-bench{position: sticky;top: 1rem;}}
.rpl-form{display: flex;flex-direction: column;gap: 1rem;}
.rpl-field{display: flex;flex-direction: column;gap: 0.35rem;min-width: 0;}
.rpl-row{display: grid;grid-template-columns: 1fr 1fr;gap: 0.75rem;}
.rpl-label{font-size: 0.8125rem;font-weight: 700;color: var(--text-main);margin: 0;}
.rpl-select,.rpl-input{width: 100%;border: 1px solid var(--border-dark);border-radius: 0.6rem;padding: 0.55rem 0.7rem;font-size: 0.9375rem;color: var(--text-main);background: var(--surface);}
.rpl-select:focus,.rpl-input:focus{outline: 2px solid var(--primary);outline-offset: 1px;border-color: var(--primary);}
.rpl-hint{font-size: 0.75rem;color: var(--text-muted);margin: 0;line-height: 1.45;}
.rpl-check{display: flex;align-items: flex-start;gap: 0.5rem;font-size: 0.8125rem;color: var(--text-main);font-weight: 600;line-height: 1.4;margin: 0;cursor: pointer;}
.rpl-check input{margin-top: 0.15rem;accent-color: var(--primary);}
.rpl-actions{display: flex;flex-direction: column;gap: 0.5rem;}
.rpl-btn{border: 1px solid transparent;border-radius: 0.6rem;padding: 0.7rem 1rem;font-size: 0.9375rem;font-weight: 700;cursor: pointer;transition: background 0.15s ease, color 0.15s ease;}
.rpl-btn-primary{background: var(--primary);color: #ffffff;}
.rpl-btn-primary:hover{background: var(--primary-dark);}
.rpl-btn-ghost{background: var(--surface);color: var(--text-muted);border-color: var(--border-dark);}
.rpl-btn-ghost:hover{color: var(--primary);border-color: var(--primary);}
.rpl-btn-row{display: grid;grid-template-columns: 1fr 1fr;gap: 0.5rem;}
.rpl-deck{background: var(--rpl-void);border: 1px solid var(--rpl-line);border-radius: 1rem;padding: 1.25rem;min-width: 0;}
.rpl-deck-head{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 0.75rem;margin-bottom: 1rem;}
.rpl-deck-title{font-size: 1rem;font-weight: 700;color: var(--rpl-ink);margin: 0;letter-spacing: 0.02em;}
.rpl-seed-note{font-size: 0.75rem;color: var(--rpl-ink-dim);margin: 0.25rem 0 0;}
.rpl-foot{display: flex;flex-wrap: wrap;gap: 0.4rem;}
.rpl-foot-btn{background: rgba(148,163,220,0.12);border: 1px solid var(--rpl-line);color: var(--rpl-ink);border-radius: 0.5rem;padding: 0.4rem 0.7rem;font-size: 0.8125rem;font-weight: 600;cursor: pointer;}
.rpl-foot-btn:hover{background: rgba(148,163,220,0.24);}
.rpl-results{display: grid;gap: 1rem;}
.rpl-card{background: var(--rpl-void-2);border: 1px solid var(--rpl-line);border-radius: 0.85rem;padding: 1.1rem;color: var(--rpl-ink);}
.rpl-card-head{display: grid;grid-template-columns: 84px minmax(0, 1fr);gap: 0.9rem;align-items: center;}
.rpl-disc{width: 84px;height: 84px;border-radius: 50%;box-shadow: inset -10px -10px 22px rgba(0,0,0,0.55), 0 0 28px rgba(120,140,255,0.18);}
.rpl-disc-ringed{position: relative;}
.rpl-disc-ringed::after{content: "";position: absolute;left: -22%;right: -22%;top: 46%;height: 8px;border-radius: 50%;border: 2px solid rgba(220,225,255,0.4);transform: rotate(-14deg);}
.rpl-ident{min-width: 0;}
.rpl-name{font-size: 1.45rem;font-weight: 800;margin: 0;color: #ffffff;letter-spacing: -0.01em;word-break: break-word;}
.rpl-class{font-size: 0.85rem;color: var(--rpl-ink-dim);margin: 0.15rem 0 0.3rem;}
.rpl-star{font-size: 0.8125rem;color: var(--rpl-ink);margin: 0;display: flex;align-items: center;gap: 0.4rem;}
.rpl-star-dot{width: 9px;height: 9px;border-radius: 50%;flex: none;box-shadow: 0 0 8px currentColor;}
.rpl-seed-tag{font-size: 0.7rem;color: var(--rpl-ink-dim);margin: 0.3rem 0 0;font-family: ui-monospace, SFMono-Regular, Menlo, monospace;}
.rpl-habit{grid-column: 1 / -1;display: flex;align-items: center;gap: 0.6rem;border-radius: 0.6rem;padding: 0.5rem 0.75rem;margin-top: 0.35rem;}
@media (min-width: 640px){.rpl-card-head{grid-template-columns: 84px minmax(0, 1fr) auto;}.rpl-habit{grid-column: auto;margin-top: 0;flex-direction: column;text-align: center;}}
.rpl-habit-good{background: rgba(52,168,110,0.16);border: 1px solid rgba(52,168,110,0.45);}
.rpl-habit-mid{background: rgba(214,158,46,0.16);border: 1px solid rgba(214,158,46,0.45);}
.rpl-habit-bad{background: rgba(214,74,74,0.14);border: 1px solid rgba(214,74,74,0.42);}
.rpl-habit-num{font-size: 1.35rem;font-weight: 800;line-height: 1;}
.rpl-habit-lbl{font-size: 0.7rem;color: var(--rpl-ink-dim);max-width: 130px;line-height: 1.3;}
.rpl-terrain{font-size: 0.95rem;color: var(--rpl-ink);margin: 0.9rem 0 0;line-height: 1.6;}
.rpl-stats{display: grid;grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));gap: 0.5rem;margin-top: 0.9rem;}
.rpl-stat{background: rgba(148,163,220,0.08);border: 1px solid var(--rpl-line);border-radius: 0.5rem;padding: 0.5rem 0.6rem;display: flex;flex-direction: column;gap: 0.15rem;min-width: 0;}
.rpl-stat-lbl{font-size: 0.68rem;text-transform: uppercase;letter-spacing: 0.06em;color: var(--rpl-ink-dim);}
.rpl-stat-val{font-size: 0.9rem;font-weight: 700;color: #ffffff;}
.rpl-sub{font-size: 0.7rem;text-transform: uppercase;letter-spacing: 0.08em;color: var(--rpl-ink-dim);margin: 0 0 0.45rem;font-weight: 700;}
.rpl-atmos{margin-top: 1rem;}
.rpl-gas-bar{display: flex;height: 14px;border-radius: 999px;overflow: hidden;border: 1px solid var(--rpl-line);}
.rpl-gas-seg{display: block;height: 100%;}
.rpl-gas-legend{list-style: none;padding: 0;margin: 0.55rem 0 0;display: flex;flex-wrap: wrap;gap: 0.35rem 1rem;font-size: 0.78rem;color: var(--rpl-ink-dim);}
.rpl-gas-legend strong{color: var(--rpl-ink);}
.rpl-dot{width: 8px;height: 8px;border-radius: 50%;display: inline-block;margin-right: 0.35rem;}
.rpl-notes{margin-top: 1rem;}
.rpl-note-line{font-size: 0.85rem;color: var(--rpl-ink-dim);margin: 0 0 0.3rem;}
.rpl-note-line strong{color: var(--rpl-ink);}
.rpl-chips{display: flex;flex-wrap: wrap;gap: 0.35rem;margin-top: 0.15rem;}
.rpl-chip{background: rgba(91,83,214,0.22);border: 1px solid rgba(140,132,255,0.4);color: #d9d7ff;border-radius: 999px;padding: 0.2rem 0.6rem;font-size: 0.75rem;font-weight: 600;}
.rpl-hook{margin-top: 1rem;border-left: 3px solid var(--primary);background: rgba(91,83,214,0.12);border-radius: 0 0.5rem 0.5rem 0;padding: 0.6rem 0.8rem;font-size: 0.88rem;color: var(--rpl-ink);line-height: 1.55;}
.rpl-hook-lbl{display: block;font-size: 0.66rem;text-transform: uppercase;letter-spacing: 0.08em;color: var(--rpl-ink-dim);font-weight: 700;margin-bottom: 0.2rem;}
.rpl-card-actions{display: flex;flex-wrap: wrap;gap: 0.4rem;margin-top: 1rem;}
.rpl-mini{background: transparent;border: 1px solid var(--rpl-line);color: var(--rpl-ink-dim);border-radius: 0.5rem;padding: 0.35rem 0.65rem;font-size: 0.78rem;font-weight: 600;cursor: pointer;}
.rpl-mini:hover{color: #ffffff;border-color: rgba(148,163,220,0.5);}
.rpl-byline{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 0.5rem;border-top: 1px solid var(--border);border-bottom: 1px solid var(--border);padding: 0.7rem 0;margin: 0 0 1.5rem;font-size: 0.85rem;color: var(--text-muted);}
.rpl-byline a{color: var(--primary);font-weight: 600;text-decoration: none;}
.rpl-byline a:hover{text-decoration: underline;}
.rpl-content{margin-bottom: 2rem;}
.rpl-lead{font-size: 1.05rem;color: var(--text-main);line-height: 1.7;font-weight: 500;margin-bottom: 1.25rem;}
.rpl-content h2{font-size: 1.4rem;font-weight: 800;color: var(--text-main);margin: 2rem 0 0.75rem;}
.rpl-content h3{font-size: 1.08rem;font-weight: 700;color: var(--text-main);margin: 1.5rem 0 0.5rem;}
.rpl-content p{font-size: 0.98rem;color: var(--text-muted);line-height: 1.75;margin-bottom: 1rem;}
.rpl-content a{color: var(--primary);font-weight: 600;}
.rpl-content strong{color: var(--text-main);}
.rpl-mono{font-family: ui-monospace, SFMono-Regular, Menlo, monospace;background: var(--surface-muted);border: 1px solid var(--border);border-radius: 0.3rem;padding: 0.05rem 0.35rem;font-size: 0.88em;color: var(--text-main);}
.rpl-list{padding-left: 1.1rem;margin-bottom: 1.25rem;}
.rpl-list li{font-size: 0.98rem;color: var(--text-muted);line-height: 1.7;margin-bottom: 0.5rem;}
.rpl-list li strong{color: var(--text-main);}
.rpl-table-wrap{overflow-x: auto;margin-bottom: 1.25rem;border: 1px solid var(--border);border-radius: 0.75rem;}
.rpl-table{width: 100%;border-collapse: collapse;font-size: 0.9rem;min-width: 560px;}
.rpl-table th,.rpl-table td{padding: 0.65rem 0.8rem;text-align: left;border-bottom: 1px solid var(--border);color: var(--text-muted);vertical-align: top;}
.rpl-table th{background: var(--surface-muted);color: var(--text-main);font-weight: 700;font-size: 0.82rem;text-transform: uppercase;letter-spacing: 0.04em;}
.rpl-table tr:last-child td{border-bottom: none;}
.rpl-table td:first-child{color: var(--text-main);font-weight: 600;white-space: nowrap;}
.rpl-callout{background: var(--surface-muted);border: 1px solid var(--border);border-left: 4px solid var(--primary);border-radius: 0 0.75rem 0.75rem 0;padding: 1rem 1.15rem;margin-bottom: 1.5rem;}
.rpl-callout-title{font-size: 0.95rem;font-weight: 800;color: var(--text-main);margin-bottom: 0.5rem;}
.rpl-callout-body{font-size: 0.94rem;color: var(--text-muted);line-height: 1.7;margin: 0;}
.rpl-formula{background: var(--rpl-void);border-radius: 0.6rem;padding: 0.9rem 1rem;color: #d7dbff;font-family: ui-monospace, SFMono-Regular, Menlo, monospace;font-size: 0.85rem;line-height: 1.7;overflow-x: auto;margin-bottom: 1.25rem;}
@media (max-width: 575px){.rpl-row{grid-template-columns: 1fr;}.rpl-card-head{grid-template-columns: 64px minmax(0, 1fr);}.rpl-disc{width: 64px;height: 64px;}.rpl-name{font-size: 1.2rem;}.rpl-deck{padding: 0.9rem;}}
@media (prefers-reduced-motion: reduce){*{transition-duration: 0.01ms !important;}}