/* Adminetwork Guacamole 1.6.0 – login-only branding.
   Exact brand-blue sampled from the provided Adminetwork logo: #038ED8.
   Design purposefully avoids changing the post-login Guacamole UI. */

/* Full-screen white / cool-blue photographic background. */
div.login-ui {
    background-color: #F7FAFD !important;
    background-image: url('app/ext/adminetwork-branding/images/adminetwork-bg.png') !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
}

/* Floating contrast panel: the white N in the supplied logo remains visible. */
.login-ui .login-dialog {
    box-sizing: border-box;
    width: min(440px, calc(100vw - 32px));
    max-width: 440px;
    margin-left: auto;
    margin-right: auto;
    padding: 27px 32px 30px;
    background: rgba(14, 32, 54, .95) !important;
    border: 1px solid rgba(255, 255, 255, .24) !important;
    border-radius: 16px !important;
    box-shadow: 0 19px 55px rgba(16, 38, 60, .22) !important;
    color: white;
}

/* Replace Guacamole icon with the user's exact, original PNG logo. */
.login-ui .login-dialog .logo {
    display: block;
    width: min(270px, 100%);
    height: 68px;
    margin: 0 auto 18px;
    background-image: url('app/ext/adminetwork-branding/images/adminetwork-logo.png') !important;
    background-position: center center !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
}

/* Hide default Apache Guacamole title/version, without altering functionality. */
.login-ui .login-dialog .version {
    display: none !important;
}

.login-ui .login-dialog p,
.login-ui .login-dialog label {
    color: #F4F8FC;
}

.login-ui .login-fields input:not([type="submit"]) {
    box-sizing: border-box;
    background: #FFFFFF;
    color: #18314A;
    border: 1px solid #C8D5E2;
    border-radius: 7px;
}

.login-ui .login-fields input:not([type="submit"]):focus {
    background-color: #FFFFFF !important;
    border-color: #038ED8 !important;
    outline: 2px solid #038ED8 !important;
    outline-offset: 0;
}

/* Form field overlay labels must remain legible on white inputs. */
.login-ui .login-fields .labeled-field .field-header {
    color: #243F58;
}

/* Use the exact Adminetwork blue – no teal or cyan approximations. */
.login-ui .login-dialog input[type="submit"] {
    background-color: #038ED8 !important;
    border: 1px solid #038ED8 !important;
    border-radius: 8px !important;
    color: #FFFFFF !important;
    font-weight: 600;
    cursor: pointer;
}
.login-ui .login-dialog input[type="submit"]:hover,
.login-ui .login-dialog input[type="submit"]:focus {
    background-color: #038ED8 !important;
    border-color: #038ED8 !important;
    filter: brightness(.92);
}
.login-ui .login-dialog input[type="submit"]:disabled {
    opacity: .65;
    cursor: wait;
}

@media (max-width: 480px) {
    .login-ui .login-dialog {
        padding: 24px 20px 26px;
    }
    .login-ui .login-dialog .logo {
        width: min(240px, 100%);
        height: 60px;
    }
}


/* Adminetwork Branding v1.2 – logged-out / re-login states.
   Uses the Guacamole 1.6.0 index.html parent classes instead of requiring
   the guac-modal element, so the rules remain effective if a directive
   changes the inner DOM. The working login styling above stays untouched. */

/* These screens are separate from the normal .login-ui screen. */
body > .logged-out-modal,
body > .automatic-login-rejected-modal,
.logged-out-modal,
.automatic-login-rejected-modal {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
    background-color: #F7FAFD !important;
    background-image: url('app/ext/adminetwork-branding/images/adminetwork-bg.png') !important;
    background-position: center center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
}

/* Support both the normal guac-modal directive and its transcluded contents. */
.logged-out-modal guac-modal,
.automatic-login-rejected-modal guac-modal,
.logged-out-modal .modal-contents,
.automatic-login-rejected-modal .modal-contents {
    background-color: transparent !important;
    background-image: none !important;
}

