@font-face {
	font-family: 'JetBrains Mono';
	src: url('/snapshot/0.0.34/fonts/JetBrainsMono/JetBrainsMono-Regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'JetBrains Mono';
	src: url('/snapshot/0.0.34/fonts/JetBrainsMono/JetBrainsMono-Bold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'JetBrains Mono';
	src: url('/snapshot/0.0.34/fonts/JetBrainsMono/JetBrainsMono-Italic.woff2') format('woff2');
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: 'JetBrains Mono';
	src: url('/snapshot/0.0.34/fonts/JetBrainsMono/JetBrainsMono-BoldItalic.woff2') format('woff2');
	font-weight: 700;
	font-style: italic;
	font-display: swap;
}

:root {
    /* Legacy variable names. A large amount of per-tab CSS still reads
       these, so rather than renaming every call site they are now aliases
       onto the theme-aware design tokens in app.css. That keeps the old
       and new stylesheets in step and, more importantly, makes the legacy
       CSS follow a theme switch on its own instead of needing a parallel
       set of hard-coded overrides in dark-theme.css. */
    --accent: var(--color-accent-500);
    --darkAccent: var(--color-accent-400);
    --subtleAccent: var(--color-neutral-400);
    --superSubtleAccent: var(--color-neutral-300);
    --quietText: var(--color-header-fg);
    --quietHeader: var(--color-header-bg);
    --defaultText: var(--color-text);
    --subtleText: var(--color-text-muted);
    --mutedText: var(--color-text-muted);
    --linkText: var(--color-accent-500);
    --error: var(--color-status-bad);
    --attention: #f07050;
    --boxBackground: var(--color-surface);
    --alternativeBackground: var(--color-surface-sunken);
    --sideBackground: var(--color-surface);
    --ledAccent: var(--color-neutral-400);
    --ledBackground: var(--color-neutral-200);
    --gimbalBackground: var(--color-neutral-200);
    --gimbalCrosshair: var(--color-neutral-400);
    --switcherysecond: var(--color-neutral-400);
    --button-border: var(--color-border);
    --button-background: var(--color-btn-bg);
    --hoverButton-border: var(--color-border);
    --hoverButton-background: var(--color-btn-bg-hover);
    --pushedButton-fontColor: var(--color-btn-fg);
    --pushedButton-border: var(--color-border);
    --pushedButton-background: var(--color-btn-bg-active);
    /* Only dark-theme.css used to define this, which left it undefined
       (and so silently transparent) in the light theme. */
    --backgroundColor: var(--color-surface);

    /* App chrome: the header bar and the side nav rail. Deliberately dark
       in BOTH themes - the nav icons and the logo are white artwork, and
       a dark rail framing a light workspace is what gives the window its
       shape. Only the depth shifts between themes. */
    --chrome-bg: hsl(220, 9%, 13%);
    --chrome-bg-raised: hsl(220, 9%, 18%);
    --chrome-bg-sunken: hsl(220, 10%, 9%);
    --chrome-fg: hsl(220, 12%, 87%);
    --chrome-fg-muted: hsl(220, 8%, 56%);
    --chrome-border: hsl(220, 10%, 22%);
    --chrome-hover: rgba(255, 255, 255, 0.07);

    --font-ui: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}

:root[data-theme="dark"] {
    --chrome-bg: hsl(220, 9%, 9%);
    --chrome-bg-raised: hsl(220, 9%, 14%);
    --chrome-bg-sunken: hsl(220, 10%, 6%);
    --chrome-border: hsl(220, 10%, 18%);
}

* {
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
    outline: none;
    user-select: none;
    -webkit-user-drag: none;
    -webkit-app-region: no-drag;
}

*[draggable="true"] {
    -webkit-user-drag: element;
}

html, body {
    height: 100%;
}

body {
    font-family: var(--font-ui);
    font-size: 12px;
    color: var(--color-text);
    /* The shell backdrop, not a page background: the header bar and any
       part of the window not covered by #content show through here. */
    background-color: var(--chrome-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

button,
input,
select,
textarea {
    font: inherit;
}

input,
select,
textarea {
    font-weight: 400;
}

/* Global form-control baseline.
 *
 * _global.scss styles inputs and selects too, but Svelte only emits those
 * rules into components that have a <style> block of their own - and it
 * scopes them to that component. <Select> has no styles at all, so every
 * dropdown rendered through it (plus every <select> in the legacy tab
 * markup) fell through to the browser default. These rules are the
 * unscoped counterpart, so a control looks the same wherever it is
 * declared. Per-tab rules still win on specificity, so the sizing that
 * individual tabs set for themselves is untouched.
 */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
select,
textarea {
    color: var(--color-text);
    background-color: var(--color-input-bg);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-sm);
    transition: border-color var(--animation-speed),
                box-shadow var(--animation-speed);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus,
select:focus,
textarea:focus {
    outline: none;
    border-color: var(--color-border-accent);
    box-shadow: 0 0 0 3px var(--color-focus-ring);
}

input:disabled,
select:disabled,
textarea:disabled {
    color: var(--color-text-disabled);
    background-color: var(--color-input-bg-disabled);
}

select {
    padding: 2px 26px 2px 8px;
    cursor: pointer;
    /* Native select chrome is the most dated-looking control in the app,
       so the arrow is drawn instead. A data: URI cannot inherit
       currentColor, hence the fixed mid-grey - it stays legible on both
       themes' input fills. */
    -webkit-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5' fill='none' stroke='%238a8f98' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 8px center;
    background-size: 12px 12px;
}

select:disabled {
    cursor: not-allowed;
}

/* The header dropdowns paint their own chrome-coloured surface and draw
   their own chevron on the wrapper (style_lists.css); keep this baseline
   out of their way. */
.dropdown-select {
    background-image: none;
}

::backdrop {
    background-image: none;
    background-color: rgba(8, 10, 14, 0.55);
    backdrop-filter: blur(3px);
}

a {
    text-decoration: none;
    color: var(--linkText);
    font-weight: 600;
    transition: color var(--animation-speed);
}

a:hover {
    text-decoration: none;
    color: var(--color-accent-400);
}

a.disabled {
    pointer-events: none;
    cursor: default;
    color: var(--color-text-disabled);
}

.background_paper {
    background-size: 100%;
    background-image: url(/snapshot/0.0.34/images/paper.png);
    background-position: center;
}

/* Help-Icon  */
.helpicon {
    float: right;
    height: 14px;
    width: 14px;
    margin-top: 3px;
    margin-right: 5px;
    display: block;
    opacity: 0.35;
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_info_grey.svg);
    background-size: contain;
    background-position: center;
    transition: opacity var(--animation-speed);
}

.helpicon:hover {
    opacity: 1;
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_info_orange.svg);
}

.gui_box_titlebar .helpicon {
    margin-top: 7px;
    margin-right: 7px;
}

.cf_doc_version_bt a {
    padding: 1px 10px;
    margin-top: -45px;
    background-color: var(--color-btn-bg);
    border-radius: var(--radius-pill);
    border: 1px solid transparent;
    color: var(--color-btn-fg);
    float: right;
    font-weight: 700;
    font-size: 10px;
    line-height: 18px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    transition: background-color var(--animation-speed), color var(--animation-speed);
    display: block;
}

.cf_doc_version_bt a:hover {
    background-color: var(--hoverButton-background);
    border-color: var(--hoverButton-border);
}

.cf_doc_version_bt a:active {
    background-color: var(--pushedButton-background);
    border-color: var(--pushedButton-border);
}

/* documentation button end  */
input[type="number"]::-webkit-inner-spin-button {
    opacity: 1; /* required for chromium 33+ beta */
    margin-left: 5px;
}

.clear-both {
    clear: both;
}

.left {
    float: left;
}

.right {
    float: right;
}

.full-width {
    width: 100%;
}

.full-height {
    height: 100%;
}

.margin-top {
    margin-top: 20px;
}

.margin-bottom {
    margin-bottom: 20px;
}

.margin-top5 {
    margin-top: 5px;
}

.message-positive {
    color: var(--accent) !important;
}

.message-negative {
    color: var(--error) !important;
    font-weight: bold !important;
}

.message-negative-italic {
    color: var(--error) !important;
    font-weight: bold !important;
    font-style: italic;
}

.attention {
    background-color: var(--attention) !important;
}

/** Zoom info box **/
#zoom-box {
    margin: 1px;
    padding: 10px 25px;
    width: 100px;
    border: 1px solid var(--button-border);
    border-radius: 3px;
    color: #000;
    background-color: #fff;
    font-weight: normal;
    font-size: 15px;
    text-align: center;
    position: absolute;
    left: 45%;
    top: 0;
    z-index: 1000;
}


/** Main wrapper **/
#main-wrapper {
    padding: 0;
    height: 100%;
}


