} .metric { margin-top: 12px; color: var(--color-metric); font-size: 1.45rem; font-weight: 800; } .polling-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(88px, 1fr)); gap: 8px; margin-top: 14px; } .polling-options button, .led-effect-grid button { min-height: 42px; border-radius: 6px; padding: 8px 12px; color: var(--color-secondary-text); background: var(--color-secondary-bg); cursor: pointer; font-weight: 700; text-align: center; } .polling-options button:hover, .polling-options button.active, .led-effect-grid button:hover, .led-effect-grid button.active { color: var(--color-active-text); background: var(--color-active); } .dpi-panel { display: grid; gap: 18px; } .dpi-card-header { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; } .dpi-card-header h3 { margin-bottom: 6px; } .stage-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 8px; } .dpi-stage-card { display: grid; gap: 10px; align-content: start; border: 1px solid var(--color-border-subtle); border-radius: 6px; padding: 12px; background: var(--color-panel-subtle); cursor: pointer; } .dpi-add-stage { display: grid; min-height: 156px; place-items: center; align-content: center; gap: 6px; border: 1px dashed var(--color-border-subtle); border-radius: 6px; padding: 12px; color: var(--color-secondary-text); background: transparent; cursor: pointer; } .dpi-add-stage:disabled { cursor: not-allowed; opacity: 0.55; } .dpi-add-stage span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 999px; color: var(--color-primary-text); background: var(--color-primary); font-size: 2rem; font-weight: 700; line-height: 1; } .dpi-add-stage strong { font-size: 0.9rem; } .dpi-stage-card:hover, .dpi-stage-card:focus-visible, .dpi-add-stage:hover, .dpi-add-stage:focus-visible { border-color: var(--color-active); } .dpi-stage-card.active { border-color: var(--color-active); background: var(--color-active-surface); } .dpi-stage-card-header { display: flex; justify-content: space-between; gap: 12px; align-items: center; } .dpi-stage-card-header span { color: var(--color-small-text); font-size: 0.78rem; font-weight: 700; } .dpi-stage-card-header strong { color: var(--color-metric); font-size: 0.95rem; } .stage-delete { display: inline-grid; place-items: center; width: 30px; height: 30px; margin-left: auto; border-radius: 6px; color: var(--color-danger); background: transparent; cursor: pointer; opacity: 0; } .dpi-stage-card:hover .stage-delete, .dpi-stage-card:focus-within .stage-delete { opacity: 1; } .stage-delete:hover, .stage-delete:focus-visible { color: var(--color-danger-text); background: var(--color-danger); } .stage-delete svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; } .stage-advanced { display: grid; gap: 8px; } .stage-advanced summary { color: var(--color-small-text); cursor: pointer; font-size: 0.78rem; font-weight: 700; } .stage-advanced .inline-pair { margin-top: 8px; } .stage-list input { min-height: 34px; } .profile-admin-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 12px; } .profile-admin-list div { display: grid; gap: 6px; align-content: start; border: 1px solid var(--color-border-subtle); border-radius: 6px; padding: 12px; background: var(--color-panel-subtle); } .profile-admin-list div.active { border-color: var(--color-active); background: var(--color-active-surface); } .profile-admin-list span { color: var(--color-small-text); font-size: 0.78rem; } .profile-admin-list strong, .led-region-tabs button, .flash-summary span { overflow-wrap: anywhere; } .profile-slot-fixed { visibility: hidden; } .category-grid, .modifier-grid { display: grid; gap: 10px; } .mouse-assignment-layout { display: grid; grid-template-columns: minmax(260px, 420px); gap: 12px; margin-bottom: 18px; } .mouse-button-picker { display: grid; gap: 12px; align-content: start; } .mouse-selection-summary { display: grid; gap: 2px; border-bottom: 1px solid var(--color-border-subtle); padding-bottom: 12px; } .mouse-selection-summary span, .mouse-button-row strong { color: var(--color-small-text); font-size: 0.75rem; font-weight: 800; } .mouse-selection-summary strong { min-width: 0; overflow-wrap: anywhere; font-size: 1.25rem; line-height: 1.2; } .mouse-selection-summary em { color: var(--color-metric); font-style: normal; font-weight: 800; } .mouse-button-list { display: grid; gap: 6px; } .mouse-button-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(76px, max-content); gap: 10px; align-items: center; min-height: 34px; border: 1px solid transparent; border-radius: 6px; padding: 6px 8px; color: var(--color-secondary-text); background: transparent; cursor: pointer; text-align: left; } .mouse-button-row:hover, .mouse-button-row:focus-visible { border-color: var(--color-active); background: var(--color-panel-subtle); } .mouse-button-row.active { border-color: var(--color-active); background: var(--color-active-surface); } .mouse-button-row span, .mouse-button-row strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .mouse-button-row span { font-weight: 700; } .mouse-button-row strong { justify-self: end; max-width: 132px; } .button-hypershift-toggle { margin: 0; border-bottom: 1px solid var(--color-border-subtle); padding-bottom: 12px; } .category-grid button { min-height: 40px; border-radius: 6px; cursor: pointer; } .category-grid { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin: 18px 0; } .category-grid button { padding: 0 12px; color: var(--color-secondary-text); background: var(--color-secondary-bg); } .category-grid button.active { color: var(--color-active-text); background: var(--color-active); } .button-editor-grid { display: grid; gap: 16px; } .button-radio-group { display: grid; gap: 8px; } .modifier-grid { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); } .inline-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .button-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; } .scroll-toggle-row { display: grid; grid-template-columns: minmax(110px, max-content) max-content 18px max-content; gap: 10px; align-items: center; } .scroll-toggle-row span { white-space: nowrap; } .scroll-toggle-row input { width: 18px; min-height: 18px; } .led-panel { display: grid; gap: 18px; } .led-panel-header { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-start; justify-content: space-between; } .led-panel-header h3 { margin-bottom: 4px; } .led-region-tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; } .led-region-tabs button { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 10px; align-items: center; min-height: 42px; border: 1px solid var(--color-border-subtle); border-radius: 6px; padding: 8px 10px; color: var(--color-secondary-text); background: var(--color-panel-subtle); cursor: pointer; text-align: left; } .led-region-tabs button.active { border-color: var(--color-active); background: var(--color-active-surface); } .led-region-tabs strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.9rem; } .led-region-swatch { width: 14px; height: 14px; border: 1px solid var(--color-input-border); border-radius: 999px; } .led-section h4, .led-slider-label span, .led-color-control span { color: var(--color-small-text); font-size: 0.78rem; font-weight: 700; } .led-slider-label strong { font-size: 0.95rem; } .led-section { display: grid; gap: 10px; } .led-section h4 { margin: 0; } .led-effect-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); gap: 8px; } .led-effect-grid button { min-height: 44px; } .led-effect-grid button:disabled { cursor: default; opacity: 1; } .led-controls { display: grid; gap: 12px; } .led-color-control { display: grid; grid-template-columns: 120px 72px minmax(92px, 1fr); gap: 12px; align-items: center; } .led-color-control input[type="color"] { width: 64px; min-width: 64px; height: 42px; min-height: 42px; padding: 3px; } .led-color-control strong { color: var(--color-small-text); font-size: 0.82rem; } .led-slider-row { display: grid; grid-template-columns: 120px minmax(180px, 1fr) 92px; gap: 12px; align-items: center; } .led-slider-label { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; } .led-slider-row input[type="range"] { width: 100%; } .led-slider-row input[type="number"] { min-width: 0; } .stage-list span, .info-list dt { color: var(--color-small-text); font-size: 0.78rem; font-weight: 700; } .info-list { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 10px 16px; margin: 0; } .info-list dd { min-width: 0; margin: 0; overflow-wrap: anywhere; } .empty-state { max-width: 760px; } .empty-state p { max-width: 680px; } @media (max-width: 980px) { .mouse-assignment-layout { grid-template-columns: 1fr; } } @media (max-width: 760px) { .app-shell, .panel-grid, .field.inline, .info-list, .inline-pair, .led-color-control, .led-slider-row { grid-template-columns: 1fr; } .topbar, .led-panel-header, .profile-row { align-items: stretch; flex-direction: column; } .mouse-button-list { grid-template-columns: 1fr; } }