/* IMPORTANT: no 'guac-modal' dependency in these content selectors. */
.logged-out-modal .notification,
.automatic-login-rejected-modal .notification {
    box-sizing: border-box !important;
    position: relative;
    display: inline-block !important;
    width: min(440px, calc(100vw - 32px)) !important;
    max-width: 440px !important;
    padding: 27px 32px 30px !important;
    margin: 16px auto !important;
    color: #FFFFFF !important;
    background: rgba(14, 32, 54, .95) !important;
    border: 1px solid rgba(255, 255, 255, .24) !important;
    border-radius: 16px !important;
    box-shadow: 0 19px 55px rgba(16, 38, 60, .22) !important;
    text-align: center !important;
}

/* Original user-provided Adminetwork wordmark. */
.logged-out-modal .notification::before,
.automatic-login-rejected-modal .notification::before {
    content: '';
    display: block;
    width: min(270px, 100%);
    height: 68px;
    margin: 0 auto 18px;
    background-image: url('app/ext/adminetwork-branding/images/adminetwork-logo.png') !important;
    background-position: center center !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
}

.logged-out-modal .notification p,
.automatic-login-rejected-modal .notification p {
    color: #FFFFFF !important;
    line-height: 1.5 !important;
}

.logged-out-modal .notification button,
.automatic-login-rejected-modal .notification button {
    background: #038ED8 !important;
    border: 1px solid #038ED8 !important;
    border-radius: 8px !important;
    color: #FFFFFF !important;
    padding: 10px 22px !important;
    min-height: 42px;
    max-width: 100%;
    font-weight: 600;
    cursor: pointer;
}

.logged-out-modal .notification button:hover,
.automatic-login-rejected-modal .notification button:hover {
    filter: brightness(.92);
}

.logged-out-modal .notification button:focus-visible,
.automatic-login-rejected-modal .notification button:focus-visible {
    outline: 2px solid #038ED8 !important;
    outline-offset: 3px;
}

@media (max-width: 480px) {
    .logged-out-modal .notification,
    .automatic-login-rejected-modal .notification {
        padding: 24px 20px 26px !important;
    }
    .logged-out-modal .notification::before,
    .automatic-login-rejected-modal .notification::before {
        width: min(240px, 100%);
        height: 60px;
    }
}


/* ==============================================================
   Adminetwork v1.3 - shared, LIGHT corporate theme for Home and
   Settings (including their administrative tabs). Login / logout
   rules above are preserved, and remote desktop viewport is NOT
   affected. Brand blue: EXACT #038ED8 (original supplied logo).
   Guacamole 1.6.0 view roots: .home-view and .settings-view.
   ============================================================== */

/* Scope every rule to the two requested application views, keeping
   RDP, VNC, SSH client views and Guacamole's client menu untouched. */
#content:has(> .home-view),
#content:has(> .settings-view),
#content .home-view,
#content .settings-view {
    background-color: #F7FAFD !important;
    background-image: url('app/ext/adminetwork-branding/images/adminetwork-bg.png') !important;
    background-repeat: no-repeat !important;
    background-position: center top !important;
    background-size: cover !important;
}

#content .home-view,
#content .settings-view {
    min-height: 100vh;
    min-height: 100dvh;
    box-sizing: border-box;
    color: #1C344D;
}

/* Home list / settings header: matching dark brand strip.
   Do not alter Guacamole's existing flex placement or menu logic. */
#content .home-view .connection-list-ui > .header,
#content .settings-view > .header {
    background: rgba(14, 32, 54, .96) !important;
    color: #FFFFFF !important;
    border: 1px solid rgba(3, 142, 216, .4) !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 22px rgba(16, 38, 60, .13) !important;
    box-sizing: border-box;
    padding: 12px 20px !important;
    min-height: 66px;
    margin-bottom: 14px;
}

#content .home-view .connection-list-ui > .header h2,
#content .settings-view > .header h2,
#content .home-view .connection-list-ui > .header a,
#content .settings-view > .header a {
    color: #FFFFFF;
}

/* Native original PNG logo, rendered once in Home's visible top
   header even when Recent Connections is disabled. */
#content .home-view .connection-list-ui > .header:first-of-type:not(.ng-hide)::before,
#content .home-view .connection-list-ui > .header:last-of-type::before,
#content .settings-view > .header::before {
    content: '';
    display: block;
    flex: 0 0 210px;
    width: 210px;
    height: 44px;
    margin-right: 16px;
    background-image: url('app/ext/adminetwork-branding/images/adminetwork-logo.png');
    background-position: center center;
    background-size: contain;
    background-repeat: no-repeat;
}

