/* Hide default checkbox */

input[type=checkbox] {
    display: none;
}

input[type=checkbox]+label {
    display: inline-block;
    margin: 5px;
    padding-left: 25px;
    padding-top: 5px;
    background: url(/resources/images/icons/check-box-default.png) no-repeat;
}

input[type=checkbox]+label, .table-checkbox-label {
    min-height: 25px;
}

input[type=checkbox]:disabled:checked+label {
    background: url(/resources/images/icons/check-box-checked-disabled.png) no-repeat;
}

input[type=checkbox]:checked+label {
    background: url(/resources/images/icons/check-box-checked.png) no-repeat;
}

input[type=checkbox]:disabled+label {
    background: url(/resources/images/icons/check-box-default-disabled.png) no-repeat;
}

/* A cancel button */

input[type=button].cancel-button {
    margin-right: 5px;
    /* Space to next button */
    border-color: #d3d3d3;
    background: #fff;
    float: left;
    /* Assumed right aligned button box */
}

input[type=button].cancel-button:disabled {
    border-color: #dedede;
    background: #aaaaaa;
    color: #c2c2c2;
}

/* section title style */

h3 {
    font-size: 22px;
    color: #000000;
}

/* base title styles */

h3, h4 {
    font-weight: normal;
}

/* Table styles */

table {
    margin-top: 35px;
}

th {
    font-weight: normal;
    font-size: 16px;
    color: #333333;
    background: #f2f2f2;
}

th:only-of-type {
    text-align: center;
}

thead tr th:first-child {
    border-width: 0px 1px 0px 0px;
}

thead tr th:last-child {
    border-width: 0px 0px 0px 1px;
}

thead tr:nth-of-type(n+2) th {
    border-top: 2px solid #ffffff;
}

tr {
    height: 36px;
}

td {
    border: 1px solid #f2f2f2;
}

tr:first-child td {
    border-top-width: 2px;
}

tr:last-child td {
    border-bottom: 2px solid #f0f0f5;
}

td input[type=radio] {
    position: initial;
    opacity: initial;
    height: initial;
    width: initial;
}

tbody tr td:first-child {
    border-left: 2px solid #f2f2f2;
}

tbody tr td:last-child {
    border-right: 2px solid #f2f2f2;
}

/* End of table styles */

.text-bold {
    font-weight: bold;
}

/* Centered text style */

.centered-text, .title-content {
    text-align: center;
}

.title-content > * {
    display: inline-block;
}

/* Success status container */

.success-status-container {
    position: relative;
    margin-bottom: 20px;
    border-radius: 5px;
    color: #333;
    text-align: center;
}

.success-status-container.error {
    border: 1px solid #cc0022;
}

.success-status-container.success {
    border: 1px solid #11aa44;
}

.success-status-container span {
    display: inline-block;
    min-height: 29px;
    margin: 10px;
    padding-top: 3px;
    padding-left: 35px;
    vertical-align: middle;
    background-size: 29px 29px;
    background-repeat: no-repeat;
}

.success-status-container.error span {
    background-image: url(/resources/images/icons/error-icon.svg);
}

.success-status-container.success span {
    background-image: url(/resources/images/icons/allgood-icon.svg);
}

/* Overlay for apply changes */

.partial-overlayed-screen-body {
    position: relative;
}

.partial-overlay-overlay-content, .partial-overlay-spinner {
    position: absolute;
    left: 0px;
    top: 0px;
    width: 700px;
    height: 100%;
    z-index: 1000;
    opacity: 1.0;
    background: #fff;
}

.partial-overlay-spinner {
    text-align: center;
    background: #fff url(/resources/images/animations/loading.gif) center 3em no-repeat;
}

.guest-network-wizard-loading-spinner {
    display: flex;
    justify-content: center;
}

/**
 * A left aligned text/title (with optional trailing info-icon) and a right-aligned Refresh button all on the same line.
 * Used on Connected Devices, Wireless security, MAC filtering and DHCP screens.
 */

 .summary-area-with-refresh .button-area {
    line-height: 70px;
    float: right;
    /* Force the Refresh button over to the right of the same line of the parent container. */
}

.summary-area-with-refresh h3, .summary-area-with-refresh p {
    display: inline-block;
    /* Allow Refresh button to be placed on same line alongside h3/p text. */
}

/* Button container */

.apply-button-area {
    text-align: right;
}

.button-area.centered-text {
    text-align: center;
}

.apply-button-area {
    margin-top: 35px;
    border-top: 1px solid #d3d3d3;
    padding-top: 30px;
}

.button-area-horizontal-line {
    margin-top: 35px;
    margin-bottom: 30px;
    border-top: 1px solid #d3d3d3;
}

#dmz-settings-table .default-row .default-cell:first-child {
    width: 20%;
}

