/* Keep Gaia geometry, icons and media intact; change the surfaces and ink. */ :root[data-vulpes-theme="dark"] { color-scheme: dark; --vulpes-surface: #18232e; --vulpes-raised: #253442; --vulpes-text: #f1f5f9; --vulpes-muted: #b8c8d8; --vulpes-line: #526272; --link-color: #79ceff; --header-background: var(--vulpes-raised); --header-color: var(--vulpes-text); --header-title-color: var(--vulpes-text); --header-button-color: var(--vulpes-text); --header-icon-color: var(--vulpes-text); --header-action-button-color: #79ceff; --header-disabled-button-color: var(--vulpes-muted); } :root[data-vulpes-theme="dark"]:is([data-vulpes-app="settings"], [data-vulpes-app="communications"], [data-vulpes-app="sms"], [data-vulpes-app="email"], [data-vulpes-app="calendar"], [data-vulpes-app="ringtones"]) { --background: var(--vulpes-surface); --text-color: var(--vulpes-text); --title-color: var(--vulpes-text); --label-color: var(--vulpes-text); background: var(--vulpes-surface) !important; color: var(--vulpes-text) !important; } :root[data-vulpes-theme="dark"] gaia-header { --header-background: var(--vulpes-raised) !important; --header-title-color: var(--vulpes-text) !important; --header-action-button-color: #79ceff !important; } #display #vulpes-theme-row { display: block !important; min-height: 10rem; height: auto !important; padding-bottom: 1rem; } #vulpes-theme-row > p { height: auto; line-height: 2.4rem; padding: 1rem 1.5rem; transform: none; } :root[data-vulpes-theme="dark"][data-vulpes-app="settings"] h2 { background-color: var(--vulpes-surface) !important; } :root[data-vulpes-theme="dark"]:is([data-vulpes-app="settings"], [data-vulpes-app="communications"], [data-vulpes-app="sms"], [data-vulpes-app="email"], [data-vulpes-app="calendar"], [data-vulpes-app="ringtones"]) :is(body, section, [role="region"], [data-type="list"], .view, .card, #main, #messages-container, #thread-list, #contacts-list, #view-contacts-list, #no-contacts, #call-log-container, #messages-compose-form) { background-color: var(--vulpes-surface) !important; color: var(--vulpes-text) !important; } :root[data-vulpes-theme="dark"] :is(input:not([type="range"]):not([type="checkbox"]):not([type="radio"]), textarea, select, [contenteditable="true"]) { background-color: var(--vulpes-raised) !important; color: var(--vulpes-text) !important; border-color: var(--vulpes-line) !important; caret-color: #79ceff; } :root[data-vulpes-theme="dark"] :is(input, textarea)::placeholder { color: var(--vulpes-muted) !important; } :root[data-vulpes-theme="dark"][data-vulpes-app="settings"] :is(li, li > a, li > a > span, li > p, li > small, label, .explanation, h1, h2) { color: var(--vulpes-text) !important; border-color: var(--vulpes-line) !important; } :root[data-vulpes-theme="dark"][data-vulpes-app="settings"] :is(ul, header, .button, button:not(.danger)) { background-color: var(--vulpes-raised) !important; color: var(--vulpes-text) !important; } :root[data-vulpes-theme="dark"][data-vulpes-app="communications"] :is(.contact-item, .contact-item a, .contact-item p, #call-log-container li, #call-log-container a, #call-log-container p, .phone-number, #keypad-phone-number, .keypad-key) { color: var(--vulpes-text) !important; } :root[data-vulpes-theme="dark"][data-vulpes-app="communications"] #phone-number-view-container { background-color: var(--vulpes-raised) !important; } :root[data-vulpes-theme="dark"][data-vulpes-app="communications"] :is(.keypad-subicon, [role="tab"]) { color: #79ceff !important; } :root[data-vulpes-theme="dark"][data-vulpes-app="communications"] [role="tab"][aria-selected="true"] { background-color: var(--vulpes-raised) !important; } :root[data-vulpes-theme="dark"][data-vulpes-app="communications"] #no-contacts :is(p, .info) { color: var(--vulpes-muted) !important; } :root[data-vulpes-theme="dark"][data-vulpes-app="communications"] #no-contacts { background-blend-mode: soft-light; } :root[data-vulpes-theme="dark"][data-vulpes-app="sms"] :is(.threadlist-item, .threadlist-item a, .threadlist-item p, .time, .name, .body-text) { color: var(--vulpes-text) !important; } :root[data-vulpes-theme="dark"][data-vulpes-app="sms"] .bubble { background-color: var(--vulpes-raised) !important; color: var(--vulpes-text) !important; } :root[data-vulpes-theme="dark"] :is([data-type="confirm"], [data-type="action"]) :is(section, menu, header, p) { background-color: var(--vulpes-raised) !important; color: var(--vulpes-text) !important; } :root[data-vulpes-theme="dark"][data-vulpes-app="system"] :is(#utility-tray, #notifications-container) { background-color: var(--vulpes-surface) !important; color: var(--vulpes-text) !important; } /* Keep the message and its surface paired, including lazily loaded Gaia dialogs. */ :root #vulpes-gaia-notice, :root #vulpes-gaia-notice > section, :root #vulpes-gaia-notice > section > p { background-color: #f4f4f4 !important; color: #202b33 !important; } :root[data-vulpes-theme="dark"] #vulpes-gaia-notice, :root[data-vulpes-theme="dark"] #vulpes-gaia-notice > section, :root[data-vulpes-theme="dark"] #vulpes-gaia-notice > section > p { background-color: var(--vulpes-surface) !important; color: var(--vulpes-text) !important; } :root[data-vulpes-app="settings"] p[data-vulpes-unavailable] { background-color: #f4f4f4 !important; color: #202b33 !important; } :root[data-vulpes-theme="dark"][data-vulpes-app="settings"] p[data-vulpes-unavailable] { background-color: var(--vulpes-surface) !important; color: var(--vulpes-text) !important; } /* Shared compact home: three columns, original icons, reversible wallpaper veil. */ html[data-vulpes-layout="compact"][data-vulpes-app="homescreen"] { --compact-cell: round(down, calc((100vw - 12px) / 3), 1px); } html[data-vulpes-layout="compact"][data-vulpes-app="homescreen"] body { background-color: rgba(5, 15, 31, .72); } html[data-vulpes-layout="compact"][data-vulpes-app="homescreen"] #apps .icon-container { width: var(--compact-cell); height: 74px; } html[data-vulpes-layout="compact"][data-vulpes-app="homescreen"] #apps gaia-app-icon { width: 52px; left: round(down, calc((var(--compact-cell) - 52px) / 2), 1px); border: 2px solid transparent; --vulpes-label-width: calc(var(--compact-cell) - 4px); --vulpes-label-offset: round(down, calc((48px - var(--vulpes-label-width)) / 2), 1px); --vulpes-icon-display: block; --vulpes-icon-title-position: absolute; --vulpes-icon-title-clip: inset(50%); font-size: 12px; line-height: 16px; transform: none; } html[data-vulpes-layout="compact"][data-vulpes-app="homescreen"] #apps-panel > .scrollable { padding-top: 2px; padding-bottom: 0; } /* A single applications panel; saved pinned pages remain available in classic mode. */ html[data-vulpes-layout="compact"][data-vulpes-app="homescreen"] :is(#page-indicator-header, #pages-panel, #shadow) { display: none; } html[data-vulpes-layout="compact"][data-vulpes-app="homescreen"] #panels { height: calc(100vh - 52px); overflow-x: hidden; scroll-snap-type: none; } html[data-vulpes-layout="compact"][data-vulpes-app="system"] #homescreen { --rocketbar-urlbar-height: 0px; } html[data-vulpes-layout="compact"][data-vulpes-app="system"] #homescreen > .chrome { display: none; } /* Gaia finishes opening/closing on animationend: retain that event, skip the effect. */ html[data-vulpes-motion="reduced"][data-vulpes-app="system"] .appWindow, html[data-vulpes-motion="reduced"][data-vulpes-app="homescreen"] :is(gaia-app-icon, .gaia-container-child, .icon-container, .scrollable, #panels) { animation-duration: .001s !important; animation-delay: 0s !important; transition-duration: .001s !important; transition-delay: 0s !important; scroll-behavior: auto !important; } /* Enabled by the Nokia adapter, independent of the shared compact layout. * Keep a nonzero duration so Gaia's transitionend navigation still completes. */ html[data-vulpes-motion="reduced"], html[data-vulpes-motion="reduced"] *, html[data-vulpes-motion="reduced"] *::before, html[data-vulpes-motion="reduced"] *::after { transition-duration: .001s !important; transition-delay: 0s !important; scroll-behavior: auto !important; } html[data-vulpes-motion="reduced"][data-vulpes-layout="compact"][data-vulpes-app="system"] #screen:has(#homescreen.active):not(.rocketbar-focused):not(.utility-tray):not(.locked) #statusbar { background: rgba(5, 15, 31, .72) !important; } #vulpes-compact-app-name { display: none; } html[data-vulpes-layout="compact"][data-vulpes-app="homescreen"] #vulpes-compact-app-name { display: flex; align-items: center; justify-content: center; box-sizing: border-box; height: 52px; padding: 2px 10px; color: white; font: 500 20px/24px FiraSans, sans-serif; text-align: center; overflow-wrap: anywhere; overflow: hidden; text-shadow: 0 1px 2px #000; } html[data-vulpes-layout="compact"][data-vulpes-app="homescreen"] gaia-app-icon[data-vulpes-compact-selected] { outline: 2px solid #00aaff !important; outline-offset: -2px !important; border-radius: 8px; } /* Keep Gaia's dial pad and controls inside a feature-phone viewport. */ @media (max-width: 320px) and (max-height: 400px) { html[data-vulpes-layout="compact"][data-vulpes-app="communications"] #phone-number-view-container { height: 48px; } html[data-vulpes-layout="compact"][data-vulpes-app="communications"] #phone-number-view-container .phone-number-view-wrapper-input { margin-bottom: 0; padding: 0 8px; min-width: 0; } html[data-vulpes-layout="compact"][data-vulpes-app="communications"] #phone-number-view { font-size: 24px !important; } html[data-vulpes-layout="compact"][data-vulpes-app="communications"] #keypad-delete { margin-bottom: 0; padding: 0 8px 0 0; } html[data-vulpes-layout="compact"][data-vulpes-app="communications"] #keyboard-container { height: calc(100% - 48px); display: flex; flex-direction: column; padding: 0 6px; box-sizing: border-box; } html[data-vulpes-layout="compact"][data-vulpes-app="communications"] #keypad { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(0, 1fr)); flex: 1; min-height: 0; height: auto; } html[data-vulpes-layout="compact"][data-vulpes-app="communications"] .keypad-row { display: contents; } html[data-vulpes-layout="compact"][data-vulpes-app="communications"] .keypad-key { display: flex; align-items: center; justify-content: center; gap: 4px; padding: 0; height: auto; font-size: 30px; line-height: 1; } html[data-vulpes-layout="compact"][data-vulpes-app="communications"] .keypad-key :is(span,em) { width: auto; margin: 0; } html[data-vulpes-layout="compact"][data-vulpes-app="communications"] .keypad-key em { font-size: 10px; } html[data-vulpes-layout="compact"][data-vulpes-app="communications"] .keypad-key .sharp { font-size: 30px; line-height: 1; } html[data-vulpes-layout="compact"][data-vulpes-app="communications"] #keypad-callbar { flex: 0 0 40px; height: 40px; } html[data-vulpes-layout="compact"][data-vulpes-app="communications"] :is(.keypad-callbar-button,#keypad-callbar-call-action) { height: 32px; background-size: 32px; } } #keypad-callbar-call-action[aria-busy="true"] { opacity: .5; } #vulpes-cover-settings { display: block !important; height: auto !important; padding: 0 0 1rem; } #vulpes-cover-settings h2 { margin: 1rem 0; height: auto; overflow: visible; } #vulpes-cover-settings label { display: block; height: auto !important; padding: .4rem 0; overflow: visible; } #vulpes-cover-settings label > span { display: block; margin: 0; width: auto; line-height: 1.5; white-space: normal; font-size: 1.6rem; overflow: visible; } #vulpes-cover-settings :is(input,select) { position: static; width: 100%; box-sizing: border-box; margin: 0; } #vulpes-cover-settings .vulpes-cover-preview { background: #04060b; padding: 1rem; text-align: center; overflow-wrap: anywhere; height: auto; font-size: 1.4rem; line-height: 1.5; }