/* Hide second home logo if the "recent" header is present. */
#content .home-view .connection-list-ui > .header:first-of-type:not(.ng-hide) ~ .header:last-of-type::before {
    display: none;
}

/* Light opaque surfaces keep controls and tables readable above the
   pale background image. No fixed widths or rigid height constraints. */
#content .home-view .all-connections,
#content .home-view .recent-connections,
#content .settings-view .page-tabs,
#content .settings-view .section,
#content .settings-view .settings.section {
    background: rgba(255, 255, 255, .97) !important;
    border: 1px solid rgba(3, 142, 216, .18) !important;
    border-radius: 12px !important;
    box-shadow: 0 7px 24px rgba(16, 38, 60, .075) !important;
    box-sizing: border-box;
}

#content .home-view .all-connections,
#content .home-view .recent-connections,
#content .settings-view .page-tabs {
    padding: 12px !important;
    margin-bottom: 14px;
}

#content .settings-view .section,
#content .settings-view .settings.section {
    padding: 16px 20px !important;
    margin-bottom: 16px;
}

/* Section titles below the main header: keep contrast against white. */
#content .home-view h2:not(.header h2),
#content .settings-view .preferences > h2.header,
#content .settings-view .section h2,
#content .settings-view h3 {
    color: #18314A;
}

/* Native Guacamole menu is preserved; only the brand palette is set. */
#content .home-view .user-menu,
#content .settings-view .user-menu {
    color: #FFFFFF;
}
#content .home-view .user-menu a,
#content .settings-view .user-menu a {
    color: inherit;
}

/* Connection cards and lists. Restrict effects to hover/focus to avoid
   changing the Angular connection selection behavior. */
#content .home-view .connection-list-ui .connection,
#content .home-view .connection-list-ui .list-item,
#content .settings-view .page-tabs .page-list li {
    border-radius: 8px;
}
#content .home-view .connection-list-ui .connection:hover,
#content .home-view .connection-list-ui .list-item:hover,
#content .settings-view .page-tabs .page-list li a[href]:hover {
    background-color: #EAF3FB !important;
}

#content .settings-view .page-tabs .page-list li a[href],
#content .settings-view .page-tabs a {
    color: #18314A;
}
#content .settings-view .page-tabs .page-list .selected a,
#content .settings-view .page-tabs .page-list a.active,
#content .settings-view .page-tabs .page-list a[aria-current="page"] {
    color: #038ED8 !important;
    border-color: #038ED8 !important;
    font-weight: 600;
}

/* Accessible fields and administrative tables. */
#content .home-view input:not([type="checkbox"]):not([type="radio"]),
#content .settings-view input:not([type="checkbox"]):not([type="radio"]),
#content .settings-view select,
#content .settings-view textarea {
    border-color: #B9CBDC;
    border-radius: 7px;
    background-color: #FFFFFF;
    color: #18314A;
    box-sizing: border-box;
}
#content .home-view input:focus-visible,
#content .settings-view input:focus-visible,
#content .settings-view select:focus-visible,
#content .settings-view textarea:focus-visible,
#content .home-view button:focus-visible,
#content .settings-view button:focus-visible {
    outline: 2px solid #038ED8 !important;
    outline-offset: 2px;
}

#content .settings-view input[type="checkbox"],
#content .settings-view input[type="radio"],
#content .home-view input[type="checkbox"] {
    accent-color: #038ED8;
}

#content .settings-view table,
#content .settings-view .list {
    background-color: rgba(255,255,255,.96);
}
#content .settings-view table th {
    color: #18314A;
}
#content .settings-view table tr:hover td {
    background-color: #F1F7FD;
}

