blackajiro_Resonance/styles.css
Michael Gorini d3f4bf8eeb refactor
2026-04-27 14:51:02 +02:00

1044 lines
19 KiB
CSS

:root {
--rxn-font: "Avenir Next", "IBM Plex Sans", "Segoe UI", sans-serif;
--rxn-panel-bg:
linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent 45%),
radial-gradient(circle at top right, rgba(50, 154, 255, 0.08), transparent 30%),
var(--background-secondary);
--rxn-panel-border: rgba(110, 132, 153, 0.22);
--rxn-shadow: 0 16px 40px rgba(0, 0, 0, 0.14);
--rxn-shadow-soft: 0 8px 22px rgba(0, 0, 0, 0.08);
--rxn-accent: #1b8cff;
--rxn-warning: #d98f1c;
--rxn-danger: #d94a4a;
--rxn-success: #1f9a63;
}
.rxn-settings,
.rxn-modal {
font-family: var(--rxn-font);
}
.rxn-settings {
width: 100%;
max-width: 1400px;
margin: 0 auto 48px auto;
}
.vertical-tab-content .rxn-settings {
max-width: none;
}
.rxn-control-room {
width: min(1520px, calc(100vw - 80px));
max-width: none;
margin: 0 auto;
}
.rxn-settings .rxn-card,
.rxn-panel,
.rxn-session-workspace-card,
.rxn-device-card,
.rxn-check-card {
background: var(--rxn-panel-bg);
border: 1px solid var(--rxn-panel-border);
border-radius: 18px;
box-shadow: var(--rxn-shadow-soft);
}
.rxn-settings .rxn-card,
.rxn-panel,
.rxn-session-workspace-card,
.rxn-check-card,
.rxn-device-card {
padding: 18px;
}
.rxn-settings .rxn-card {
margin: 16px 0;
}
.rxn-settings .rxn-step-section {
overflow: hidden;
}
.rxn-settings-surface {
display: grid;
gap: 16px;
margin-top: 16px;
}
.rxn-settings-tab-groups {
display: grid;
gap: 14px;
margin-top: 18px;
}
.rxn-settings-tab-group {
display: grid;
gap: 8px;
}
.rxn-settings-tab-group.is-setup .rxn-settings-tabs {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.rxn-settings-tab-group-label {
color: var(--text-muted);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.rxn-settings-tabs {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin: 0;
}
.rxn-settings-tab {
display: inline-flex !important;
flex: 1 1 180px;
min-width: 160px;
min-height: 48px;
height: auto !important;
align-items: center;
justify-content: center;
padding: 9px 14px;
text-align: center;
line-height: 1.15;
white-space: normal;
border-radius: 16px;
background: rgba(16, 23, 33, 0.18);
border: 1px solid rgba(110, 132, 153, 0.22);
color: var(--text-normal);
transition: transform 0.12s ease, border-color 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}
.rxn-settings-tab:hover {
transform: translateY(-1px);
}
.rxn-settings-tab strong {
display: block;
font-size: 15px;
line-height: 1.15;
}
.rxn-settings-tab.is-selected {
border-color: var(--rxn-accent);
background: rgba(27, 140, 255, 0.14);
box-shadow: 0 12px 28px rgba(27, 140, 255, 0.12);
}
.rxn-settings .rxn-step-section .setting-item {
display: block;
margin-top: 14px;
padding: 16px;
border: 1px solid rgba(110, 132, 153, 0.18);
border-radius: 16px;
background: rgba(16, 23, 33, 0.14);
}
.rxn-settings .rxn-step-section .setting-item:first-of-type {
margin-top: 18px;
}
.rxn-settings .rxn-step-section .setting-item-info {
max-width: none;
width: 100%;
margin: 0 0 12px 0;
}
.rxn-settings .rxn-step-section .setting-item-name {
font-size: 15px;
font-weight: 700;
}
.rxn-settings .rxn-step-section .setting-item-description {
line-height: 1.45;
}
.rxn-settings .rxn-step-section .setting-item-control {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
gap: 12px;
}
.rxn-settings .rxn-step-section .setting-item-control input[type="text"],
.rxn-settings .rxn-step-section .setting-item-control input[type="number"],
.rxn-settings .rxn-step-section .setting-item-control select,
.rxn-settings .rxn-step-section .setting-item-control textarea {
flex: 1 1 320px;
width: auto;
min-width: 220px;
min-height: 48px;
height: auto !important;
box-sizing: border-box;
font: inherit;
line-height: 1.2;
}
.rxn-settings .rxn-step-section .setting-item-control input[type="text"],
.rxn-settings .rxn-step-section .setting-item-control input[type="number"] {
padding: 0 12px;
}
.rxn-settings .rxn-step-section .setting-item-control select {
padding: 0 36px 0 12px;
}
.rxn-settings .rxn-step-section .setting-item-control textarea {
padding: 12px;
}
.rxn-settings .rxn-step-section .setting-item-control button {
flex: 0 0 auto;
min-height: 48px;
height: auto !important;
padding: 0 14px;
box-sizing: border-box;
font: inherit;
line-height: 1.2;
}
.rxn-control-bar {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: 16px;
align-items: flex-start;
margin-top: 18px;
}
.rxn-control-status {
display: flex;
flex-wrap: wrap;
gap: 10px;
align-items: center;
}
.rxn-hero,
.rxn-hero-panel {
background:
radial-gradient(circle at top left, rgba(27, 140, 255, 0.18), transparent 36%),
radial-gradient(circle at bottom right, rgba(31, 154, 99, 0.1), transparent 28%),
linear-gradient(145deg, rgba(14, 24, 36, 0.6), rgba(14, 24, 36, 0.08)),
var(--background-secondary);
}
.rxn-hero h2,
.rxn-panel h2,
.rxn-modal h2 {
margin: 0;
letter-spacing: -0.02em;
}
.rxn-hero {
padding: 24px 26px;
}
.rxn-hero-brand {
max-width: 780px;
font-size: clamp(34px, 4vw, 52px);
line-height: 0.98;
}
.rxn-hero-subtitle {
max-width: 760px;
margin: 10px 0 0 0;
font-size: 14px;
line-height: 1.4;
}
.rxn-panel h3 {
margin: 0 0 12px 0;
}
.rxn-eyebrow {
margin: 0 0 6px 0;
color: var(--text-muted);
font-size: 11px;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
}
.rxn-muted {
color: var(--text-muted);
}
.rxn-actions,
.rxn-action-bar,
.rxn-pill-row,
.rxn-filter-row {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.rxn-action-bar,
.rxn-toolbar {
margin-top: 16px;
}
.rxn-diagnostics-meta {
margin-top: 12px;
}
.rxn-toolbar {
display: grid;
gap: 12px;
margin: 14px 0 18px 0;
}
.rxn-toolbar .mod-cta {
justify-self: start;
}
.rxn-actions button,
.rxn-action-bar button,
.rxn-link-btn,
.rxn-inline-select,
.rxn-search-input,
.rxn-filter-chip,
.rxn-scenario-chip {
border-radius: 12px;
}
.rxn-actions button,
.rxn-action-bar button,
.rxn-filter-chip,
.rxn-scenario-chip,
.rxn-link-btn {
display: inline-flex !important;
align-items: center;
justify-content: center;
min-height: 38px;
height: auto !important;
padding: 8px 12px;
box-sizing: border-box;
font: inherit;
line-height: 1.2;
white-space: normal;
transition: transform 0.12s ease, border-color 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}
.rxn-actions button:hover,
.rxn-action-bar button:hover,
.rxn-filter-chip:hover,
.rxn-scenario-chip:hover {
transform: translateY(-1px);
}
.rxn-btn-secondary,
.rxn-filter-chip,
.rxn-inline-select,
.rxn-search-input,
.rxn-scenario-chip {
background: rgba(16, 23, 33, 0.18);
border: 1px solid rgba(110, 132, 153, 0.22);
color: var(--text-normal);
}
.rxn-btn-primary {
background: linear-gradient(135deg, rgba(27, 140, 255, 0.92), rgba(13, 91, 201, 0.92));
border: 1px solid rgba(79, 167, 255, 0.4);
color: white;
box-shadow: 0 12px 28px rgba(27, 140, 255, 0.2);
}
.rxn-btn-primary:hover {
border-color: rgba(117, 188, 255, 0.5);
}
.rxn-btn-danger {
background: rgba(217, 74, 74, 0.12);
border: 1px solid rgba(217, 74, 74, 0.38);
color: #ff8d8d;
}
.rxn-link-btn {
background: transparent;
border: none;
color: var(--interactive-accent);
cursor: pointer;
padding: 0;
}
.rxn-pill,
.rxn-status-pill {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 10px;
border-radius: 999px;
border: 1px solid rgba(110, 132, 153, 0.22);
font-size: 12px;
line-height: 1.1;
}
.rxn-pill {
background: rgba(16, 23, 33, 0.16);
}
.rxn-pill.is-ok,
.rxn-status-pill.is-healthy {
border-color: rgba(31, 154, 99, 0.35);
background: rgba(31, 154, 99, 0.12);
}
.rxn-status-pill.is-warning {
border-color: rgba(217, 143, 28, 0.38);
background: rgba(217, 143, 28, 0.12);
}
.rxn-status-pill.is-failed,
.rxn-pill.is-error {
border-color: rgba(217, 74, 74, 0.4);
background: rgba(217, 74, 74, 0.12);
}
.rxn-section-heading {
display: grid;
gap: 6px;
}
.rxn-section-heading h3,
.rxn-section-heading p {
margin: 0;
}
.rxn-hero-header {
display: flex;
justify-content: space-between;
gap: 16px;
align-items: flex-start;
}
.rxn-status-stack {
display: grid;
justify-items: end;
gap: 8px;
}
.rxn-runtime-label {
text-align: right;
}
.rxn-check-grid,
.rxn-session-workspace {
display: grid;
gap: 12px;
}
.rxn-diagnostics-stack {
display: grid;
gap: 12px;
margin-top: 16px;
}
.rxn-recording-modal .modal {
width: min(980px, calc(100vw - 40px));
max-width: calc(100vw - 40px);
}
.rxn-recording-modal .modal-content {
width: 100%;
max-width: none;
}
.rxn-recording-modal-content {
display: grid;
gap: 14px;
}
.rxn-recording-hero {
padding: 20px 22px;
}
.rxn-recording-hero-header {
display: flex;
justify-content: space-between;
gap: 18px;
align-items: flex-start;
}
.rxn-recording-runtime {
display: grid;
gap: 6px;
justify-items: end;
text-align: right;
min-width: 180px;
}
.rxn-recording-elapsed {
font-size: clamp(28px, 4vw, 38px);
line-height: 0.92;
}
.rxn-scenario-grid,
.rxn-recording-metrics {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
align-items: stretch;
}
.rxn-recording-metrics {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.rxn-scenario-option {
display: flex !important;
flex-direction: column;
align-items: flex-start;
justify-content: flex-start;
gap: 8px;
width: 100%;
min-width: 0;
min-height: 96px;
padding: 14px 16px;
box-sizing: border-box;
border-radius: 16px;
border: 1px solid rgba(110, 132, 153, 0.22);
background: rgba(16, 23, 33, 0.18);
color: var(--text-normal);
text-align: left;
white-space: normal;
overflow: hidden;
transition: transform 0.12s ease, border-color 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}
.rxn-scenario-option:hover {
transform: translateY(-1px);
}
.rxn-scenario-option.is-selected {
border-color: var(--rxn-accent);
background: rgba(27, 140, 255, 0.14);
box-shadow: 0 12px 28px rgba(27, 140, 255, 0.12);
}
.rxn-scenario-option strong,
.rxn-recording-metric strong {
display: block;
margin: 0;
}
.rxn-scenario-option p,
.rxn-recording-metric p {
margin: 0;
}
.rxn-scenario-option strong,
.rxn-scenario-option p {
width: 100%;
min-width: 0;
white-space: normal;
overflow-wrap: anywhere;
word-break: normal;
line-height: 1.3;
}
.rxn-scenario-option strong {
font-size: 16px;
}
.rxn-scenario-option p {
color: var(--text-muted);
font-size: 14px;
}
.rxn-recording-metric {
min-height: 108px;
align-content: start;
}
.rxn-recording-metric strong {
font-size: 32px;
line-height: 1;
margin-bottom: 6px;
}
.rxn-recording-modal-content .rxn-action-bar {
align-items: center;
}
.rxn-recording-modal-content .rxn-btn-primary {
min-width: 168px;
}
.rxn-recording-live {
display: grid;
gap: 12px;
}
.rxn-recording-live h3,
.rxn-recording-live p {
margin: 0;
}
.rxn-check-card strong,
.rxn-device-card strong {
display: block;
margin-bottom: 6px;
}
.rxn-check-card p,
.rxn-check-card small {
margin: 0;
}
.rxn-check-card small {
display: block;
margin-top: 8px;
}
.rxn-check-card.is-failed,
.rxn-inline-note.is-failed {
border-color: rgba(217, 74, 74, 0.35);
}
.rxn-check-card.is-warning,
.rxn-inline-note.is-warning {
border-color: rgba(217, 143, 28, 0.35);
}
.rxn-check-card.is-healthy {
border-color: rgba(31, 154, 99, 0.28);
}
.rxn-inline-note {
margin-top: 14px;
padding: 14px 16px;
border-radius: 16px;
border: 1px solid rgba(110, 132, 153, 0.2);
background: rgba(16, 23, 33, 0.16);
}
.rxn-inline-note strong {
display: block;
margin-bottom: 6px;
}
.rxn-step-section-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 10px;
flex-wrap: wrap;
}
.rxn-step-section-header h3 {
margin: 0;
}
.rxn-step-section-badge {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 28px;
padding: 6px 10px;
border-radius: 999px;
border: 1px solid rgba(79, 167, 255, 0.36);
background: rgba(27, 140, 255, 0.14);
color: var(--text-normal);
font-size: 12px;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.rxn-guide-list {
margin: 14px 0 0 18px;
color: var(--text-muted);
}
.rxn-guide-list li + li {
margin-top: 6px;
}
.rxn-guide-platform {
margin-top: 14px;
}
.rxn-guide-platform-tabs {
display: inline-flex;
flex-wrap: wrap;
gap: 8px;
}
.rxn-guide-platform-tab {
display: inline-flex !important;
align-items: center;
justify-content: center;
min-height: 34px;
height: auto !important;
padding: 6px 12px;
box-sizing: border-box;
border-radius: 999px;
border: 1px solid rgba(110, 132, 153, 0.24);
background: rgba(16, 23, 33, 0.12);
color: var(--text-normal);
font-size: 13px;
font-weight: 700;
transition: background 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
}
.rxn-guide-platform-tab.is-selected {
border-color: var(--rxn-accent);
background: rgba(27, 140, 255, 0.14);
box-shadow: 0 10px 20px rgba(27, 140, 255, 0.12);
}
.rxn-guide-platform-panel {
margin-top: 12px;
}
.rxn-guide-platform-copy {
margin: 0;
}
.rxn-guide-code-block {
margin-top: 14px;
}
.rxn-guide-code-label {
margin: 0 0 6px;
color: var(--text-muted);
font-size: 12px;
font-weight: 700;
letter-spacing: 0.06em;
text-transform: uppercase;
}
.rxn-guide-code-shell {
position: relative;
}
.rxn-guide-code-copy {
position: absolute;
top: 10px;
right: 10px;
z-index: 1;
}
.rxn-guide-code {
margin: 0;
padding: 16px 88px 16px 14px;
border-radius: 14px;
border: 1px solid rgba(110, 132, 153, 0.22);
background: rgba(10, 14, 20, 0.34);
overflow: auto;
white-space: pre-wrap;
}
.rxn-scenario-row {
display: grid;
gap: 10px;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
.rxn-scenario-chip {
justify-content: flex-start;
min-height: 48px;
padding: 10px 14px;
text-align: left;
cursor: pointer;
}
.rxn-scenario-chip strong {
display: block;
line-height: 1.15;
}
.rxn-scenario-chip.is-selected,
.rxn-filter-chip.is-selected {
border-color: var(--rxn-accent);
background: rgba(27, 140, 255, 0.14);
box-shadow: 0 12px 28px rgba(27, 140, 255, 0.12);
}
.rxn-filter-chip {
padding: 8px 12px;
}
.rxn-inline-select,
.rxn-search-input {
width: 100%;
min-height: 48px;
padding: 0 12px;
}
.rxn-search-input {
min-height: 42px;
padding: 10px 12px;
}
.rxn-session-header {
display: flex;
justify-content: space-between;
gap: 12px;
align-items: flex-start;
}
.rxn-session-title {
display: grid;
gap: 8px;
}
.rxn-session-title strong {
font-size: 1.15rem;
line-height: 1.15;
}
.rxn-session-workspace-card {
display: grid;
gap: 14px;
}
.rxn-session-meta-row {
display: flex;
flex-wrap: wrap;
gap: 12px 20px;
}
.rxn-session-meta-item {
display: inline-flex;
align-items: baseline;
gap: 6px;
color: var(--text-muted);
font-size: 0.95rem;
}
.rxn-session-meta-label {
color: var(--text-faint);
}
.rxn-session-meta-value {
color: var(--text-normal);
}
.rxn-session-section-heading {
display: flex;
align-items: center;
gap: 10px;
}
.rxn-session-recovery {
display: flex;
align-items: flex-start;
justify-content: space-between;
flex-wrap: wrap;
gap: 12px;
padding: 12px 14px;
border-radius: 14px;
background: rgba(217, 143, 28, 0.05);
}
.rxn-session-recovery-copy {
display: grid;
gap: 4px;
max-width: 680px;
}
.rxn-session-recovery p {
margin: 0;
}
.rxn-session-menu-row {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.rxn-session-menu {
position: relative;
}
.rxn-session-menu > summary {
list-style: none;
}
.rxn-session-menu > summary::-webkit-details-marker {
display: none;
}
.rxn-session-menu-trigger {
min-width: 112px;
position: relative;
display: inline-flex;
align-items: center;
justify-content: flex-start;
min-height: 40px;
padding: 8px 34px 8px 14px;
border-radius: 999px;
border: 1px solid rgba(110, 132, 153, 0.22);
background: rgba(16, 23, 33, 0.18);
box-sizing: border-box;
padding-right: 28px;
}
.rxn-session-menu-trigger::after {
content: "▾";
position: absolute;
right: 12px;
top: 50%;
transform: translateY(-50%);
opacity: 0.75;
}
.rxn-session-menu[open] .rxn-session-menu-trigger {
border-color: var(--rxn-accent);
background: rgba(27, 140, 255, 0.14);
box-shadow: 0 10px 24px rgba(27, 140, 255, 0.12);
}
.rxn-session-menu.is-danger .rxn-session-menu-trigger {
border-color: rgba(217, 74, 74, 0.32);
background: rgba(217, 74, 74, 0.08);
color: #ff9a9a;
}
.rxn-session-menu.is-danger[open] .rxn-session-menu-trigger {
border-color: rgba(217, 74, 74, 0.38);
background: rgba(217, 74, 74, 0.12);
box-shadow: 0 10px 24px rgba(217, 74, 74, 0.12);
}
.rxn-session-menu-list {
position: absolute;
top: calc(100% + 8px);
left: 0;
z-index: 20;
display: grid;
gap: 8px;
min-width: 220px;
padding: 10px;
border-radius: 14px;
border: 1px solid rgba(110, 132, 153, 0.18);
background: rgba(12, 16, 22, 0.96);
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
}
.rxn-session-menu-list button {
width: 100%;
justify-content: flex-start;
}
.rxn-session-workspace-card audio {
width: 100%;
margin-top: 14px;
}
.rxn-preview {
margin: 12px 0 0 0;
padding: 14px;
border-radius: 14px;
background: rgba(16, 23, 33, 0.16);
border: 1px solid rgba(110, 132, 153, 0.22);
overflow: auto;
max-height: 60vh;
white-space: pre-wrap;
user-select: text;
-webkit-user-select: text;
cursor: text;
}
.rxn-ribbon.is-recording {
color: var(--rxn-danger) !important;
}
.rxn-ribbon.is-busy {
color: var(--rxn-accent) !important;
}
.status-bar-item.rxn-statusbar {
color: var(--text-normal);
cursor: pointer;
}
.rxn-wide-modal .modal {
width: min(1560px, calc(100vw - 40px));
max-width: calc(100vw - 40px);
}
.rxn-wide-modal .modal-content {
width: 100%;
max-width: none;
}
@media (max-width: 920px) {
.rxn-settings-tab-group.is-setup .rxn-settings-tabs {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.rxn-hero-header {
flex-direction: column;
}
.rxn-status-stack {
justify-items: start;
}
.rxn-runtime-label {
text-align: left;
}
.rxn-step-section-header {
flex-direction: column;
align-items: flex-start;
}
.rxn-control-bar {
flex-direction: column;
}
.rxn-recording-hero-header {
flex-direction: column;
}
.rxn-recording-runtime {
justify-items: start;
text-align: left;
}
.rxn-recording-metrics {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 720px) {
.rxn-settings-tab-group.is-setup .rxn-settings-tabs {
grid-template-columns: 1fr;
}
.rxn-scenario-row,
.rxn-wide-modal .modal {
width: 96vw;
}
.rxn-recording-modal .modal {
width: 96vw;
max-width: 96vw;
}
.rxn-scenario-grid,
.rxn-recording-metrics {
grid-template-columns: 1fr;
}
.rxn-settings .rxn-step-section .setting-item-control input[type="text"],
.rxn-settings .rxn-step-section .setting-item-control input[type="number"],
.rxn-settings .rxn-step-section .setting-item-control select,
.rxn-settings .rxn-step-section .setting-item-control textarea,
.rxn-settings .rxn-step-section .setting-item-control button {
width: 100%;
min-width: 0;
}
}