#dmz-radio-container label {
    margin-left: 0px;
}

/* Colour styles */

/* image colour styling */

.green {
    color: #11aa44;
    fill: #11aa44;
}

.grey {
    color: #666666;
    fill: #666666;
}

.red {
    color: #cc0022;
    fill: #cc0022;
}

/* default style class for index.html divs */

.index-div-defs {
    margin: 0px auto;
    width: 960px;
    position: relative;
}

/* Overlay base definition */

#index-overlay {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    z-index: 2000;
}

/* top navigation bar */

#index-top {
    height: 80px;
    clear: both;
}

/* top navigation bar logo */

#index-top-logo {
    padding: 0px;
    float: left;
    background-repeat: no-repeat;
}

/* top navigation bar right hand side */

#index-top-lang-logout {
    float: right;
    margin-top: 22px;
    color: #333333;
}

/* top navigation bar logout */

#index-top-logout {
    padding: 0px 30px;
    border-right: 1px solid #C0C0C0;
}

#index-top-logout a {
    color: #333;
    padding-left: 30px;
    text-decoration: none;
    background-size: 20px 20px;
    background: url(/resources/images/icons/logout-icon.svg) no-repeat center left;
}

/* top navigation bar language */

#index-top-lang {
    padding-left: 30px;
}

/* top navigation bar language select widget */

#index-top-lang-select {
    position: relative;
    border: 2px solid #d3d3d3;
    border-radius: 3px;
    display: inline-block;
}

/* side navigation bar */

#index-side {
    position: absolute;
    /* TODO: should not use absolute positioning */
    left: 0px;
    top: 10px;
    width: 220px;
    padding: 0px;
    margin-left: 10px;
}

/* side menu */

.side-menu {
    padding: 0px 0px 10px 0px;
}

.side-menu li {
    display: block;
}

.side-menu a {
    font-size: 18px;
    text-decoration: none;
    color: #666666;
    display: inline-block;
}

.side-menu-icon {
    background-size: 26px 35px;
    background-repeat: no-repeat;
    padding: 14px;
}

.home-icon {
    background-image: url(/resources/images/icons/home-icon.svg);
}

.connected-devices-icon {
    background-image: url(/resources/images/icons/connecteddevices-icon.svg);
}

.settings-icon {
    background-image: url(/resources/images/icons/settings-icon.svg);
}

.admin-icon {
    background-image: url(/resources/images/icons/admin-icon.svg);
}

.side-menu-level1 {
    width: 230px;
    padding: 20px 20px 10px 0px;
    color: #000000;
}

.side-menu-title {
    position: relative;
    width: 185px;
    margin-left: 8px;
    margin-bottom: 5px;
    padding-bottom: 10px;
    border-bottom: 1px solid #D3D3D3;
    font-size: 20px;
    text-decoration: none;
    display: inline-block;
}

.side-menu-level2 {
    width: 180px;
    padding-top: 10px;
    border-bottom: 1px solid #D3D3D3;
    margin-bottom: 10px;
}

a.side-menu-level2 {
    font-size: 18px;
}

.side-menu-level3 {
    margin-left: -35px;
}

a.side-menu-level3-arrow {
    margin-left: -3px;
    padding-left: 15px;
    padding-bottom: 10px;
    background: url(/resources/images/icons/arrow-grey.svg) no-repeat 0px 4px;
    background-size: 6px 10px;
}

a.side-menu-level3-arrow:hover {
    background-repeat: no-repeat;
    background-position: 0px 4px;
    background-size: 6px 10px;
}

.side-menu-level1 a {
    font-size: 18px;
    text-decoration: none;
}

.side-menu-level3 a {
    font-size: 16px;
    text-decoration: none;
    color: #666666;
}

/* Content area */

#index-content, #index-content-unavailable {
    position: absolute;
    /* TODO: should not use absolute positioning */
    left: 250px;
    width: 690px;
    padding-left: 10px;
    padding-bottom: 100px;
}

#index-content-unavailable {
    padding-top: 85px;
}

#index-content-unavailable a {
    white-space: pre;
}

/* Home Screen Wizard Area */

#home-wizards {
    margin-bottom: 55px;
}

#home-wizards a {
    display: block;
    text-decoration: none;
    float: left;
}

#home-wizards a:last-child {
    float: none;
}

.wizard-button-containers {
    display: inline-block;
    width: 183px;
    height: 130px;
    border: 1px solid #d2d2d2;
    border-radius: 3px;
    padding: 40px 19px;
    color: #000;
    text-align: center;
    background: #fbfbfb;
}

.wizard-button-containers svg, .wizard-button-containers img {
    height: 60px;
    width: 60px;
    border: 0px;
}

/* Home Screen status Area */