/** Background **/
#background {
    background: rgba(0, 0, 0, 0.5);
    position: fixed;
    z-index: 1500;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: none;
}

#side_menu_swipe {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 15px;
    height: 100%;
    z-index: 1999;
}
@media all and (max-width: 575px) {
    #side_menu_swipe {
        display: block;
    }
}


/** Header **/
.headerbar {
    height: 115px;
    background-color: var(--chrome-bg);
    border-bottom: 1px solid var(--chrome-border);
    display: flex;
    align-items: center;
    padding: 0 20px;
    position: relative;
    z-index: 10;
}

#menu_btn, #reveal_btn {
    display: none;
    width: 32px;
    height: 32px;
    font-size: 18px;
    color: var(--chrome-fg);
    line-height: 32px;
    text-align: center;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background-color var(--animation-speed), color var(--animation-speed);
}

#menu_btn:hover, #reveal_btn:hover {
    background-color: var(--chrome-hover);
    color: #fff;
}

#menu_btn {
    margin-right: 15px;
}

#reveal_btn {
    margin-left: 15px;
}

#port-picker {
    display: flex;
    align-items: center;
    margin-left: auto;
}

#portsinput {
    width: 360px;
    margin-right: 15px;
}

#portsinput .dropdown {
    margin-bottom: 5px;
}

#auto-connect-and-baud {
    float: right;
}

#auto-connect-switch, #show-all-ports-switch{
    width: 110px;
    float: left;
    margin-top: 4px;
    margin-left: 5px;
    margin-right: 20px;
}

#baudselect {
    width: 80px;
    float: right;
    margin-right: 2px;
}

#port-picker .auto_connect, #port-picker .show_all_ports, .gray {
    color: var(--chrome-fg-muted);
    font-size: 11px;
}

#firmware-virtual-option {
    height: 76px;
    width: 180px;
    margin-right: 15px;
    margin-top: 16px;
    display: none;
}

#port-override-option {
    height: 76px;
    margin-top: 24px;
    margin-right: 15px;
}

#port-override-option label {
    background-color: var(--chrome-bg-sunken);
    border: 1px solid var(--chrome-border);
    border-radius: var(--radius-sm);
    padding: 4px 6px;
    color: var(--chrome-fg-muted);
    font-size: 11px;
}

#port-override {
    background-color: var(--chrome-bg-raised);
    border: 1px solid var(--chrome-border);
    color: var(--chrome-fg);
    width: 140px;
    margin-left: 4px;
    padding: 1px 6px;
    border-radius: var(--radius-xs);
    height: 18px;
    font-size: 12px;
}

#header_btns {
    display: flex;
    align-items: center;
}

.open_firmware_flasher {
    margin-left: 20px;
}

.open_firmware_flasher, .connect_controls {
    position: relative;
    width: 80px;
    text-align: center;
    height: 84px;
}

.firmware_b, .connect_b {
    width: 52px;
    height: 52px;
    margin: 0 14px;
}

@media all and (min-width: 1125px) {
    .open_firmware_flasher, .connect_controls {
        width: 100px;
    }

    .firmware_b, .connect_b {
        margin: 0 24px;
    }
}

.firmware_b a.flash, .connect_b a.connect {
    background-color: var(--chrome-bg-raised);
    border: 1px solid var(--chrome-border);
    background-repeat: no-repeat;
    height: 50px;
    width: 50px;
    border-radius: 100px;
    float: left;
    transition: background-color var(--animation-speed),
                border-color var(--animation-speed),
                box-shadow var(--animation-speed),
                transform var(--animation-speed);
}

.firmware_b a.flash {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_flasher_white.svg);
    background-size: 30px;
    background-position: center 10px;
}

.connect_b a.connect {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_usb2_white.svg);
    background-size: 44px;
    background-position: center 6px;
}

.firmware_b a.flash.disabled, .connect_b a.connect.disabled {
    border-color: transparent;
    background-color: transparent;
    opacity: 0.4;
    cursor: default;
    pointer-events: none;
}

.firmware_b a.flash:hover, .connect_b a.connect:hover {
    background-color: var(--color-accent-500);
    border-color: var(--color-accent-500);
    box-shadow: 0 0 0 4px var(--color-accent-soft);
}

.firmware_b a.flash:active, .connect_b a.connect:active {
    background-color: var(--color-accent-400);
    border-color: var(--color-accent-400);
    transform: scale(0.96);
}

.firmware_b a.flash.active {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_flasher_white.svg);
}

.connect_b a.connect.active {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_usb1_white.svg);
}

.flash_state, .connect_state {
    color: var(--chrome-fg);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 8px 12px 0;
}

.header-wrapper {
    display: flex;
    /* Wrap instead of squeezing the three status boxes below their real
       content width. Without this, on a window narrower than desktop but
       still well above the 575px "phone" breakpoint below (where
       .header-wrapper is hidden behind the reveal toggle entirely), plain
       flex shrinking could compress #sensor-status narrower than the
       165px its five floated sensor icons need - and since #sensor-status
       has a fixed height (not min-height), the icons that no longer fit
       on one row spill out below the box instead of growing it, visibly
       overlapping the page content underneath the header. flex-wrap here
       plus flex-shrink:0 below (so a squeezed box wraps to its own line
       instead of compressing) fixes that without touching the 575px
       phone layout at all - on any window wide enough for these to fit
       on one line (the common case), this changes nothing. */
    flex-wrap: wrap;
}

#quad-status_wrapper,
#sensor-status,
#dataflash_wrapper_global {
    flex-shrink: 0;
}

#sensor-status {
    margin-right: 10px;
    line-height: 2px;
    height: 67px;
    border-radius: var(--radius-md);
    border: 1px solid var(--chrome-border);
    background-color: var(--chrome-bg-raised);
    overflow: hidden;
}

@media all and (min-width: 1125px) {
    #sensor-status {
        margin-right: 20px;
    }
}

#sensor-status li {
    float: left;
    height: 67px;
    width: 33px;
    line-height: 18px;
    text-align: center;
    border: 0;
    /* A single hairline between cells instead of the old four-sided
       bevel - the group already has its own outer border and radius. */
    border-left: 1px solid var(--chrome-border);
    background-color: transparent;
    padding-left: 5px;
    padding-right: 5px;
}

.gyroicon, .accicon, .magicon, .gpsicon, .baroicon {
    background-repeat: no-repeat;
    height: 30px;
    margin-top: 3px;
    width: 100%;
    padding-top: 40px;
    color: hsl(220, 8%, 38%);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-align: center;
    transition: color var(--animation-speed);
}