/* Positive actions only; do not recolor delete/danger actions. */
#content .settings-view .action-buttons button:not(.danger):not(.delete),
#content .settings-view .action-buttons input[type="submit"],
#content .home-view input[type="submit"] {
    background-color: #038ED8 !important;
    border: 1px solid #038ED8 !important;
    color: #FFFFFF !important;
    border-radius: 8px !important;
    font-weight: 600;
}
#content .settings-view .action-buttons button:not(.danger):not(.delete):hover,
#content .settings-view .action-buttons input[type="submit"]:hover,
#content .home-view input[type="submit"]:hover {
    filter: brightness(.92);
}

/* Keep compact menus usable on narrower displays. */
@media (max-width: 740px) {
    #content .home-view .connection-list-ui > .header,
    #content .settings-view > .header {
        flex-wrap: wrap;
        gap: 8px;
        padding: 10px 12px !important;
    }
    #content .home-view .connection-list-ui > .header:first-of-type:not(.ng-hide)::before,
    #content .home-view .connection-list-ui > .header:last-of-type::before,
    #content .settings-view > .header::before {
        flex-basis: 160px;
        width: 160px;
        height: 34px;
        margin-right: 4px;
    }
    #content .settings-view .section,
    #content .settings-view .settings.section {
        padding: 12px !important;
    }
}


/* ================================================================
   Adminetwork 1.4: unified Guacamole application chrome.
   Covers remaining app views, global notification dialogs,
   user menus, RDP/VNC/SSH overlay menu and file-browser overlays.
   DO NOT style .client-body, guac-client, canvas or remote terminal.
   Original corporate accent: #038ED8 (exact supplied logo blue).
   ================================================================ */

/* Layout-safe background for any non-client route, including admin
   subpages, connection-history, preferences, recordings and reports.
   Browser support for :has() is available in current Chrome. */
body #content:not(:has(.client-view)) {
    background-color: #F7FAFD !important;
    background-image: url('app/ext/adminetwork-branding/images/adminetwork-bg.png') !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-position: center top !important;
    min-height: 100vh;
    min-height: 100dvh;
}
body #content > :not(.client-view):not(.ng-hide) {
    box-sizing: border-box;
}

/* Consistent typography / link accents across the app chrome. */
body #content:not(:has(.client-view)) a:link:not(.button),
body #content:not(:has(.client-view)) a:visited:not(.button) {
    text-decoration-color: rgba(3,142,216,.45);
}
body #content:not(:has(.client-view)) a:hover,
body #content:not(:has(.client-view)) a:focus-visible {
    color: #038ED8;
}

/* Any regular (non-remote) content page remains legible over wallpaper.
   Existing Guacamole lists keep their original layout and controls. */
#content > :not(.client-view) .section,
#content > :not(.client-view) .form-section,
#content > :not(.client-view) .list-section {
    border-color: rgba(3,142,216,.18);
}
#content > :not(.client-view) table th {
    color: #18314A;
}
#content > :not(.client-view) input[type="checkbox"],
#content > :not(.client-view) input[type="radio"] {
    accent-color: #038ED8;
}
#content > :not(.client-view) :is(button,input,select,textarea,a):focus-visible {
    outline: 2px solid #038ED8;
    outline-offset: 2px;
}
#content > :not(.client-view) :is(input:not([type="checkbox"]):not([type="radio"]),textarea,select) {
    border-radius: 6px;
}

/* App user menu and dropdowns shared by home and settings pages. */
#content guac-user-menu .user-menu,
#content guac-user-menu .menu,
#content .home-view .user-menu .menu,
#content .settings-view .user-menu .menu {
    border-color: rgba(3,142,216,.25);
}
#content .home-view guac-user-menu .menu > ul,
#content .settings-view guac-user-menu .menu > ul,
#content .home-view guac-user-menu .menu-contents,
#content .settings-view guac-user-menu .menu-contents {
    background-color: #FFFFFF;
    color: #18314A;
    border: 1px solid rgba(3,142,216,.20);
    box-shadow: 0 8px 22px rgba(16,38,60,.13);
}

/* Guacamole connection sidebar / menu, file system browser and menu
   overlays. Desktop display beneath stays rendered as before. */
