window,
.app-shell {
color: @kv_text;
background-color: @kv_background;
}
window:backdrop .app-shell {
color: @kv_text_secondary;
}
.kv-titlebar {
color: @kv_text_secondary;
background-color: @kv_background;
background-image: linear-gradient(180deg, @kv_surface, @kv_background);
border-bottom: 1px solid alpha(@kv_border_strong, 0.58);
box-shadow: none;
min-height: 34px;
padding: 0 6px;
}
.kv-titlebar-label {
color: @kv_text_secondary;
font-family: monospace;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.7px;
}
.kv-titlebar windowcontrols button {
color: @kv_text_secondary;
background-color: transparent;
background-image: none;
border: 0;
border-radius: 99px;
box-shadow: none;
min-height: 28px;
min-width: 28px;
padding: 0;
}
.kv-titlebar windowcontrols button:hover {
color: @kv_text;
background-color: alpha(@kv_accent_bright, 0.11);
}
.kv-titlebar:backdrop {
background-color: @kv_background;
background-image: none;
}
.topbar {
color: @kv_text;
background-color: @kv_surface;
background-image: linear-gradient(105deg, @kv_surface_hover 0%, @kv_surface 48%, @kv_background 100%);
border-bottom: 1px solid @kv_border;
padding: 8px 12px;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24);
}
.brand-mark {
color: @kv_on_accent;
background-color: @kv_accent;
background-image: linear-gradient(145deg, @kv_accent_bright, @kv_accent);
border: 1px solid @kv_accent_bright;
border-radius: 7px;
box-shadow: 0 0 18px alpha(@kv_accent, 0.24);
font-family: monospace;
font-size: 13px;
font-weight: 800;
padding: 7px 9px;
transition: all 180ms ease-out;
}
.brand-mark:hover {
box-shadow: 0 0 25px alpha(@kv_accent, 0.34);
}
.brand {
color: @kv_text;
font-size: 16px;
font-weight: 800;
letter-spacing: 2px;
text-shadow: 0 1px 12px alpha(@kv_accent_bright, 0.12);
}
.brand-subtitle {
color: @kv_text_secondary;
font-family: monospace;
font-size: 11px;
letter-spacing: 0.8px;
}
.brand-accent,
.eyebrow,
.time-label {
color: @kv_accent_bright;
}
.eyebrow {
font-family: monospace;
font-size: 11px;
font-weight: 700;
letter-spacing: 1.5px;
}
.muted {
color: @kv_text_secondary;
}
.content,
paned.content {
color: @kv_text;
background-color: @kv_background;
background-image: linear-gradient(140deg, @kv_canvas 0%, @kv_surface 62%, @kv_background 100%);
padding: 12px;
}
paned.content > separator {
background-color: @kv_border;
border: 0;
border-radius: 99px;
min-width: 2px;
min-height: 2px;
margin: 10px 6px;
}
paned.content > separator:hover,
paned.content > separator:focus-visible {
background-color: @kv_accent;
box-shadow: 0 0 10px alpha(@kv_accent, 0.32);
}
.card {
color: @kv_text;
background-color: @kv_surface;
background-image: linear-gradient(160deg, @kv_surface_raised, @kv_surface);
border: 1px solid @kv_border;
border-radius: 10px;
box-shadow: 0 16px 42px rgba(0, 0, 0, 0.34);
transition: all 180ms ease-out;
}
.queue-card {
border-top: 2px solid @kv_border_strong;
padding: 12px;
}
.queue-title {
color: @kv_text;
font-size: 18px;
font-weight: 700;
}
.queue-count {
color: @kv_accent_bright;
background-color: alpha(@kv_accent, 0.08);
border: 1px solid @kv_border_strong;
border-radius: 6px;
font-family: monospace;
font-size: 11px;
font-weight: 700;
padding: 5px 8px;
}
.queue-search {
color: @kv_text;
background-color: @kv_surface_raised;
border: 1px solid @kv_border;
border-radius: 8px;
min-height: 38px;
padding: 0 10px;
box-shadow: inset 0 1px rgba(255, 255, 255, 0.025);
}
.queue-search:focus-visible {
border-color: @kv_accent;
box-shadow: 0 0 0 2px alpha(@kv_accent, 0.18);
}
entry.search.queue-search:focus,
entry.search.queue-search:focus-within,
.queue-search:focus-within {
border-color: @kv_accent;
outline-color: @kv_accent_bright;
box-shadow: 0 0 0 2px alpha(@kv_accent, 0.18);
}
.queue-search image {
color: @kv_text_secondary;
}
.queue-filter-bar {
background-color: transparent;
}
.queue-filter-toggle {
color: @kv_text_secondary;
background-color: @kv_surface_raised;
background-image: none;
border-color: @kv_border;
min-height: 38px;
min-width: 38px;
padding: 0;
}
.queue-filter-toggle:hover {
color: @kv_accent_bright;
background-color: @kv_surface_hover;
border-color: @kv_border_strong;
}
.queue-filter-toggle:checked {
color: @kv_on_accent;
background-color: @kv_accent;
background-image: linear-gradient(145deg, @kv_accent_bright, @kv_accent);
border-color: @kv_accent_bright;
box-shadow: 0 3px 13px alpha(@kv_accent, 0.18);
}
.queue-empty {
color: @kv_text_secondary;
background-color: rgba(3, 12, 15, 0.7);
border: 1px dashed @kv_border;
border-radius: 8px;
padding: 28px 18px;
}
.queue-action {
color: @kv_text_secondary;
background-color: rgba(5, 15, 18, 0.84);
border: 1px solid @kv_border;
border-radius: 7px;
font-family: monospace;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.8px;
min-height: 38px;
min-width: 44px;
padding: 3px 10px;
}
.queue-action:hover {
color: @kv_accent_bright;
background-color: @kv_surface_hover;
border-color: @kv_border_strong;
}
.drop-active .card {
border-color: @kv_accent;
box-shadow: 0 0 0 2px alpha(@kv_accent, 0.18), 0 20px 52px rgba(0, 0, 0, 0.42);
}
.drop-active .viewport {
border-color: @kv_accent_bright;
box-shadow: inset 0 0 48px alpha(@kv_accent, 0.09);
}
.queue-row {
color: @kv_text;
background-color: alpha(@kv_surface, 0.78);
border: 1px solid transparent;
border-radius: 7px;
padding: 11px 10px;
margin: 2px 1px;
transition: all 130ms ease-out;
}
.queue-row:hover {
color: @kv_text;
background-color: @kv_surface_hover;
border-color: alpha(@kv_border_strong, 0.68);
}
.queue-row:selected {
color: #ffffff;
background-color: @kv_surface_hover;
border-color: @kv_border_strong;
box-shadow: inset 3px 0 @kv_accent;
}
.queue-row.now-playing {
color: @kv_text;
background-color: alpha(@kv_surface_hover, 0.86);
border-color: alpha(@kv_accent, 0.34);
box-shadow: inset 3px 0 @kv_accent;
}
.queue-row.now-playing:selected {
background-color: @kv_surface_hover;
border-color: @kv_accent;
}
.queue-playing {
color: @kv_accent_bright;
font-family: monospace;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.7px;
}
.queue-progress,
.queue-progress trough {
background-color: @kv_surface_hover;
border: 0;
border-radius: 99px;
min-height: 3px;
}
.queue-progress progress,
.queue-progress highlight {
background-color: @kv_accent;
border: 0;
border-radius: 99px;
min-height: 3px;
}
.queue-card scrolledwindow,
.queue-card viewport,
.queue-card list,
.queue-card listbox {
color: @kv_text;
background-color: alpha(@kv_surface, 0.68);
}
.queue-card scrolledwindow {
border: 1px solid @kv_border;
border-radius: 8px;
}
.queue-index {
color: @kv_text_tertiary;
font-family: monospace;
font-size: 12px;
font-weight: 600;
}
.player-card {
border-top: 2px solid @kv_accent;
padding: 10px;
}
.viewport {
color: @kv_text;
background-color: #000000;
border: 1px solid @kv_border_strong;
border-radius: 8px;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.015);
}
.player-overlay {
color: @kv_text;
background-color: transparent;
}
.player-chrome {
color: @kv_text;
background-color: rgba(0, 5, 7, 0.72);
background-image: linear-gradient(180deg, rgba(0, 4, 6, 0.12), rgba(0, 4, 6, 0.86));
border-top: 1px solid alpha(@kv_accent_bright, 0.12);
padding: 16px 14px 12px;
text-shadow: 0 1px 4px rgba(0, 0, 0, 0.9);
}
.chrome-revealer {
color: @kv_text;
background-color: transparent;
}
.chrome-revealer .transport {
background-color: alpha(@kv_background, 0.86);
border-color: alpha(@kv_border_strong, 0.72);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.42);
}
.loading-overlay {
color: @kv_text;
background-color: rgba(0, 4, 6, 0.74);
padding: 28px;
}
.loading-overlay spinner {
color: @kv_accent;
min-width: 32px;
min-height: 32px;
}
.empty-screen {
color: @kv_text;
background-color: @kv_canvas;
background-image: radial-gradient(ellipse at center, #0a1b20 0%, #020708 55%, #000000 100%);
padding: 32px;
}
.empty-mark {
color: @kv_accent_bright;
background-color: alpha(@kv_accent, 0.045);
border: 1px solid @kv_border_strong;
border-radius: 9px;
box-shadow: 0 0 28px alpha(@kv_accent, 0.12);
font-size: 30px;
font-weight: 800;
padding: 12px 20px;
}
.error-screen {
color: @kv_text;
background-color: #080609;
background-image: radial-gradient(ellipse at center, #241016 0%, #090609 52%, #020304 100%);
padding: 32px;
}
.error-mark {
color: @kv_error;
background-color: rgba(255, 135, 151, 0.07);
border: 1px solid rgba(255, 135, 151, 0.55);
border-radius: 99px;
box-shadow: 0 0 26px rgba(255, 135, 151, 0.12);
font-size: 24px;
font-weight: 800;
min-height: 48px;
min-width: 48px;
}
.video-title {
color: @kv_text;
font-size: 21px;
font-weight: 750;
}
.video-detail {
color: @kv_text_secondary;
font-family: monospace;
font-size: 12px;
letter-spacing: 0.6px;
}
.transport {
color: @kv_text;
background-color: alpha(@kv_surface, 0.92);
border: 1px solid @kv_border;
border-radius: 9px;
padding: 5px 7px;
}
.transport-group {
background-color: alpha(@kv_surface_hover, 0.62);
border: 1px solid alpha(@kv_border_strong, 0.5);
border-radius: 8px;
padding: 3px;
}
.transport-group button {
background-color: transparent;
border-color: transparent;
}
.transport-group button:hover {
background-color: @kv_surface_hover;
border-color: @kv_border_strong;
}
button {
color: @kv_text;
background-color: @kv_surface_raised;
background-image: linear-gradient(180deg, @kv_surface_hover, @kv_surface_raised);
border: 1px solid @kv_border_strong;
border-radius: 7px;
box-shadow: none;
min-height: 40px;
min-width: 40px;
padding: 4px 11px;
transition: all 140ms ease-out;
}
button:hover {
color: #ffffff;
background-color: @kv_surface_hover;
background-image: linear-gradient(180deg, @kv_surface_hover, @kv_surface);
border-color: @kv_accent;
}
button:active,
button.active,
button:checked {
color: @kv_on_accent;
background-color: @kv_accent;
background-image: none;
border-color: @kv_accent_bright;
}
.primary-button {
color: @kv_on_accent;
background-color: @kv_accent;
background-image: linear-gradient(145deg, @kv_accent_bright, @kv_accent);
border-color: @kv_accent_bright;
border-radius: 9px;
box-shadow: 0 4px 18px alpha(@kv_accent, 0.2);
min-height: 44px;
min-width: 44px;
}
.primary-button:hover {
color: @kv_on_accent;
background-color: @kv_accent_bright;
background-image: none;
border-color: @kv_accent_bright;
box-shadow: 0 5px 24px alpha(@kv_accent, 0.3);
}
.add-button {
color: @kv_accent_bright;
background-color: @kv_surface_hover;
border-color: @kv_border_strong;
font-weight: 700;
}
.subtitle-button {
color: @kv_text_secondary;
}
.subtitle-button > button,
.speed-button > button,
.compact-action > button {
color: inherit;
background-color: inherit;
background-image: none;
border-color: inherit;
border-radius: inherit;
min-height: inherit;
min-width: inherit;
}
.subtitle-button.active > button {
color: @kv_on_accent;
background-color: @kv_accent;
border-color: @kv_accent_bright;
}
.mode-button {
color: @kv_accent_bright;
font-family: monospace;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.8px;
}
.mode-button:checked,
.transport button:checked {
color: @kv_accent_bright;
background-color: alpha(@kv_accent, 0.13);
background-image: none;
border-color: alpha(@kv_accent_bright, 0.54);
box-shadow: inset 0 0 0 1px alpha(@kv_accent, 0.08);
}
.speed-button {
color: @kv_accent_bright;
font-family: monospace;
font-size: 11px;
font-weight: 800;
min-width: 52px;
}
.compact-action {
color: @kv_text_secondary;
background-color: alpha(@kv_surface, 0.76);
border-color: alpha(@kv_border_strong, 0.72);
border-radius: 8px;
min-height: 40px;
min-width: 40px;
padding: 3px 8px;
}
.compact-action:hover {
color: @kv_accent_bright;
background-color: alpha(@kv_surface_hover, 0.92);
}
.library-button {
color: @kv_accent_bright;
font-family: monospace;
font-size: 11px;
font-weight: 800;
letter-spacing: 0.7px;
}
scale trough {
background-color: @kv_surface_hover;
border: 0;
border-radius: 99px;
min-height: 6px;
}
scale highlight {
background-color: @kv_accent;
border: 0;
border-radius: 99px;
}
scale slider {
background-color: @kv_text;
border: 2px solid @kv_accent;
border-radius: 99px;
box-shadow: 0 1px 8px alpha(@kv_accent, 0.38);
min-width: 16px;
min-height: 16px;
margin: -6px;
transition: all 120ms ease-out;
}
scale:hover slider {
background-color: #ffffff;
border-color: @kv_accent_bright;
min-width: 18px;
min-height: 18px;
margin: -7px;
}
.status-pill {
color: @kv_accent_bright;
background-color: alpha(@kv_accent, 0.09);
border: 1px solid alpha(@kv_accent, 0.32);
border-radius: 99px;
font-family: monospace;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.8px;
padding: 6px 11px;
transition: all 160ms ease-out;
}
.status-pill.loading {
color: @kv_warning;
background-color: rgba(242, 199, 110, 0.09);
border-color: rgba(242, 199, 110, 0.42);
}
.status-pill.paused {
color: #c5d9dc;
background-color: rgba(154, 189, 195, 0.09);
border-color: rgba(154, 189, 195, 0.36);
}
.status-pill.error {
color: @kv_error;
background-color: rgba(255, 135, 151, 0.08);
border-color: rgba(255, 135, 151, 0.48);
}
.popover-panel {
color: @kv_text;
background-color: #08171b;
background-image: linear-gradient(150deg, #0c2228, #061115);
border: 1px solid @kv_border_strong;
border-radius: 10px;
box-shadow: 0 18px 48px rgba(0, 0, 0, 0.56);
padding: 12px;
}
.popover-heading {
color: @kv_text_secondary;
font-family: monospace;
font-size: 11px;
font-weight: 700;
letter-spacing: 1px;
padding: 6px 8px;
}
.popover-scroll,
.popover-scroll > viewport {
background-color: transparent;
border: 0;
box-shadow: none;
}
.popover-option {
color: @kv_text;
background-color: transparent;
background-image: none;
border-color: transparent;
border-radius: 7px;
min-height: 42px;
padding: 5px 10px;
}
.popover-option:hover {
color: #ffffff;
background-color: @kv_surface_hover;
background-image: none;
border-color: @kv_border;
}
.popover-option:checked,
.popover-option.active {
color: @kv_accent_bright;
background-color: alpha(@kv_accent, 0.1);
background-image: none;
border-color: alpha(@kv_accent, 0.34);
}
.shortcut-key {
color: #d9f9fc;
background-color: #10272d;
border: 1px solid #315d66;
border-bottom-color: #1c424b;
border-radius: 6px;
box-shadow: 0 2px 0 #031014;
font-family: monospace;
font-size: 11px;
font-weight: 700;
min-width: 24px;
padding: 4px 7px;
}
.toast {
color: @kv_text;
background-color: rgba(8, 26, 31, 0.97);
border: 1px solid @kv_border_strong;
border-radius: 10px;
box-shadow: 0 14px 40px rgba(0, 0, 0, 0.5);
padding: 9px 11px 9px 15px;
}
.toast-action {
color: @kv_accent_bright;
background-color: alpha(@kv_accent, 0.08);
background-image: none;
border-color: alpha(@kv_accent, 0.28);
min-height: 38px;
}
.toast-action:hover {
color: @kv_on_accent;
background-color: @kv_accent_bright;
background-image: none;
}
scrollbar {
background-color: transparent;
}
scrollbar slider {
background-color: #27525c;
border-radius: 99px;
min-width: 8px;
min-height: 24px;
}
scrollbar slider:hover {
background-color: #3b7580;
}
button:focus-visible,
entry:focus-visible,
scale:focus-visible,
.queue-row:focus-visible,
.popover-option:focus-visible,
paned.content > separator:focus-visible {
outline: 2px solid @kv_accent_bright;
outline-offset: 2px;
}
button:disabled,
entry:disabled,
scale:disabled,
.queue-row:disabled,
.popover-option:disabled,
.compact-action:disabled {
color: #668188;
border-color: #173239;
background-color: #091519;
background-image: none;
box-shadow: none;
opacity: 0.52;
}
button:disabled:hover,
.queue-action:disabled:hover,
.popover-option:disabled:hover,
.compact-action:disabled:hover {
color: #668188;
border-color: #173239;
background-color: #091519;
background-image: none;
box-shadow: none;
}
scale:disabled trough {
background-color: #142227;
}
scale:disabled highlight {
background-color: #48646a;
}
scale:disabled slider {
background-color: #73888c;
border-color: #40585e;
}
window.cinema-mode,
window.cinema-mode .app-shell,
window.cinema-mode .content {
background-color: #000000;
background-image: none;
}
window.cinema-mode .content {
padding: 0;
}
window.cinema-mode .topbar {
background-color: rgba(0, 5, 7, 0.92);
background-image: none;
border-bottom-color: alpha(@kv_accent_bright, 0.1);
padding: 7px 12px;
box-shadow: none;
}
window.cinema-mode .player-card {
background-color: #000000;
background-image: none;
border: 0;
border-radius: 0;
box-shadow: none;
padding: 0;
}
window.cinema-mode .viewport {
border: 0;
border-radius: 0;
box-shadow: none;
}
window.cinema-mode .player-chrome {
background-color: transparent;
background-image: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 4, 6, 0.9));
border: 0;
padding: 42px 28px 24px;
}
window.widget-mode .content {
padding: 4px;
}
window.widget-mode .card,
window.widget-mode .player-card {
border-radius: 8px;
box-shadow: 0 8px 26px rgba(0, 0, 0, 0.4);
}
window.widget-mode .player-card {
padding: 4px;
}
window.widget-mode .viewport {
border-radius: 6px;
}
window.widget-mode .topbar {
background-image: linear-gradient(105deg, #081b20 0%, #041014 58%, #02080a 100%);
border-bottom-color: alpha(@kv_accent_bright, 0.16);
padding: 5px 7px;
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22);
}
window.widget-mode .topbar button,
window.widget-mode .topbar .compact-action {
min-height: 34px;
min-width: 34px;
padding: 2px 8px;
}
window.widget-mode .brand-mark {
font-size: 10px;
padding: 4px 6px;
}
window.widget-mode .brand {
font-size: 1px;
letter-spacing: 0;
opacity: 0;
}
window.widget-mode .brand-subtitle {
font-size: 1px;
letter-spacing: 0;
opacity: 0;
}
window.widget-mode .mode-button {
font-size: 10px;
letter-spacing: 0.6px;
}
window.widget-mode .workspace-label {
font-size: 1px;
letter-spacing: 0;
opacity: 0;
}
window.widget-mode .add-video-label {
font-size: 1px;
letter-spacing: 0;
opacity: 0;
}
window.widget-mode .player-chrome {
background-color: transparent;
background-image: linear-gradient(180deg, rgba(0, 4, 6, 0.04), rgba(0, 4, 6, 0.92));
border-top-color: alpha(@kv_accent_bright, 0.08);
padding: 9px 8px 5px;
}
window.widget-mode .video-title {
font-size: 14px;
}
window.widget-mode .player-chrome .muted,
window.widget-mode .player-chrome .time-label {
font-size: 10px;
letter-spacing: 0.3px;
}
window.widget-mode .player-chrome .video-detail {
color: transparent;
font-size: 1px;
letter-spacing: 0;
min-height: 0;
opacity: 0;
}
window.widget-mode .transport {
background-color: rgba(2, 10, 13, 0.9);
border-color: alpha(@kv_border_strong, 0.58);
border-radius: 7px;
padding: 3px 4px;
}
window.widget-mode .chrome-revealer .transport {
box-shadow: 0 7px 20px rgba(0, 0, 0, 0.36);
}
window.widget-mode .transport button,
window.widget-mode .transport .speed-button {
min-height: 32px;
min-width: 32px;
padding: 3px 5px;
}
window.widget-mode .transport .speed-button {
min-width: 40px;
}
window.widget-mode .transport .primary-button {
min-height: 36px;
min-width: 36px;
padding: 3px;
}
window.widget-mode .player-chrome scale trough {
min-height: 4px;
}
window.widget-mode .player-chrome scale slider {
min-height: 10px;
min-width: 10px;
margin: -4px;
}
window.widget-mode .player-chrome scale:hover slider {
min-height: 12px;
min-width: 12px;
margin: -5px;
}
window.widget-mode.cinema-mode .content {
padding: 0;
}
window.widget-mode.cinema-mode .card,
window.widget-mode.cinema-mode .player-card {
border: 0;
border-radius: 0;
box-shadow: none;
}
window.widget-mode.cinema-mode .player-card {
padding: 0;
}
window.widget-mode.cinema-mode .viewport {
border: 0;
border-radius: 0;
box-shadow: none;
}
window.widget-mode.cinema-mode .player-chrome {
background-color: transparent;
background-image: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 4, 6, 0.9));
border: 0;
padding: 42px 28px 24px;
}
.ab-chip {
color: @kv_accent_bright;
background-color: alpha(@kv_accent, 0.12);
border: 1px solid @kv_border_strong;
border-radius: 7px;
font-family: monospace;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.8px;
padding: 8px 11px;
margin-right: 2px;
}
.jump-dialog {
background-color: @kv_surface;
border: 1px solid @kv_border;
border-radius: 12px;
}
.jump-content {
padding: 16px;
}
.jump-content entry {
background-color: @kv_surface_raised;
color: @kv_text;
border: 1px solid @kv_border;
border-radius: 8px;
padding: 9px 11px;
font-family: monospace;
}
.workspace-window,
.workspace-shell {
color: @kv_text;
background-color: @kv_background;
background-image: linear-gradient(145deg, @kv_surface 0%, @kv_background 56%, @kv_surface_raised 100%);
}
.workspace-header {
background-color: alpha(@kv_surface_raised, 0.96);
border-bottom: 1px solid @kv_border;
padding: 20px 22px 17px;
}
.workspace-title {
color: @kv_text;
font-size: 25px;
font-weight: 800;
letter-spacing: 0.2px;
}
.workspace-navigation {
background-color: alpha(@kv_background, 0.82);
border-bottom: 1px solid alpha(@kv_border_strong, 0.54);
padding: 8px 22px 0;
}
.workspace-switcher {
background-color: transparent;
}
.workspace-switcher button {
color: @kv_text_secondary;
background-color: transparent;
background-image: none;
border: 0;
border-bottom: 2px solid transparent;
border-radius: 0;
box-shadow: none;
font-family: monospace;
font-size: 11px;
font-weight: 800;
letter-spacing: 1.1px;
min-width: 116px;
padding: 7px 14px 10px;
}
.workspace-switcher button:hover {
color: @kv_text;
background-color: alpha(@kv_accent, 0.045);
}
.workspace-switcher button:checked {
color: @kv_accent_bright;
background-color: alpha(@kv_accent, 0.07);
border-bottom-color: @kv_accent;
}
.workspace-page {
padding: 20px 22px 22px;
}
.workspace-page scrolledwindow {
color: @kv_text;
background-color: alpha(@kv_background, 0.74);
border: 1px solid @kv_border;
border-radius: 10px;
box-shadow: inset 0 1px rgba(255, 255, 255, 0.018);
}
.workspace-list,
.workspace-list > row {
color: @kv_text;
background-color: transparent;
}
.workspace-row {
border: 1px solid transparent;
border-bottom-color: alpha(@kv_border, 0.6);
padding: 11px 12px;
transition: all 140ms ease-out;
}
.workspace-row:hover {
background-color: alpha(@kv_surface_hover, 0.6);
border-color: alpha(@kv_border_strong, 0.55);
}
.workspace-row.active {
background-color: alpha(@kv_surface_hover, 0.78);
border-color: alpha(@kv_accent, 0.34);
box-shadow: inset 3px 0 @kv_accent;
}
.workspace-row-icon,
.workspace-empty-icon {
color: @kv_accent_bright;
}
.workspace-row-title,
.workspace-empty-title {
color: @kv_text;
font-size: 15px;
font-weight: 750;
}
.workspace-row-action,
.primary-workspace-action {
color: @kv_accent_bright;
background-color: @kv_surface_hover;
background-image: none;
border-color: @kv_border_strong;
font-family: monospace;
font-size: 11px;
font-weight: 800;
letter-spacing: 0.8px;
}
.workspace-row-action:hover,
.primary-workspace-action:hover {
color: @kv_on_accent;
background-color: @kv_accent_bright;
background-image: none;
border-color: @kv_accent_bright;
}
.destructive-action:hover {
color: #210307;
background-color: @kv_error;
background-image: none;
border-color: #ffc3cb;
}
.workspace-empty {
color: @kv_text_secondary;
background-color: alpha(@kv_surface, 0.7);
border: 1px dashed @kv_border;
border-radius: 10px;
margin: 1px;
padding: 32px 24px;
}
.workspace-empty-icon {
background-color: alpha(@kv_accent, 0.055);
border: 1px solid @kv_border_strong;
border-radius: 10px;
padding: 12px;
}
.workspace-footer {
border-top: 1px solid alpha(@kv_border_strong, 0.42);
padding-top: 13px;
}
.jump-content entry:focus-within {
border-color: @kv_accent;
box-shadow: 0 0 0 1px @kv_accent;
}
.theme-scroll {
background-color: transparent;
border: 0;
box-shadow: none;
}
.theme-list {
padding: 1px;
}
.theme-row {
color: @kv_text;
background-color: alpha(@kv_surface, 0.76);
border: 1px solid @kv_border;
border-radius: 11px;
margin: 0 0 10px;
padding: 0;
transition: all 160ms ease-out;
}
.theme-row:hover {
background-color: @kv_surface_raised;
border-color: @kv_border_strong;
box-shadow: 0 8px 26px rgba(0, 0, 0, 0.24);
}
.theme-row.active {
background-color: alpha(@kv_accent, 0.075);
border-color: alpha(@kv_accent, 0.58);
box-shadow: inset 3px 0 @kv_accent, 0 0 24px alpha(@kv_accent, 0.07);
}
.theme-row-content {
padding: 12px 13px;
}
.theme-preview {
background-color: #071317;
background-image: linear-gradient(145deg, #10272d, #020709);
border: 1px solid #21606c;
border-radius: 9px;
box-shadow: inset 0 1px rgba(255, 255, 255, 0.045);
padding: 8px;
transition: all 180ms ease-out;
}
.theme-row:hover .theme-preview {
box-shadow: inset 0 1px rgba(255, 255, 255, 0.06), 0 5px 18px rgba(0, 0, 0, 0.3);
}
.theme-preview-top {
min-height: 11px;
}
.theme-preview-dot {
background-color: #16d9ee;
border-radius: 99px;
box-shadow: 0 0 8px rgba(22, 217, 238, 0.46);
min-height: 7px;
min-width: 7px;
}
.theme-preview-trace {
background-color: rgba(108, 243, 255, 0.16);
border-radius: 99px;
margin: 2px 0;
}
.theme-preview-stage {
background-color: rgba(1, 4, 5, 0.66);
border: 1px solid rgba(33, 96, 108, 0.7);
border-radius: 6px;
margin-top: 7px;
padding: 7px;
}
.theme-preview-beam {
background-color: #6cf3ff;
border-radius: 99px;
min-height: 5px;
margin-right: 25px;
}
.theme-preview-rail {
background-color: rgba(108, 243, 255, 0.2);
border-radius: 99px;
min-height: 3px;
margin-right: 8px;
}
.theme-aurora {
background-color: #071812;
background-image: linear-gradient(145deg, #103127, #020a07);
border-color: #287a62;
}
.theme-aurora .theme-preview-dot { background-color: #43e6a1; box-shadow: 0 0 8px rgba(67, 230, 161, 0.48); }
.theme-aurora .theme-preview-trace { background-color: rgba(170, 255, 212, 0.17); }
.theme-aurora .theme-preview-stage { background-color: rgba(1, 6, 4, 0.66); border-color: rgba(40, 122, 98, 0.72); }
.theme-aurora .theme-preview-beam { background-color: #aaffd4; }
.theme-aurora .theme-preview-rail { background-color: rgba(67, 230, 161, 0.24); }
.theme-ember {
background-color: #1a0c08;
background-image: linear-gradient(145deg, #382018, #0d0503);
border-color: #965442;
}
.theme-ember .theme-preview-dot { background-color: #ff7657; box-shadow: 0 0 8px rgba(255, 118, 87, 0.48); }
.theme-ember .theme-preview-trace { background-color: rgba(255, 192, 122, 0.18); }
.theme-ember .theme-preview-stage { background-color: rgba(8, 3, 2, 0.7); border-color: rgba(150, 84, 66, 0.72); }
.theme-ember .theme-preview-beam { background-color: #ffc07a; }
.theme-ember .theme-preview-rail { background-color: rgba(255, 118, 87, 0.24); }
.theme-ultraviolet {
background-color: #140b1d;
background-image: linear-gradient(145deg, #2b1b3d, #08040d);
border-color: #7550a0;
}
.theme-ultraviolet .theme-preview-dot { background-color: #b58cff; box-shadow: 0 0 8px rgba(181, 140, 255, 0.5); }
.theme-ultraviolet .theme-preview-trace { background-color: rgba(240, 200, 255, 0.18); }
.theme-ultraviolet .theme-preview-stage { background-color: rgba(4, 2, 7, 0.7); border-color: rgba(117, 80, 160, 0.74); }
.theme-ultraviolet .theme-preview-beam { background-color: #f0c8ff; }
.theme-ultraviolet .theme-preview-rail { background-color: rgba(181, 140, 255, 0.25); }
.theme-moonstone {
background-color: #0d171c;
background-image: linear-gradient(145deg, #1b2f38, #05090c);
border-color: #526f7b;
}
.theme-moonstone .theme-preview-dot { background-color: #91b3c4; box-shadow: 0 0 8px rgba(145, 179, 196, 0.44); }
.theme-moonstone .theme-preview-trace { background-color: rgba(214, 237, 245, 0.16); }
.theme-moonstone .theme-preview-stage { background-color: rgba(2, 5, 7, 0.7); border-color: rgba(82, 111, 123, 0.74); }
.theme-moonstone .theme-preview-beam { background-color: #d6edf5; }
.theme-moonstone .theme-preview-rail { background-color: rgba(145, 179, 196, 0.22); }
.theme-mood {
color: @kv_accent_bright;
font-family: monospace;
font-size: 10px;
font-weight: 800;
letter-spacing: 1.1px;
}
.theme-title {
color: @kv_text;
font-size: 17px;
font-weight: 800;
}
.theme-select {
color: @kv_accent_bright;
background-color: alpha(@kv_accent, 0.09);
background-image: none;
border-color: @kv_border_strong;
font-family: monospace;
font-size: 10px;
font-weight: 800;
letter-spacing: 0.8px;
min-width: 94px;
}
.theme-select:hover {
color: @kv_on_accent;
background-color: @kv_accent_bright;
background-image: none;
border-color: @kv_accent_bright;
box-shadow: 0 4px 18px alpha(@kv_accent, 0.22);
}
.theme-select.selected {
color: @kv_accent_bright;
background-color: alpha(@kv_accent, 0.12);
background-image: none;
border-color: alpha(@kv_accent, 0.38);
box-shadow: inset 0 0 0 1px alpha(@kv_accent, 0.08);
}
.theme-select.selected:hover {
color: @kv_accent_bright;
background-color: alpha(@kv_accent, 0.16);
border-color: alpha(@kv_accent, 0.48);
}
@keyframes kv-theme-pulse {
0% { box-shadow: 0 0 5px alpha(@kv_accent, 0.25); }
50% { box-shadow: 0 0 13px alpha(@kv_accent, 0.68); }
100% { box-shadow: 0 0 5px alpha(@kv_accent, 0.25); }
}
.theme-row.active .theme-preview-dot {
animation: kv-theme-pulse 2200ms ease-in-out infinite;
}
.appearance-note {
color: @kv_text_secondary;
background-color: alpha(@kv_surface_hover, 0.46);
border: 1px solid @kv_border;
border-radius: 9px;
padding: 10px 12px;
}
.appearance-note image {
color: @kv_accent_bright;
}
.viewer-settings-page {
padding-bottom: 20px;
}
.viewer-page-scroll,
.viewer-page-scroll > viewport {
background-color: transparent;
border: 0;
box-shadow: none;
}
.preference-panel {
background-color: alpha(@kv_surface, 0.76);
border: 1px solid @kv_border;
border-radius: 11px;
box-shadow: inset 0 1px rgba(255, 255, 255, 0.02);
}
.preference-row {
border-bottom: 1px solid alpha(@kv_border, 0.72);
padding: 13px 14px;
transition: all 150ms ease-out;
}
.preference-row:last-child {
border-bottom-color: transparent;
}
.preference-row:hover {
background-color: alpha(@kv_surface_hover, 0.44);
}
.preference-icon {
color: @kv_accent_bright;
background-color: alpha(@kv_accent, 0.08);
border: 1px solid @kv_border_strong;
border-radius: 8px;
padding: 8px;
}
.preference-title {
color: @kv_text;
font-size: 15px;
font-weight: 750;
}
.preference-toggle {
color: @kv_text_tertiary;
background-color: @kv_surface_raised;
background-image: none;
border-color: @kv_border;
font-family: monospace;
font-size: 10px;
font-weight: 800;
letter-spacing: 0.7px;
min-width: 96px;
}
.preference-toggle:checked {
color: @kv_on_accent;
background-color: @kv_accent;
background-image: linear-gradient(145deg, @kv_accent_bright, @kv_accent);
border-color: @kv_accent_bright;
box-shadow: 0 4px 16px alpha(@kv_accent, 0.18);
}
.viewer-control-grid {
min-height: 154px;
}
.preference-card {
background-color: alpha(@kv_surface, 0.76);
border: 1px solid @kv_border;
border-radius: 11px;
padding: 13px 14px;
transition: all 150ms ease-out;
}
.preference-card:hover {
background-color: @kv_surface_raised;
border-color: @kv_border_strong;
box-shadow: 0 7px 22px rgba(0, 0, 0, 0.2);
}
.preference-card .preference-icon {
background-color: transparent;
border: 0;
border-radius: 0;
padding: 0;
}
.segmented-control {
background-color: @kv_background;
border: 1px solid @kv_border;
border-radius: 8px;
padding: 3px;
}
.segment-button {
color: @kv_text_secondary;
background-color: transparent;
background-image: none;
border: 1px solid transparent;
border-radius: 6px;
font-family: monospace;
font-size: 10px;
font-weight: 800;
letter-spacing: 0.65px;
min-height: 34px;
min-width: 58px;
padding: 2px 9px;
}
.segment-button:hover {
color: @kv_text;
background-color: alpha(@kv_surface_hover, 0.72);
background-image: none;
border-color: @kv_border;
}
.segment-button:checked {
color: @kv_on_accent;
background-color: @kv_accent;
background-image: linear-gradient(145deg, @kv_accent_bright, @kv_accent);
border-color: @kv_accent_bright;
box-shadow: 0 3px 13px alpha(@kv_accent, 0.18);
}
window.reduced-motion * {
animation: none;
transition: none;
}