.gyroicon.active, .accicon.active, .magicon.active, .gpsicon.active, .baroicon.active {
    color: var(--chrome-fg);
}

#sensor-status div {
    white-space: nowrap;
    overflow: hidden;
}

.gyroicon {
    background-image: url(/snapshot/0.0.34/images/icons/sensor_gyro_off.png);
    background-size: 43px;
    background-position: top;
}

.gyroicon.active {
    background-image: url(/snapshot/0.0.34/images/icons/sensor_gyro_on.png);
}

.accicon {
    background-image: url(/snapshot/0.0.34/images/icons/sensor_acc_off.png);
    background-size: 40px;
    background-position: -5px 2px;
}

.accicon.active {
    background-image: url(/snapshot/0.0.34/images/icons/sensor_acc_on.png);
}

.magicon {
    background-image: url(/snapshot/0.0.34/images/icons/sensor_mag_off.png);
    background-size: 42px;
    background-position: -5px 2px;
}

.magicon.active {
    background-image: url(/snapshot/0.0.34/images/icons/sensor_mag_on.png);
}

.gpsicon {
    background-image: url(/snapshot/0.0.34/images/icons/sensor_sat_off.png);
    background-size: 42px;
    background-position: -5px 2px;
}

.gpsicon.active {
    background-image: url(/snapshot/0.0.34/images/icons/sensor_sat_on.png);
}

.baroicon {
    background-image: url(/snapshot/0.0.34/images/icons/sensor_baro_off.png);
    background-size: 40px;
    background-position: -5px 2px;
}

.baroicon.active {
    background-image: url(/snapshot/0.0.34/images/icons/sensor_baro_on.png);
}



#sensor-status li:first-child {
    border-left: 0;
}

#sensor-status .on {
    background-color: transparent;
}

/* Dataflash element styling*/

#dataflash_wrapper_global {
    color: var(--chrome-fg);
    font-size:10px;
    width:125px;
    margin-right: 5px;
    line-height: 12px;
    height: 33px;
    border-radius: var(--radius-md);
    border: 1px solid var(--chrome-border);
    background-color: var(--chrome-bg-raised);
    padding-top:5px;
    display:none;
}

@media all and (min-width: 1125px) {
    #dataflash_wrapper_global {
        margin-right: 10px;
    }
}

.dataflash-contents_global {
    margin-top: 18px;
    border: 1px solid var(--chrome-border);
    background-color: var(--chrome-bg-sunken);
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-start;
    border-radius: var(--radius-pill);
    /* No overflow:hidden here. The "Free space" legend is an absolutely
       positioned child of the <li> inside this bar, sitting at top:-18px
       (i.e. above the bar), so clipping to the bar hides the label
       entirely. The fill rounds its own corners instead. */
    margin-left: 5px;
    margin-right: 5px;
}


.dataflash-free_global {
    background-color: var(--color-accent-500);
    border-radius: var(--radius-pill);
    transition: width var(--animation-speed-slow);
}


.dataflash-contents_global .notsupported_global {
    display: none;
}

.dataflash-contents_global li {
    height: 5px;
    position: relative;
    box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.20);
    border-radius: 2px;

}

.dataflash-contents_global li div {
    position: absolute;
    top: -18px;
    margin-top: 0;
    left: 0;
    right: 0;
    width:120px;
    text-align: left;
    color: var(--chrome-fg-muted);
}

.dataflash-contents_global progress::-webkit-progress-bar {
    height: 8px;
    background-color: #eee;
}

.dataflash-contents progress::-webkit-progress-value {
    background-color: #bcf;
}

.noflash_global {
    display:none;
    color: var(--chrome-fg-muted);
    text-align: center;
    margin-top:2px;
}

#expert-mode {
    margin-top: 25px;
    width: 90px;
}

/* Battery element styling*/

#quad-status_wrapper {
    display:none;
    color: var(--chrome-fg);
    font-size: 10px;
    min-width: 90px;
    margin-right: 10px;
    line-height: 12px;
    height: 67px;
    border-radius: var(--radius-md);
    border: 1px solid var(--chrome-border);
    background-color: var(--chrome-bg-raised);
    overflow: hidden;
}

@media all and (min-width: 1125px) {
    #quad-status_wrapper {
        margin-right: 20px;
    }
}

.quad-status-contents  {
    display: none;
    margin-top: 10px;
    margin-left: 14px;
    height: 10px;
    width: 31px;
}


#battery-legend {
    display: inline;
    position: relative;
    top: -2px;
    margin-top: 0;
    left: 0;
    right: 0;
    width: 40px;
    text-align: left;
    color: silver;
    margin-left: -8px;
    padding-right: 4px
}

.quad-status-contents progress::-webkit-progress-bar {
    height: 12px;
    background-color: #eee;
}

.quad-status-contents progress::-webkit-progress-value {
    background-color: #bcf;
}

.battery-status {
    height: 11px;
}

.battery-status.state-ok {
    background-color: #59AA29;
}
.battery-status.state-warning {
    background-color: var(--error);
}

.battery-status.state-empty {
    animation: error-blinker 1s linear infinite;
}

@keyframes error-blinker {
    0% {
        background-color: transparent;
    }
    50% {
        background-color: var(--error);
    }
}

.battery-icon {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_bat_grey.svg);
    background-size: contain;
    background-position: center;
    display: inline-block;
    height: 30px;
    width: 60px;
    transition: none;
    margin-top: 4px;
    margin-left: -4px;
    background-repeat: no-repeat;
}


.armedicon,
.failsafeicon,
.linkicon {
    margin-left: 8px;
    margin-right: 8px;
    margin-top: 6px;
    height: 18px;
    width: 18px;
    opacity: 0.8;
    background-size: contain;
    background-position: center;
    transition: none;
}

.armedicon {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_armed_grey.svg);
}
.armedicon.active {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_armed_active.svg);
}

.failsafeicon {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_failsafe_grey.svg);
}
.failsafeicon.active {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_failsafe_active.svg);
}

.linkicon {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_link_grey.svg);
}
.linkicon.active {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_link_active.svg);
}

/** Header (phones) **/
/* 1100px, not 575px - matches the breakpoint the sidebar (.tab_container,
   see "Tabs (phones)" below) already drops to icon-only at, and is now
   raised to fully hand off to along with this compact header, rather than
   leaving an in-between zone where the header has no room to spare but
   still tries to render its full desktop layout (see the .header-wrapper
   comment above for the specific overflow that caused). */
@media all and (max-width: 1100px) , only screen and (max-device-width: 1100px) {
    .headerbar {
        height: 56px;
        background: rgba(0, 0, 0, 0.15);
        flex-wrap: wrap;
        align-content: flex-start;
        padding-top: 12px;
        box-sizing: border-box;
        transition: all 0.2s;
    }

    .headerbar.expand {
        height: 154px;
    }

    .headerbar.expand2 {
        height: 118px;
    }

    #menu_btn, #reveal_btn {
        display: block;
    }

    #menu_btn {
        order: 1;
    }

    #header_btns {
        margin-left: auto;
        order: 3;
    }

    .open_firmware_flasher, .connect_controls {
        width: 31px;
        height: 31px;
        margin-left: 15px;
    }

    .firmware_b, .connect_b {
        margin: 0;
        zoom: 0.6;
    }

    #port-picker, .header-wrapper, .flash_state, .connect_state {
        display: none !important;
    }

    #reveal_btn {
        order: 4;
    }

    #port-picker {
        order: 5;
        justify-content: space-between;
        margin-top: 15px;
        transition: all 0.2s;
    }

    #port-picker.reveal {
        display: flex !important;
        width: 100%;
        margin-left: 0;
    }

    #port-override-option, #portsinput {
        flex-grow: 1;
    }

    #portsinput {
        margin-right: 0;
    }

    #port-override {
        width: calc(100% - 40px);
    }

    .header-wrapper {
        order: 5;
        zoom: 62%;
        justify-content: space-around;
    }

    .header-wrapper.reveal {
        display: flex !important;
        width: 100%;
        margin-top: 24px;
    }

    #dataflash_wrapper_global, #sensor-status, #quad-status_wrapper {
        margin-right: 0;
    }
}