#guac-menu .menu-content,
#filesystem-menu .menu-content {
    background-color: #F7FAFD !important;
    color: #18314A;
}
#guac-menu .menu-content > .header,
#filesystem-menu .menu-content > .header:not(.breadcrumbs) {
    background: #10263F !important;
    border-bottom: 3px solid #038ED8 !important;
    color: #FFFFFF !important;
}
#guac-menu .menu-content > .header h2,
#filesystem-menu .menu-content > .header:not(.breadcrumbs) h2 {
    color: #FFFFFF !important;
}
#guac-menu .menu-content > .header::before,
#filesystem-menu .menu-content > .header:not(.breadcrumbs)::before {
    content: '';
    display: block;
    height: 34px;
    width: 170px;
    max-width: 65%;
    margin: 4px 8px 9px 0;
    background: url('app/ext/adminetwork-branding/images/adminetwork-logo.png') left center / contain no-repeat;
}
#guac-menu .menu-body,
#filesystem-menu .menu-body {
    background-color: #F8FBFE !important;
    background-image: url('app/ext/adminetwork-branding/images/adminetwork-bg.png') !important;
    background-position: center top !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
}
#guac-menu .menu-section,
#filesystem-menu .menu-section {
    background: rgba(255,255,255,.97);
    border-bottom-color: rgba(3,142,216,.18) !important;
}
#guac-menu .menu-section h3,
#filesystem-menu .menu-section h3 {
    color: #18314A !important;
}
#guac-menu a,
#filesystem-menu a,
#guac-menu .choice:focus-visible,
#filesystem-menu .choice:focus-visible {
    outline-color: #038ED8;
}
#guac-menu input[type="checkbox"],
#guac-menu input[type="radio"] {
    accent-color: #038ED8;
}
#guac-menu :is(input,textarea,select,button):focus-visible,
#filesystem-menu :is(input,textarea,select,button):focus-visible {
    outline: 2px solid #038ED8 !important;
    outline-offset: 2px;
}
#guac-menu .button:not(.danger):not(.delete),
#filesystem-menu .button:not(.danger):not(.delete) {
    border-radius: 7px !important;
}
#guac-menu .button:not(.danger):not(.delete):hover,
#filesystem-menu .button:not(.danger):not(.delete):hover {
    border-color: #038ED8 !important;
}
#filesystem-menu .breadcrumbs {
    background-color: #EAF3FB !important;
    border-bottom: 1px solid rgba(3,142,216,.20) !important;
}

/* Connection switcher when multiple live connections are open. */
#other-connections .header,
#other-connections .menu-header {
    background: #10263F;
    color: #FFFFFF;
    border-bottom: 2px solid #038ED8;
}
#other-connections .connection:hover,
#other-connections .client:hover {
    background-color: #EAF3FB;
}

/* Global status, error, session-expired, confirmation and ancillary
   dialogs. Do not recolor destructive buttons (delete/remove). */
.global-status-modal .notification,
.guac-modal .notification,
guac-modal.global-status-modal .notification {
    background-color: #FFFFFF;
    color: #18314A;
    border: 1px solid rgba(3,142,216,.28);
    border-radius: 12px;
    box-shadow: 0 14px 42px rgba(16,38,60,.20);
}
.global-status-modal .notification h1,
.global-status-modal .notification h2,
.global-status-modal .notification h3,
.global-status-modal .notification p {
    color: #18314A;
}
.global-status-modal button:not(.danger):not(.delete),
.global-status-modal input[type="submit"],
.guac-modal .notification input[type="submit"]:not(.danger) {
    background-color: #038ED8;
    color: #FFFFFF;
    border: 1px solid #038ED8;
    border-radius: 8px;
}

/* Keep TOTP prompts consistent but preserve existing login functionality. */
.login-ui .login-dialog input[type="checkbox"],
.login-ui .login-dialog input[type="radio"] {
    accent-color: #038ED8;
}

@media (max-width: 740px) {
    #guac-menu .menu-content > .header::before,
    #filesystem-menu .menu-content > .header:not(.breadcrumbs)::before {
        width: 130px;
        height: 27px;
        margin: 2px 4px 6px 0;
    }
}


/* ====================================================================
   Adminetwork v1.5 - light gray-blue content panels and accessible menu.
   Approved white-blue wallpaper, header, logo, login/logout unchanged.
   Surface: #EAF1F7, corporate blue: #038ED8 (exact brand value).
   ==================================================================== */