.boxed-content {
    width: 630px;
    margin-bottom: 0px;
    border: 1px solid #d2d2d2;
    border-radius: 3px;
    padding: 40px 19px 0px;
    color: #000;
    text-align: center;
    background: #fbfbfb;
}

.home-status-container {
    margin-bottom: 30px;
}

/* Home Screen modem status Area */

h3.home-status-title {
    font-size: 32px;
    margin: 5px;
    padding-right: 30px;
}

#home-status-modem, .home-status-modem-status, .home-status-modem-status-text {
    display: flex;
}

#home-status-modem {
    justify-content: center;
    margin-bottom: 50px;
}

#home-status-modem-icon {
    background-size: 60px;
    padding: 5px 90px 5px 0px;
}

.modem-icon {
    background-image: url(/resources/images/icons/modem-icon.svg);
    background-repeat: no-repeat;
}

#home-status-modem-statuses {
    flex-direction: column;
    background-size: 85px 85px;
    background-position-y: 5px;
    padding-left: 100px;
}

.home-status-modem-status-icon {
    padding-right: 10px;
}

.home-status-modem-status-text {
    justify-content: center;
    align-items: center;
}

.home-status-modem-status-text span:first-of-type {
    margin-right: 0.2em;
}

.home-status-icon {
    height: 30px;
    width: 30px;
}

/* Home Screen devices Area */

h4.home-status-devices-title {
    margin: 20px 0px;
    padding: 8px;
    font-size: 22px;
    background: #eaeaea;
}

.home-status-devices {
    display: inline-block;
    text-align: left;
}

.home-status-device {
    display: inline-block;
    margin-bottom: 10px;
    padding-left: 15px;
    padding-right: 15px;
    vertical-align: top;
    text-align: center;
}

.home-status-device-status {
    display: block;
    margin: 5px auto;
}

.home-status-device-icon {
    padding-top: 20px;
    padding-bottom: 35px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 68px;
}

.device-icon-desktop {
    background-image: url(/resources/images/icons/device-desktop-icon.svg);
}

.device-icon-laptop {
    background-image: url(/resources/images/icons/device-laptop-icon.svg);
}

.device-icon-mobile {
    background-image: url(/resources/images/icons/device-mobile-icon.svg);
}

.device-icon-tablet {
    background-image: url(/resources/images/icons/device-tablet-icon.svg);
}

.device-icon-printer {
    background-image: url(/resources/images/icons/device-printer-icon.svg);
}

.device-icon-unknown {
    background-image: url(/resources/images/icons/device-unknown-icon.svg);
}

.home-status-device-name {
    width: 120px;
    color: #666;
    word-wrap: break-word;
}

.home-status-devices-change input[type=text], .home-status-devices-change select {
    display: block;
    margin: auto auto 10px auto;
}

.home-status-devices-change input[type=text] {
    width: 170px;
}

.home-status-devices-change select {
    width: 194px;
}

/* Reload and Reboot Area */

#reboot-filename-area .default-row .default-cell:first-child {
    width: 20%;
    white-space: nowrap;
    padding: 20px 0px;
}

#reboot-filename-container {
    width: 50%;
    margin-left: 10px;
    color: #666;
    background: #fff;
}

#reboot-file-selection-button-area input:nth-of-type(3) {
    margin-left: 2%;
}

#reboot-filename-container.error {
    border: 2.5px solid #FF3333
}

.loading-spinner>p {
    font-size: 22px;
    color: #000;
    text-align: center;
}

.loading-spinner>img {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Advanced - Tools - MTU size screen */

#mtu-size-area {
    margin-top: 6%;
    padding-top: 5px;
    padding-right: 5px;
    padding-bottom: 5px;
}

#mtu-size-area .default-row .default-cell:first-child {
    width: 20%;
    white-space: nowrap;
}

#mtu-size-input {
    display: inline-block;
    margin-right: 0.5%;
    margin-bottom: 1.5%;
    margin-left: 2.5%;
}

/* Wireless signal */

.wireless-signal-settings .default-row .default-cell:first-child {
    min-width: 240px;
}

.wireless-signal-settings-input-2g select:disabled, .wireless-signal-settings-input-5g select:disabled {
    background: #f1f1f1;
    color: #d3d3d3;
}

.wireless-signal-settings-input-2g input:disabled+label, .wireless-signal-settings-input-5g input:disabled+label {
    color: #c9c9c9;
}

.wireless-signal-settings-mode-select {
    min-width: 260px;
}

.wireless-signal-settings-channel-width-select {
    min-width: 150px;
    max-width: 200px;
}

.wireless-signal-settings-channel-select {
    width: 150px;
}

.wireless-signal-smart {
    margin-bottom: 70px;
}

.wireless-signal-smart span:nth-of-type(1) {
    display: inline-block;
    min-width: 325px;
}

.wireless-signal-smart span:nth-of-type(2) {
    display: inline-block;
    min-width: 315px;
}