/** Log **/
#log {
    background-color: var(--chrome-bg-sunken);
    color: var(--chrome-fg-muted);
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 21px;
    height: 27px;
    overflow-y: hidden;
    border-bottom: 1px solid var(--chrome-border);
    transition: height var(--animation-speed-slow);
}

#log.active {
    overflow-y: auto;
    height: 111px;
}

#scrollicon {
    position: fixed;
    right: 10px;
    top: 113px;
    height: 27px;
    width: 27px;
    background-repeat: no-repeat;
    background-image: url(/snapshot/0.0.34/images/icons/scroll.svg);
    opacity: 0.0;
    transition: all ease 0.2s;
}

#scrollicon.active {
    height: 88px;
    margin-top: 13px;
    margin-right: 20px;
    width: 88px;
    opacity: 0.15;
}

#log .wrapper {
    padding: 5px 5px 4px 10px;
    position: relative;
    bottom: 0;
}

#log .wrapper > *, #log .wrapper > * > *{
    user-select: text;
}

#log a {
    font-weight: 600;
    color: var(--color-accent-500);
}

#log a:hover {
    text-decoration: underline;
}

.logswitch {
    position: absolute;
    right: 20px;
    padding: 2px;
    z-index: 10;
}

.logswitch a {
    color: var(--chrome-fg-muted) !important;
    font-family: var(--font-ui);
    transition: color var(--animation-speed);
}

.logswitch a:hover {
    color: #ffffff !important;
    text-decoration: none !important;
}

/** Log (phones) **/
@media all and (max-width: 575px) {
    #log.active {
        box-shadow: none;
    }
    .logswitch {
        background-color: var(--chrome-bg-sunken);
    }
    #scrollicon {
        display: none;
    }
}



/** Tabs & content container **/
#tab-content-container {
    display: flex;
    height: calc(100% - 162px);
    align-items: stretch;
}

#tab-content-container.logopen {
    height: calc(100% - 247px);
}

#tab-content-container, .tab_container, #content {
    transition: all 0.2s;
}

.tab_container.logopen, #content {
    overflow-x: hidden;
    overflow-y: auto;
}

/** Tabs & content container (phones) **/
/* Matches the headerbar's own 1100px breakpoint above - this is the
   compact header's height math (56px collapsed vs. 115px desktop), so it
   has to switch at the same point the header actually does. */
@media all and (max-width: 1100px) , only screen and (max-device-width: 1100px) {
    #tab-content-container {
        height: calc(100% - 83px);
    }
    #tab-content-container.logopen {
        height: calc(100% - 167px);
    }
    #tab-content-container.header_expanded {
        height: calc(100% - 181px);
    }
    #tab-content-container.header_expanded2 {
        height: calc(100% - 145px);
    }
    #tab-content-container.logopen.header_expanded {
        height: calc(100% - 265px);
    }
    #tab-content-container.logopen.header_expanded2 {
        height: calc(100% - 229px);
    }
}


/** Tabs **/
.tab_container {
    width: 200px;
    /* Was a 4px accent slab. The nav no longer needs a coloured edge to
       separate itself now that the rail and the workspace are different
       surfaces, and the accent reads far better spent on the active tab
       than on a permanent stripe. #content's width calc below tracks
       this border, so the two have to change together. */
    border-right: 1px solid var(--chrome-border);
    background-color: var(--chrome-bg);
    overflow: auto;
}

#logo-desktop {
    display: block;
}

#logo-mobile {
    display: none;
}

#tabs {
    font-size: 13px;
    overflow-x: hidden;
    padding: 8px;
}

.header-wrapper .mode-connected {
    display: none;
}

#tabs ul.mode-connected {
    display: none;
}

#tabs ul.mode-connected-cli {
    display: none;
}

#tabs li {
    border-bottom: 0;
}

/* Group labels are typographic dividers now, not shaded bands - the
   uppercase micro-label plus the space above it is enough separation and
   keeps the rail from looking striped. */
#tabs li.tab-group-header {
    margin-top: 14px;
    padding: 4px 10px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--chrome-fg-muted);
    background: none;
    border-bottom: 0;
    cursor: default;
    user-select: none;
}

#tabs li.tab-group-header:first-child {
    margin-top: 0;
}

#tabs li a {
    position: relative;
    font-weight: 500;
    padding-left: 38px;
    margin: 1px 0;
    border-radius: var(--radius-sm);
    background-color: transparent;
    color: var(--chrome-fg);
    height: 32px;
    line-height: 32px;
    display: block;
    border-top: 0;
    transition: background-color var(--animation-speed), color var(--animation-speed);
    /* following is just for a graceful degradation */
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}

#tabs li a:hover {
    text-decoration: none;
    background-color: var(--chrome-hover);
    color: #fff;
}

#tabs li.active {
    color: #fff;
}

#tabs li.active a {
    background-color: var(--color-accent-500);
    color: #fff;
    font-weight: 600;
    box-shadow: 0 2px 10px -3px var(--color-accent-500);
}

#tabs li.active a:hover {
    cursor: default;
    background-color: var(--color-accent-500);
}

.tabicon {
    background-repeat: no-repeat;
    background-size: 16px;
    background-position: 12px center;
}

@media only screen and (max-height: 750px) , only screen and (max-device-height: 750px) {
    .tab_container {
        overflow-x: hidden;
        overflow-y: auto;
    }
}

@media only screen and (max-width: 1100px) , only screen and (max-device-width: 1100px) {
    #tabs li a {
        font-size: 0;
    }

    .reveal #tabs li a {
      font-size: 13px;
    }

    .tab_container {
        width: 42px;
    }
}

/** Tabs (phones) **/
/* 1100px - matches the headerbar/tab-content-container breakpoints above:
   the side nav now goes fully off-canvas (behind the hamburger drawer)
   at the same point the header drops to compact mode, instead of sitting
   in an in-between icon-only state that no longer has a compact-enough
   header alongside it. */
@media all and (max-width: 1100px) , only screen and (max-device-width: 1100px) {
    #logo-desktop {
        display: none;
    }

    #logo-mobile {
        display: block;
    }

    .tab_container {
        position: fixed;
        z-index: 2000;
        top: 0;
        left: -304px;
        bottom: 0;
        width: 300px;
        transition: all 0.3s;
    }
    .tab_container.reveal {
        left: 0;
    }
}

/* Tab-Icons */
.ic_setup {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_setup_grey.svg);
}

.ic_setup:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_setup_white.svg);
}

li.active .ic_setup {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_setup_white.svg);
}

.ic_ports {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_ports_grey.svg);
}

.ic_ports:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_ports_white.svg);
}

li.active .ic_ports {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_ports_white.svg);
}

.ic_config {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_config_grey.svg);
}

.ic_config:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_config_white.svg);
}

li.active .ic_config {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_config_white.svg);
}

.ic_pid {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_pid_grey.svg);
}

.ic_pid:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_pid_white.svg);
}

li.active .ic_pid {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_pid_white.svg);
}

.ic_rates {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_advanced_grey.svg);
}