/* The large previously-white Recent / All Connections and Settings cards.
   The header and background image remain untouched. */
#content .home-view .recent-connections,
#content .home-view .all-connections,
#content .settings-view .section,
#content .settings-view .settings.section,
#content .settings-view .form-section,
#content .settings-view .list-section {
    background-color: #EAF1F7 !important;
    background-image: none !important;
    background: #EAF1F7 !important;
    border-color: rgba(3, 142, 216, .23) !important;
    color: #18314A;
}

/* Keep administrative input fields and data rows bright, highly legible. */
#content .settings-view input:not([type="checkbox"]):not([type="radio"]),
#content .settings-view select,
#content .settings-view textarea,
#content .home-view input[type="search"],
#content .home-view input[type="text"] {
    background-color: #FFFFFF !important;
    color: #18314A !important;
}
#content .settings-view table,
#content .settings-view .list {
    background-color: rgba(255,255,255,.72);
}
#content .settings-view table thead,
#content .settings-view table th {
    background-color: #DCE8F3;
    color: #18314A;
}
#content .settings-view .section h2,
#content .settings-view .section h3,
#content .home-view .recent-connections h2,
#content .home-view .all-connections h2 {
    color: #18314A;
}

/* Fix low-contrast user dropdown from v1.4.  These selectors are scoped
   to open dropdown descendants, NOT the dark top header/button. */
#content .home-view .user-menu .menu,
#content .settings-view .user-menu .menu,
#content .home-view .user-menu .menu-body,
#content .settings-view .user-menu .menu-body,
#content .home-view .user-menu .menu-content,
#content .settings-view .user-menu .menu-content,
#content .home-view .user-menu .menu-contents,
#content .settings-view .user-menu .menu-contents,
#content .home-view guac-user-menu .menu,
#content .settings-view guac-user-menu .menu {
    background-color: #172B42 !important;
    color: #FFFFFF !important;
    border-color: rgba(3,142,216,.35) !important;
}
#content .home-view .user-menu .menu :is(a,span,div,li,label,p),
#content .settings-view .user-menu .menu :is(a,span,div,li,label,p),
#content .home-view guac-user-menu .menu :is(a,span,div,li,label,p),
#content .settings-view guac-user-menu .menu :is(a,span,div,li,label,p) {
    color: #FFFFFF !important;
}
#content .home-view .user-menu .menu :is(a,li):hover,
#content .settings-view .user-menu .menu :is(a,li):hover,
#content .home-view guac-user-menu .menu :is(a,li):hover,
#content .settings-view guac-user-menu .menu :is(a,li):hover {
    background-color: #24445F !important;
    color: #FFFFFF !important;
}
#content .home-view .user-menu .menu a:focus-visible,
#content .settings-view .user-menu .menu a:focus-visible {
    outline: 2px solid #038ED8;
    outline-offset: -2px;
}
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

/* Label/tag denoting the user that shared a connection */
.jdbc-share-tag {

    background: #0095ff;
    padding: 0.25em;

    -moz-border-radius:    0.25em;
    -webkit-border-radius: 0.25em;
    -khtml-border-radius:  0.25em;
    border-radius:         0.25em;

    color: white;
    font-size: 0.75em;
    font-weight: bold;

}
.totp-enroll p,.totp-details{font-size:.8em}.totp-qr-code{text-align:center}.totp-qr-code img{margin:1em;border:1px solid rgba(0,0,0,0.25);box-shadow:1px 1px 2px rgba(0,0,0,0.25);cursor:pointer}h3.totp-details-header{font-size:.8em}h3.totp-details-header::before{content:'▸ '}.totp-details-visible h3.totp-details-header::before{content:'▾ '}.totp-details,.totp-hide-details{display:none}.totp-details-visible .totp-details{display:table}.totp-details-visible .totp-hide-details{display:inline}.totp-details-visible .totp-show-details{display:none}.totp-hide-details,.totp-show-details{color:blue;text-decoration:underline;cursor:pointer;margin:0 .25em;font-weight:normal}.totp-details{margin:0 auto}.totp-details th{padding-right:.25em;text-align:left}.totp-details td{font-family:monospace}.totp-detail{display:inline-block;margin:0 .25em}