/* Firewall area */

input.firewall-input {
    margin-left: 5px;
}

/* Advanced - Security - common time selection  */

.time-selection input+label {
    display: flex;
    align-items: center;
}

.time-selection-active-at-input {
    padding-left: 30px;
}

.time-selection-tip {
    margin-top: 22px;
    margin-bottom: 35px;
}

/* Advanced - Security - common time selection - tip "icon" */

.time-selection-tip span:nth-of-type(1) {
    display: inline-block;
    height: 19px;
    border-radius: 3px;
    padding: 2px 4px;
    font-size: 16px;
    color: #fff;
    background: #771199;
}

/* Advanced - Security - common time selection - tip text */

.time-selection-tip span:nth-of-type(2) {
    padding: 2px 4px;
    font-size: 16px;
    color: #771199;
}

/* Advanced - Security - MAC filtering */

/* Devices table */

.security-mac-filtering-devices-table-style table {
    width: 100%;
}

.security-mac-filtering-devices-table-style th:nth-of-type(1) {
    width: 5%;
}

.security-mac-filtering-devices-table-style th:nth-of-type(2) {
    width: 35%;
}

.security-mac-filtering-devices-table-style th:nth-of-type(3), .security-mac-filtering-devices-table-style th:nth-of-type(4) {
    width: 30%;
}

/* MAC Filters table */

.security-mac-filtering-table-style table {
    width: 100%;
}

.security-mac-filtering-table-style th:nth-of-type(1) {
    width: 30%;
}

.security-mac-filtering-table-style th:nth-of-type(2) {
    width: 35%;
}

.security-mac-filtering-table-style th:nth-of-type(3), .security-mac-filtering-table-style th:nth-of-type(4) {
    width: 17.5%;
}

.security-mac-filtering-add-rule-area {
    margin-top: 10px;
    margin-bottom: 10px;
}

/* TABS */

/* ---- */

.network-status-heading {
    font-size: 28px;
}

.network-status-tabs table>thead>tr>th:only-child {
    border: none;
}

/* Tab text size and background when not selected */
.network-status-tabs.ui-tabs .ui-tabs-nav .ui-state-default a {
    background: #f2f2f2;
    color: #333333;
    padding: 0.7em 1.4em;
}

.network-status-tabs.ui-tabs .ui-tabs-nav li {
    border-color: #ddd;
}

.network-status-tabs.ui-tabs .ui-tabs-nav li.ui-tabs-active {
    border-width: 1px 1px 0 1px;
    border-color: #ddd;
    border-bottom: none;
}

.network-status-tabs.ui-tabs .ui-tabs-panel {
    border: 1px solid #ddd;
    border-radius: 0;
    border-top: 0;
}

/* END TABS */

/* Wireless security screen area */

.wireless-security-settings-table .default-row .default-cell:first-child {
    width: 31%;
}

.wireless-security-add-device-table .default-row .default-cell:first-child {
    width: 17%;
}

label~label.wireless-security-radio {
    margin-left: 30px;
}

.wireless-security-empty-device-table-message {
    padding: 15px;
}

/* Wireless Guest Network styles */

.wireless-guest-network-settings-table {
    margin-bottom: 30px;
}

.wireless-guest-network-enable-table .default-row .default-cell {
    padding: 3px 4px
}

.wireless-guest-network-settings-table .default-row .default-cell:first-child {
    width: 31%;
}

/* Port forwarding styles */

#port-forward-new-rule>div {
    width: auto
}

.port-forward-checkbox {
    height: 20px;
}

/* Traceroute */

td.traceroute-results-table-host {
    text-align: left
}

img.traceroute-results-spinner {
    width: 110px;
    height: 110px;
    margin: 10px;
}

/* Example text at right of spans */

.example-text-wrap-vertical-center {
    display: inline-block;
    vertical-align: middle;
    width: 80px;
}

/* Port filtering styles */

.portfiltering-select {
    width: 165px;
}

.portfiltering-label-column {
    width: 180px;
    min-width: 180px;
    max-width: 180px;
}

.portfiltering-rule-range .default-row .default-cell:first-child {
    width: 30%;
}

.portfiltering-rule-range .default-cell:first-child {
    padding-left: 0;
}

/* Advanced - DHCP */

.dhcp-v4-label-column {
    width: 180px;
    min-width: 180px;
    max-width: 180px;
}

.dhcp-v6-input-layout {
    min-width: 220px;
}

.dhcp-reservedip-input-layout {
    min-width: 115px;
}

/* Advanced - DNS */

.dns-label-column {
    min-width: 180px;
}

.firewall-table-layout {
    margin-top: 20px;
    margin-bottom: 30px;
    float: left;
    width: 50%;
}

.firewall-apply-container {
    clear: both;
}