.ic_rates:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_advanced_white.svg);
}

li.active .ic_rates {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_advanced_white.svg);
}

.ic_gyro {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_sensors_grey.svg);
}

.ic_gyro:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_sensors_white.svg);
}

li.active .ic_gyro {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_sensors_white.svg);
}

.ic_rx {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_rx_grey.svg);
}

.ic_rx:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_rx_white.svg);
}

li.active .ic_rx {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_rx_white.svg);
}

.ic_modes {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_modes_grey.svg);
}

.ic_modes:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_modes_white.svg);
}

li.active .ic_modes {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_modes_white.svg);
}

.ic_adjust {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_adjust_grey.svg);
}

.ic_adjust:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_adjust_white.svg);
}

li.active .ic_adjust {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_adjust_white.svg);
}

.ic_curves {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_curves_grey.svg);
}

.ic_curves:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_curves_white.svg);
}

li.active .ic_curves {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_curves_white.svg);
}

.ic_servo {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_servo_grey.svg);
}

.ic_servo:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_servo_white.svg);
}

li.active .ic_servo {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_servo_white.svg);
}

.ic_gps {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_gps_grey.svg);
}

.ic_gps:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_gps_white.svg);
}

li.active .ic_gps {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_gps_white.svg);
}

.ic_led {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_led_grey.svg);
}

.ic_led:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_led_white.svg);
}

li.active .ic_led {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_led_white.svg);
}

.ic_status {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_sensors_grey.svg);
}

.ic_status:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_sensors_white.svg);
}

li.active .ic_status {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_sensors_white.svg);
}

.ic_sensors {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_sensors_grey.svg);
}

.ic_sensors:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_sensors_white.svg);
}

li.active .ic_sensors {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_sensors_white.svg);
}

.ic_beepers {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_transponder_grey.svg);
}

.ic_beepers:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_transponder_white.svg);
}

li.active .ic_beepers {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_transponder_white.svg);
}

.ic_log {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_log_grey.svg);
}

.ic_log:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_log_white.svg);
}

li.active .ic_log {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_log_white.svg);
}

.ic_data {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_data_grey.svg);
}

.ic_data:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_data_white.svg);
}

li.active .ic_data {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_data_white.svg);
}

.ic_cli {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_cli_grey.svg);
}

.ic_cli:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_cli_white.svg);
}

li.active .ic_cli {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_cli_white.svg);
}

.ic_motor {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_motor_grey.svg);
}

.ic_motor:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_motor_white.svg);
}

li.active .ic_motor {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_motor_white.svg);
}

.ic_welcome {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_welcome_grey.svg);
}

.ic_welcome:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_welcome_white.svg);
}

li.active .ic_welcome {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_welcome_white.svg);
}

.ic_help {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_help_grey.svg);
}

.ic_help:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_help_white.svg);
}

li.active .ic_help {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_help_white.svg);
}

.ic_flasher {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_flasher_grey.svg);
}

.ic_flasher:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_flasher_white.svg);
}

li.active .ic_flasher {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_flasher_white.svg);
}

.ic_transponder {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_transponder_grey.svg);
    background-position-y: 2px;
}

.ic_transponder:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_transponder_white.svg);
}

li.active .ic_transponder {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_transponder_white.svg);
}

.ic_power {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_power_grey.svg);
}

.ic_power:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_power_white.svg);
}

li.active .ic_power {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_power_white.svg);
}

/* SPARE Tab-Icons */
.ic_failsafe {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_failsafe_grey.svg);
}

.ic_failsafe:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_failsafe_white.svg);
}

li.active .ic_failsafe {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_failsafe_white.svg);
}
.ic_remap_fc {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_remap_grey.svg);
}

.ic_remap_fc:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_remap_white.svg);
}

li.active .ic_remap_fc {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_remap_white.svg);
}
.ic_backup {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_backup_grey.svg);
}
.ic_backup:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_backup_white.svg);
}

li.active .ic_backup {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_backup_white.svg);
}

.ic_wizard {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_wizard_grey.svg);
}
.ic_wizard:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_wizard_white.svg);
}

li.active .ic_wizard {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_wizard_white.svg);
}

.ic_advanced {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_advanced_grey.svg);
}
.ic_advanced:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_advanced_white.svg);
}

li.active .ic_advanced {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_advanced_white.svg);
}

.ic_mission {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_mission_grey.svg);
}
.ic_mission:hover {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_mission_white.svg);
}

li.active .ic_mission {
    background-image: url(/snapshot/0.0.34/images/icons/cf_icon_mission_white.svg);
}



/** Content **/
#content {
    background-color: var(--color-bg);
    -webkit-transform: rotateX(0deg); /* DO NOT REMOVE! this fixes the UI freezing bug on MAC OS X */
    /* 200px rail + its 1px right border. */
    width: calc(100% - 201px);
}

@media only screen and (max-width: 1100px) , only screen and (max-device-width: 1100px) {
    #content {
        width: calc(100% - 42px);
    }
}

/** Content (phones) **/
/* 1100px - matches the sidebar going fully off-canvas at that width now
   (see "Tabs (phones)" above): once it's not reserving any width, content
   should reclaim all of it at the same point, not still leave room for
   the now-gone icon-only column between 1100px and the old 575px. */
@media all and (max-width: 1100px) , only screen and (max-device-width: 1100px) {
    #content {
        width: 100%;
    }
}



/** Status bar **/
#status-bar {
    position: fixed;
    bottom: 0;
    width: 100%;
}

/** Status bar (phones) **/
@media all and (max-width: 575px) {
    #status-bar {
        display: none;
    }
}



#cache {
    display: none;
}

.data-loading {
    width: 100%;
    height: 100%;
    background-image: url(/snapshot/0.0.34/images/loading-spin.svg);
    background-repeat: no-repeat;
    background-position: center 45%;
}

.data-loading p {
    position: relative;
    top: calc(45% + 45px);
    text-align: center;
    font-weight: bold;
}

dialog {
    background-color: var(--color-surface);
    color: var(--color-text);
    padding: 20px 22px;
    height: fit-content;
    margin: auto auto;
    position: absolute;
    width: 50%;
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border-soft);
    box-shadow: var(--shadow-lg);
}

dialog h3 {
    font-size: 15px;
    font-weight: 600;
    margin-bottom: 4px;
}

.dialogTabExit {
    width: 40em;
    border-radius: 5px;
}

.dialogTabExit .content {
    margin-top: 12px;
}

.dialogTabExit .buttons {
    position: static;
    margin-top: 20px;
    margin-bottom: 0;
}

@media all and (max-width: 575px) {
    .dialogTabExit {
        width: calc(100% - 2em);
        border-radius: unset;
    }
}

dialog .dialog_toolbar .btn a {
    /*  common styles for content toolbar buttons */
    margin-top: 0;
    margin-bottom: 0;
    margin-right: 20px;
    background-color: var(--button-background);
    border-radius: 1px;
    border: 1px solid var(--button-border);
    color: #000;
    float: left;
    font-weight: bold;
    font-size: 12px;
    text-shadow: 0 1px rgba(255, 255, 255, 0.25);
    display: block;
    cursor: pointer;
    transition: all ease 0.1s;
    padding: 0 9px;
    line-height: 28px;
}

dialog .dialog_toolbar .btn a:hover {
    background-color: var(--hoverButton-background);
    border-color: var(--hoverButton-border);
}

dialog .dialog_toolbar .btn a:active {
    background-color: var(--pushedButton-background);
    border-color: var(--pushedButton-border);
}

