/*
 * 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}/* ============================================================
   Nexora Bastion - theme sombre pour Apache Guacamole 1.6
   ============================================================ */
:root {
  color-scheme: dark;
  --nx-bg:        #0f1319;
  --nx-surface:   #171c24;
  --nx-surface-2: #1f2630;
  --nx-border:    #2a3340;
  --nx-text:      #e6ebf2;
  --nx-muted:     #8b97a8;
  --nx-accent:    #2f6fed;
  --nx-accent-2:  #6aa6ff;
  --nx-warn:      #f0b400;
}

/* ---------- Base ---------- */
html, body, .login-ui, #content, .home, .settings, .manage, .view {
  background: var(--nx-bg) !important;
  color: var(--nx-text) !important;
}
a, a:visited { color: var(--nx-accent-2) !important; }
::selection { background: var(--nx-accent); color: #fff; }

/* ---------- Page de connexion ---------- */
.login-ui {
  background:
    radial-gradient(1200px 600px at 50% -10%, rgba(47,111,237,.18), transparent 60%),
    var(--nx-bg) !important;
}
.login-ui .login-dialog {
  background: var(--nx-surface) !important;
  border: 1px solid var(--nx-border) !important;
  border-top: 3px solid var(--nx-accent) !important;
  border-radius: 12px !important;
  box-shadow: 0 20px 50px rgba(0,0,0,.55) !important;
  padding: 1.5em 1.75em !important;
}
.login-ui .login-dialog .logo {
  background-image: url('app/ext/nexora-theme/images/logo.svg') !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  width: 6em !important;
  height: 6em !important;
  margin: .25em auto .75em !important;
}
.login-ui .login-dialog .version .app-name {
  color: var(--nx-text) !important;
  font-weight: 600;
  letter-spacing: .04em;
}
.login-ui .login-dialog .version .version-number {
  color: var(--nx-muted) !important;
  background: transparent !important;
}
.login-ui .login-dialog::after {
  content: "Acc\E8 s r\E9 serv\E9  aux personnes autoris\E9 es \2014  toutes les sessions sont trac\E9 es et enregistr\E9 es.";
  display: block;
  margin-top: 1.25em;
  padding-top: 1em;
  border-top: 1px solid var(--nx-border);
  font-size: .8em;
  line-height: 1.4;
  color: var(--nx-warn);
  text-align: center;
}
.login-ui .login-dialog .login-error,
.login-ui .login-dialog p.login-error { color: #ff6b6b !important; }

/* ---------- Formulaires ---------- */
input, select, textarea {
  background: var(--nx-surface-2) !important;
  color: var(--nx-text) !important;
  border: 1px solid var(--nx-border) !important;
  border-radius: 6px !important;
}
input:focus, select:focus, textarea:focus {
  outline: none !important;
  border-color: var(--nx-accent) !important;
  box-shadow: 0 0 0 3px rgba(47,111,237,.25) !important;
}
input[type=submit], button, a.button, .button {
  background: var(--nx-accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 6px !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
input[type=submit]:hover, button:hover, a.button:hover, .button:hover {
  background: #3d7cff !important;
}
button.danger, .button.danger, a.button.danger { background: #c0392b !important; }
input[type=checkbox], input[type=radio] { accent-color: var(--nx-accent); }

/* ---------- En-tetes, menus, onglets ---------- */
.header, h2, .menu-dropdown .menu-contents, .page-tabs, .section-tabs,
.settings .header, .manage .header {
  background: var(--nx-surface) !important;
  color: var(--nx-text) !important;
  border-color: var(--nx-border) !important;
}
.menu-dropdown, .menu-dropdown .menu-title { color: var(--nx-text) !important; }
.menu-dropdown .menu-contents li a { color: var(--nx-text) !important; }
.menu-dropdown .menu-contents li a:hover,
.list-item:hover, .list-item.selected {
  background: var(--nx-surface-2) !important;
}
.page-tabs .page-list li a, .section-tabs li a { color: var(--nx-muted) !important; }
.page-tabs .page-list li a.current,
.section-tabs li a.current {
  color: var(--nx-text) !important;
  border-bottom: 2px solid var(--nx-accent) !important;
  background: transparent !important;
}

/* ---------- Listes, tableaux, connexions recentes ---------- */
table, th, td { border-color: var(--nx-border) !important; }
th { background: var(--nx-surface-2) !important; color: var(--nx-text) !important; }
tr:nth-child(even) td { background: rgba(255,255,255,.02); }
.recent-connections .connection {
  background: var(--nx-surface) !important;
  border: 1px solid var(--nx-border) !important;
  border-radius: 8px !important;
}
.recent-connections .connection:hover { border-color: var(--nx-accent) !important; }
.recent-connections .connection .name,
.connection .name, .connection-group .name { color: var(--nx-text) !important; }
.placeholder, .no-recent { color: var(--nx-muted) !important; }

/* ---------- Notifications / modales ---------- */
.notification, .modal .notification, .dialog {
  background: var(--nx-surface) !important;
  color: var(--nx-text) !important;
  border: 1px solid var(--nx-border) !important;
  border-radius: 10px !important;
}
.notification .title-bar, .dialog .header {
  background: var(--nx-surface-2) !important;
  color: var(--nx-text) !important;
}

/* ---------- Icones noires visibles sur fond sombre ---------- */
.header .icon, .menu-dropdown .icon, .page-tabs .icon,
.list-item .icon.type, .action .icon { filter: invert(1) brightness(1.1); }

/* ---------- Barre de defilement ---------- */
* { scrollbar-color: var(--nx-border) var(--nx-bg); }