dialog .dialog_toolbar .btn a.disabled {
    cursor: default;
    color: #fff;
    background-color: #AFAFAF;
    border: 1px solid #AFAFAF;
    pointer-events: none;
    text-shadow: none;
    opacity: 0.5;
}

@media all and (max-width: 575px) {
    dialog {
        position: fixed;
        width: calc(100% - 2em) !important;
        max-height: calc(100% - 56px - 2em);
        top: 56px;
        border-radius: unset;
        border: none;
        overflow: auto;
    }
}
/* Border of the Tab */

/* Note */
.note {
    /* A tinted callout with a coloured leading edge reads as an aside at
       a glance; the old solid-yellow panel read as a warning even for
       purely informational copy. */
    background-color: var(--color-surface-sunken);
    border: 1px solid var(--color-border-soft);
    border-left: 3px solid var(--color-yellow-500);
    color: var(--color-text-soft);
    margin-bottom: 12px;
    margin-top: 0;
    border-radius: var(--radius-sm);
    font-size: 11px;
    font-weight: normal;
    line-height: 17px;
    padding: 8px 10px;
}

code {
    font-family: var(--font-mono);
    font-size: 0.92em;
    color: var(--color-text);
    background-color: var(--color-surface-sunken);
    border: 1px solid var(--color-border-soft);
    padding: 1px 5px;
    margin: 0 2px;
    border-radius: var(--radius-xs);
}

span.value {
    display: inline-block;
    line-height: 14px;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    text-align: right;
    box-sizing: border-box;
    color: var(--color-text-soft);
    background-color: var(--color-surface-sunken);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-xs);
    padding: 1px 5px;
    margin: 2px 1px;
}

/* Tab Title */
.tab_title {
    border-bottom: 1px solid var(--color-border-soft);
    color: var(--color-text);
    font-size: 20px;
    line-height: 24px;
    height: 30px;
    font-weight: 600;
    letter-spacing: -0.01em;
    margin-bottom: 15px;
}

.tab_wrapper {
    padding: 20px 15px 15px 15px;
}

.content_wrapper {
    padding: 20px 20px 20px 19px;
    position: relative;
}

.content_toolbar {
    /*  content toolbar panel */
    width: 100%;
    height: 30px;
    background-color: var(--color-surface);
    box-shadow: 0 -2px 10px -4px var(--color-shadow);
    padding: 10px 0;
    overflow: hidden;
    border-top: 1px solid var(--color-border-soft);
}

html[data-theme="dark"] .content_toolbar button,
.content_toolbar button,
.content_toolbar .btn a {
    /*  common styles for content toolbar buttons */
    margin-top: 0;
    margin-bottom: 0;
    margin-right: 20px;
    background-color: var(--button-background);
    border-radius: 1px;
    border: 1px solid var(--button-border);
    color: #000;
    float: right;
    font-weight: bold;
    font-size: 12px;
    text-shadow: 0 1px rgba(255, 255, 255, 0.25);
    display: block;
    cursor: pointer;
    transition: all ease 0.1s;
    padding: 0 9px;
    line-height: 28px;
    user-select: none;
}

html[data-theme="dark"] .content_toolbar button:disabled,
.content_toolbar button:disabled {
    color: #444;
    background-color: #999;
    pointer-events: none;
}

html[data-theme="dark"] .content_toolbar button:hover,
.content_toolbar button,
.content_toolbar .btn a:hover {
    background-color: var(--hoverButton-background);
    border-color: var(--hoverButton-border);
}

html[data-theme="dark"] .content_toolbar button:active,
.content_toolbar button:active,
.content_toolbar .btn a:active {
    background-color: var(--pushedButton-background);
    border-color: var(--pushedButton-border);
}

.content_toolbar .btn a.disabled {
    cursor: default;
    color: #fff;
    background-color: #AFAFAF;
    border: 1px solid #AFAFAF;
    pointer-events: none;
    text-shadow: none;
    opacity: 0.5;
}

.toolbar_hidden .content_wrapper {
    height: calc(100% - 40px) !important;
}

.toolbar_hidden .content_toolbar {
    display: none !important;
}

.toolbar_scroll_bottom .content_wrapper {
    /*  content wrapper in view with toolbar in scroll bottom
      leave 50px space for the toolbar
      */
    height: 100%;
    margin: 0 0 -50px;
}

.toolbar_fixed_bottom .content_wrapper {
    /*  content wrapper in view with toolbar fixed over bottom edge
      leave 50px space for the toolbar
      */
    height: calc(100% - 90px);
    overflow-y: auto;
    position: initial;
}

.toolbar_fixed_bottom .content_toolbar {
    display: flex;
    flex-wrap: wrap;
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 2000; /* for fancy toggle buttons */
}

.toolbar_fixed_bottom .content_toolbar div:first-child {
    margin-left: auto;
}

.toolbar_fixed_bottom .content_toolbar.xs-compressed {
    flex-direction: row-reverse;
}

.toolbar_fixed_bottom .content_toolbar.xs-compressed div:first-child {
    margin-left: 0;
}

.toolbar_fixed_bottom .content_toolbar.xs-compressed div:last-child {
    margin-left: auto;
}

.toolbar_expand_btn {
    display: none;
    position: absolute;
    bottom: 15px;
    left: 15px;
    width: 20px;
    height: 20px;
    font-size: 20px;
    line-height: 20px;
    text-align: center;
    z-index: 2000;
}

@media all and (max-width: 575px) {
    .toolbar_fixed_bottom .content_toolbar.xs-compressed {
        padding-left: 60px;
        box-sizing: border-box;
        height: 50px;
    }
    .toolbar_fixed_bottom .content_toolbar.xs-compressed.expanded {
        padding-left: 15px;
        padding-bottom: 0;
        height: auto;
    }
    .toolbar_fixed_bottom .content_toolbar.xs-compressed div {
        margin-bottom: 10px;
    }
    .toolbar_expand_btn {
        display: block;
    }
}

/** Hack to change the "display: none" by a "visibility:hidden", to apply
    the margin-left: auto needed by the first element to align to the right the buttons */
.toolbar_fixed_bottom .content_toolbar div[style='display: none;']:first-child {
    visibility: hidden;
    display: block !important;
}

/* Colums  START> */
.cf_column {
    min-height: 20px;
    margin-bottom: 0;
}

.full {
    float: left;
    width: 100%;
}

.half {
    float: left;
    width: 50%;
}

.third {
    width: 33%;
}

.third_left {
    float: left;
    width: 33%;
}

.third_center {
    display: inline-block;
    width: 34%;
}

.third_right {
    float: right;
    width: 33%;
}

.fourth {
    float: left;
    width: 25%;
}

.threefourth_right {
    float: right;
    width: 75%;
}

.threefourth_left {
    float: left;
    width: 75%;
}

.twothird {
    float: left;
    width: 67%;
}

/* Columns  END> */

/* Spacers */
.spacer {
    padding-left: 7px;
    padding-right: 7px;
    width: calc(100% - 14px);
    float: left;
}

.spacer_left {
    padding-left: 15px;
    float: left;
    width: calc(100% - 15px);
}

.spacer_right {
    padding-right: 15px;
    width: calc(100% - 15px);
    float: left;
}

/* Standard GUI BOX */
.gui_box {
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-md);
    background-color: var(--color-surface);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    float: left;
    width: calc(100% - 2px);
    margin-bottom: 12px;
}

.gui_warning {
    background: var(--color-surface);
}

.gui_note {
    background: var(--color-surface);
}

.gui_warning .gui_box_titlebar,
.gui_note .gui_box_titlebar {
    background-color: var(--color-accent-500);
    background-image: none;
    border-bottom-color: transparent;
    color: #fff;
}


.grey {
    background-color: var(--color-surface-sunken);
}

.gui_box_titlebar {
    background-color: var(--color-header-bg);
    color: var(--color-header-fg);
    border-bottom: 1px solid var(--color-border-soft);
    border-radius: 0;
    font-size: 13px;
    width: 100%;
    height: 27px;
    padding-bottom: 0;
    float: left;
    margin-bottom: 7px;
    font-weight: 600;
}

.gui_box_bottombar {
    background-color: var(--color-surface-sunken);
    border-top: 1px solid var(--color-border-soft);
    border-radius: 0;
    font-size: 13px;
    width: 100%;
    height: 27px;
    padding-top: 0;
    float: left;
    font-weight: 600;
}

.spacer_box {
    padding: 10px;
    margin-bottom: 3px;
}

.spacer_box_title {
    padding-left: 10px;
    padding-right: 10px;
    padding-top: 4px;
    margin-bottom: 0;
    float: left;
}

/* Fixed area at the Bottom */
.fixed_band {
    position: relative;
    height: 50px;
    background-color: var(--color-surface);
    border-top: 1px solid var(--color-border-soft);
    width: calc(100% + 40px);
    margin-left: -20px;
    bottom: 0;
    margin-bottom: 0;
}

.fixed_band .save_btn a {
    margin-top: 9px;
    margin-bottom: 0;
    margin-right: 20px;
    background-color: var(--button-background);
    border-radius: 1px;
    border: 1px solid var(--button-border);
    color: #000;
    float: right;
    font-weight: bold;
    font-size: 12px;
    text-shadow: 0 1px rgba(0, 0, 0, 0.25);
    display: block;
    cursor: pointer;
    transition: all ease 0.1s;
    padding: 0 9px;
    line-height: 28px;
}

.fixed_band .save_btn a:hover {
    background-color: var(--hoverButton-background);
    border-color: var(--hoverButton-border);
}

.fixed_band .save_btn a:active {
    background-color: var(--pushedbutton-background);
    border-color: var(--pushedButton-border);
}

/* Different buttons */
.default_btn {
    width: 100%;
    position: relative;
    margin-bottom: 10px;
    margin-top: 0;
    float: left;
}

.default_btn a {
    padding: 7px 0;
    text-align: center;
    background-color: var(--color-btn-bg);
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    color: var(--color-btn-fg);
    font-weight: 600;
    font-size: 12px;
    line-height: 14px;
    transition: background-color var(--animation-speed),
                color var(--animation-speed),
                box-shadow var(--animation-speed);
    text-decoration:none;
    cursor: pointer;
    display: block;
}

.default_btn a.disabled {
    background-color: var(--color-btn-bg-disabled);
    border-color: transparent;
    color: var(--color-btn-fg-disabled);
    cursor: not-allowed;
}

.default_btn a:hover {
    background-color: var(--color-btn-bg-hover);
    color: var(--color-btn-fg);
    text-decoration:none;
}

.default_btn a:active {
    background-color: var(--color-btn-bg-active);
}

.default_btn a:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--color-focus-ring);
}

.default_btn_pushed a,
.default_btn_pushed a:hover,
.default_btn_pushed a:active {
    background-color: var(--color-accent-500);
    border-color: transparent;
    color: var(--color-accent-fg);
}

.regular-button {
    -webkit-user-drag: none;
    margin-top: 8px;
    margin-bottom: 8px;
    margin-right: 10px;
    background-color: var(--color-btn-bg);
    border-radius: var(--radius-sm);
    border: 1px solid transparent;
    color: var(--color-btn-fg);
    font-weight: 600;
    font-size: 12px;
    display: inline-block;
    cursor: pointer;
    transition: background-color var(--animation-speed),
                color var(--animation-speed),
                box-shadow var(--animation-speed);
    padding: 0 14px;
    line-height: 28px;
    user-select: none;
}

.regular-button:hover {
    background-color: var(--color-btn-bg-hover);
    color: var(--color-btn-fg);
}

.regular-button:active {
    background-color: var(--color-btn-bg-active);
    color: var(--color-btn-fg);
}

.regular-button:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--color-focus-ring);
}

/* Opt-in accent variant so a dialog or toolbar can mark its one real
   call to action; everything else stays neutral. */
.regular-button.primary {
    background-color: var(--color-accent-500);
    color: var(--color-accent-fg);
}

.regular-button.primary:hover {
    background-color: var(--color-accent-hover);
    color: var(--color-accent-fg);
}

.regular-button.disabled {
    cursor: default;
    color: var(--color-btn-fg-disabled);
    background-color: var(--color-btn-bg-disabled);
    border-color: transparent;
    pointer-events: none;
}

.small {
    width: auto;
    position: relative;
    margin-bottom: 7px;
    margin-top: 0;
    margin-right: 5px;
    float: left;
}

.small a {
    padding: 4px 8px 5px;
    text-align: center;
    background-color: var(--color-btn-bg);
    border-radius: var(--radius-xs);
    border: 1px solid transparent;
    color: var(--color-btn-fg);
    font-weight: 600;
    font-size: 11px;
    line-height: 12px;
    display: block;
    transition: background-color var(--animation-speed), color var(--animation-speed);
}

.small a:hover {
    background-color: var(--color-accent-500);
    color: var(--color-accent-fg);
    border-color: transparent;
}

.small a:active {
    background-color: var(--color-accent-400);
    color: var(--color-accent-fg);
}

.green a {
    background-color: var(--color-accent-500);
    color: var(--color-accent-fg);
    border: 1px solid transparent;
    transition: background-color var(--animation-speed);
}

.green a:hover {
    background-color: var(--color-accent-hover);
    border-color: transparent;
    color: var(--color-accent-fg);
}

/* Table styling */
.cf_table {
    margin-bottom: 5px;
    margin-top: -5px;
    font-size: 11px;
    width: 100%;
    float: left;
}

.cf_table td {
    border: 0;
    padding-top: 2px;
    padding-bottom: 5px;
}

.cf_table tr:not(:last-child) td {
    border-bottom: dotted 1px var(--superSubtleAccent);
}

.cf_table td:last-child {
    text-align: right;
}

.noboarder td {
    border: none;
}

.noborder {
    border: none;
}

.border-collapse {
    border-collapse: collapse;
}

.gps_false {
    background-color: #FF0004;
    padding: 1px 7px 2px 7px;
    border-radius: 3px;
    color: #FFFFFF;
    font-size: 11px;
    margin-left: 3px;
}

.gps_true {
    background-color: var(--accent);
    padding: 1px 7px 2px 7px;
    border-radius: 3px;
    color: #FFFFFF;
    font-size: 11px;
    margin-left: 3px;
}

/* fixing padding for all Tabs*/
.tab-adjustments,
.tab-auxiliary,
.tab-beepers,
.tab-blackbox,
.tab-cli,
.tab-configuration,
.tab-failsafe,
.tab-firmware_flasher,
.tab-gps,
.tab-help,
.tab-landing,
.tab-led-strip,
.tab-logging,
.tab-mixer,
.tab-motors,
.tab-power,
.tab-profiles,
.tab-rates,
.tab-receiver,
.tab-sensors,
.tab-servos,
.tab-setup,
.tab-status {
    height: 100%;
    position: relative;
}

/* fixing logging tab*/
.properties {
    width: 800px;
}

.properties dl {
    width: 200px;
}

.properties dd {
    width: 400px;
    height: auto;
}

/* GPS Fix styling*/
.fixtrue {
    background-color: #56ac1d;
    padding: 2px 5px;
    border-radius: 3px;
    color: #fff;
    font-size: 10px;
}

.fixfalse {
    background-color: #e60000;
    padding: 2px 5px;
    border-radius: 3px;
    color: #fff;
    font-size: 10px;
}

.cf_tooltiptext {
    display:none;
}

.bottomStatusIcons {
    display: flex;
    justify-content: space-between;
    background-color: var(--chrome-bg-sunken);
    border-top: 1px solid var(--chrome-border);
    height: 31px;
    margin-top: 2px;
}

button {
    padding: 0 14px;
    line-height: 28px;
    border-radius: var(--radius-sm);
    background-color: var(--color-btn-bg);
    color: var(--color-btn-fg);
    border: 1px solid transparent;
    font-weight: 600;
    font-size: 12px;
    cursor: pointer;
    transition: background-color var(--animation-speed),
                color var(--animation-speed),
                box-shadow var(--animation-speed);
}

button:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--color-focus-ring);
}

button.active {
    background-color: var(--color-accent-500);
    border-color: transparent;
    color: var(--color-accent-fg);
}

.jBox-Tooltip {
    max-width: 180px;
}

.jBox-Widetip {
    max-width: 300px;
}

@media only screen and (max-width: 1100px) , only screen and (max-device-width: 1100px) {

.content_wrapper {
    padding: 15px 15px 15px 14px;
}

.tab_title {
    font-size: 16px;
    line-height: 18px;
    font-weight: 300;
    margin-bottom: 10px;
    height: 22px;
}

.cf_doc_version_bt a {
    padding: 1px 5px 1px 5px;
    margin-top: -35px;
    font-size: 9px;
    line-height: 15px;
}

.default_btn {
    margin-bottom: 10px;
}

    .gui_box_titlebar {
    font-size: 12px;
    height: 24px;
    padding-bottom: 0;
    margin-bottom: 5px;
    float: left;
}

.spacer_box_title {
    padding-left: 10px;
    padding-right: 10px;
    padding-top: 3px;
    margin-bottom: 0;
    float: left;
}

input {
    font-size: 11px !important;
}

.gps_false {
    padding: 0 3px 0 3px;
    font-size: 10px;
}

.gps_true {
    padding: 0 3px 0 3px;
    font-size: 10px;
}

.content_toolbar .btn a {
    margin-right: 15px;
}

.toolbar_fixed_bottom .content_wrapper {
    /*  content wrapper in view with toolbar fixed over bottom edge
    leave 50px space for the toolbar
    */
    height: calc(100% - 81px);
    overflow-y: auto;
    position: initial;
}

}

.hidden {
    display: none !important;
}

.darkgrey_box {
    background-color: var(--color-surface-alt);
    color: var(--color-text-alt);
}

.topBorderLine {
    border-top: 1px solid var(--color-border-soft);
    padding-top: 5px;
}

.jBox-container {
    background: var(--color-surface-float);
    border: 1px solid var(--color-border-soft);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    font-size: 11px;
    line-height: 15px;
    color: var(--color-text);
}
.jBox-content {
    padding: 7px 9px;
}
.jBox-Modal .jBox-content {
    padding: 10px 15px;
}
.jBox-pointer-top,
.jBox-pointer-bottom {
    width: 22px;
    height: 10px;
 }
.jBox-pointer-left,
.jBox-pointer-right {
    width: 10px;
    height: 20px;
}
.jBox-pointer:after {
    width: 10px;
    height: 9px;
    border:1px solid var(--accent);
}

#dialogResetToCustomDefaults-content {
    margin-top: 10px;
    margin-bottom: 10px;
}

#dialogReportProblems-header {
    margin-top: 10px;
    margin-bottom: 5px;
}

.dialogReportProblems-listItem {
    list-style: circle;
    margin-left: 20px;
    margin-bottom: 5px;
}

#dialogReportProblems-footer {
    margin-bottom: 10px;
}


/** Responsive grid **/
@media all and (max-width: 575px) {
    .sm, .md, .lg, .xl {
        display: none !important;
    }
}
@media all and (min-width: 576px) and (max-width: 767px) {
    .xs, .md, .lg, .xl {
        display: none !important;
    }
}
@media all and (min-width: 768px) and (max-width: 991px) {
    .xs, .sm, .lg, .xl {
        display: none !important;
    }
}
@media all and (min-width: 992px) and (max-width: 1139px) {
    .xs, .sm, .md, .xl {
        display: none !important;
    }
}
@media all and (min-width: 1140px) {
    .xs, .sm, .md, .lg {
        display: none !important;
    }
}
@media all and (min-width: 576px) {
    .sm-max {
        display: none !important;
    }
}
@media all and (min-width: 768px) {
    .md-max {
        display: none !important;
    }
}
@media all and (min-width: 992px) {
    .lg-max {
        display: none !important;
    }
}
@media all and (max-width: 1139px) {
    .lg-min {
        display: none !important;
    }
}
@media all and (max-width: 991px) {
    .md-min {
        display: none !important;
    }
}
@media all and (max-width: 767px) {
    .sm-min {
        display: none !important;
    }
}
.grid-row {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    box-sizing: border-box;
}
.grid-col {
    margin-left: 7px;
    margin-right: 7px;
}
.grid-col.col1 {
    width: calc(8.33% - 14px);
}
.grid-col.col2 {
    width: calc(16.67% - 14px);
}
.grid-col.col3 {
    width: calc(25% - 14px);
}
.grid-col.col4 {
    width: calc(33.33% - 14px);
}
.grid-col.col5 {
    width: calc(41.67% - 14px);
}
.grid-col.col6 {
    width: calc(50% - 14px);
}
.grid-col.col7 {
    width: calc(58.33% - 14px);
}
.grid-col.col8 {
    width: calc(66.67% - 14px);
}
.grid-col.col9 {
    width: calc(75% - 14px);
}
.grid-col.col10 {
    width: calc(83.33% - 14px);
}
.grid-col.col11 {
    width: calc(91.67% - 14px);
}
.grid-col.col12 {
    width: calc(100% - 14px);
}
.grid-col:first-child {
    margin-left: 0;
}
.grid-col:last-child {
    margin-right: 0;
}
.grid-col.col1:first-child, .grid-col.col1:last-child {
    width: calc(8.33% - 7px);
}
.grid-col.col2:first-child, .grid-col.col2:last-child {
    width: calc(16.67% - 7px);
}
.grid-col.col3:first-child, .grid-col.col3:last-child {
    width: calc(25% - 7px);
}
.grid-col.col4:first-child, .grid-col.col4:last-child {
    width: calc(33.33% - 7px);
}
.grid-col.col5:first-child, .grid-col.col5:last-child {
    width: calc(41.67% - 7px);
}
.grid-col.col6:first-child, .grid-col.col6:last-child {
    width: calc(50% - 7px);
}
.grid-col.col7:first-child, .grid-col.col7:last-child {
    width: calc(58.33% - 7px);
}
.grid-col.col8:first-child, .grid-col.col8:last-child {
    width: calc(66.67% - 7px);
}
.grid-col.col9:first-child, .grid-col.col9:last-child {
    width: calc(75% - 7px);
}
.grid-col.col10:first-child, .grid-col.col10:last-child {
    width: calc(83.33% - 7px);
}
.grid-col.col11:first-child, .grid-col.col11:last-child {
    width: calc(91.67% - 7px);
}
.grid-col.col12:first-child, .grid-col.col12:last-child {
    width: calc(100% - 7px);
}
@media all and (max-width: 575px) {
    .grid-col.col1, .grid-col.col2, .grid-col.col3, .grid-col.col4, .grid-col.col5, .grid-col.col6, .grid-col.col7, .grid-col.col8, .grid-col.col9, .grid-col.col10, .grid-col.col11, .grid-col.col12 {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}
