/*
 * 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;

}
/* NPUU Workspace — additive branding for Apache Guacamole 1.6.0. */
body { font-family: "Segoe UI", Inter, Arial, sans-serif; }
div.login-ui, div.login-ui * { box-sizing: border-box; }
div.login-ui {
  position: absolute; inset: 0; min-height: 100vh; height: auto; width: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 48px 32px; overflow: auto;
  background: #eef3f7; color: #19344b;
  background-image: radial-gradient(ellipse at 8% 0%, #dcebf0 0%, transparent 48%), radial-gradient(ellipse at 100% 100%, #dde8f4 0%, transparent 48%);
  font-family: "Segoe UI", Inter, Arial, sans-serif;
}
.login-ui .login-dialog-middle {
  display: grid; grid-template-columns: 1.12fr 1fr; align-items: stretch;
  width: 100%; max-width: 1140px; min-height: 684px;
  text-align: left; border: 1px solid #fff; border-radius: 28px;
  overflow: hidden; background: #fff;
  box-shadow: 0 24px 80px #173d5c16, 0 2px 8px #173d5c06;
}
.npuu-hero {
  position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column;
  padding: 46px 48px 30px; color: #fff;
  background: linear-gradient(145deg, #102c49 0%, #174c70 64%, #086c77 100%);
}
.npuu-hero::before, .npuu-hero::after {
  content: ""; position: absolute; z-index: -1; border: 1px solid #a2d7dd15;
  width: 610px; height: 610px; border-radius: 50%; left: 180px; top: 60px;
  pointer-events: none;
}
.npuu-hero::after { width: 430px; height: 430px; left: 270px; top: 150px; }
.npuu-brand { display: flex; align-items: center; gap: 15px; }
.npuu-brand img { width: 60px; height: 60px; border-radius: 13px; padding: 5px; background: #fff; object-fit: contain; }
.npuu-brand strong { display: block; color: #fff; font-size: 23px; letter-spacing: 2px; font-weight: 650; line-height: 1.2; }
.npuu-brand div > span { display: block; color: #aac6d6; font-size: 10px; letter-spacing: 3.2px; margin-top: 6px; }
.npuu-hero-copy { margin-top: 64px; }
.npuu-eyebrow { display: flex; align-items: center; gap: 9px; color: #b6d6e2; font-size: 10px; letter-spacing: 1.7px; font-weight: 600; }
.npuu-eyebrow > span { width: 6px; height: 6px; background: #6bd4cc; border-radius: 50%; }
.npuu-hero h1 { text-align: left; margin: 20px 0 20px; font-size: clamp(42px, 4.3vw, 58px); line-height: 1.09; letter-spacing: -2.4px; font-weight: 650; color: white; }
.npuu-hero h1 em { font-style: normal; font-weight: 400; color: #8de0d5; }
.npuu-hero-copy > p { color: #c1d5e1; font-size: 15px; line-height: 1.8; margin: 0; }
.npuu-terminal { margin-top: 39px; width: 100%; max-width: 405px; border: 1px solid #bddce526; border-radius: 12px; background: #0b21396b; box-shadow: 0 12px 30px #091f3214; }
.npuu-terminal-top { display: flex; align-items: center; gap: 5px; padding: 13px 16px; border-bottom: 1px solid #bddce514; }
.npuu-terminal-top i { width: 6px; height: 6px; border-radius: 50%; background: #55748b; }
.npuu-terminal-top i:first-child { background: #75c3c5; }
.npuu-terminal-top span { margin-left: 12px; color: #99b3c5; font-size: 10px; font-family: Consolas, monospace; letter-spacing: .3px; }
.npuu-terminal-top b { margin-left: auto; color: #7093a7; font-weight: 400; }
.npuu-terminal-body { padding: 20px 21px 23px; font-family: Consolas, monospace; font-size: 13px; color: #e0f0f5; }
.npuu-prompt { color: #85dfce; margin-right: 12px; }
.npuu-cursor { display: inline-block; height: 14px; width: 7px; background: #7ed6cf; margin-left: 8px; vertical-align: -2px; }
.npuu-terminal-body p { margin: 11px 0 0; font-size: 11px; color: #83a6bd; }
.npuu-hero-bottom { margin-top: auto; padding-top: 36px; display: flex; justify-content: space-between; gap: 12px; color: #94b9cc; font-size: 10px; }
.npuu-hero-bottom > span:first-child { letter-spacing: 1.2px; font-size: 9px; }
.login-ui .login-dialog, .login-ui.continuation .login-dialog {
  display: flex; align-items: center; width: 100%; max-width: none;
  background: #fff; border: 0; border-radius: 0; box-shadow: none;
  padding: 48px 62px 30px; margin: 0; font-size: 14px; text-align: left;
}
.login-ui .login-form { width: 100%; margin: 0; padding: 0; }
.npuu-card-logo { display: block; width: 76px; height: 76px; object-fit: contain; margin: 0 0 25px -9px; }
.npuu-card-eyebrow { font-size: 10px; font-weight: 650; letter-spacing: 1.7px; color: #16848e; margin: 0 0 10px; }
.npuu-welcome h2 { margin: 0 0 10px; color: #17344e; font-size: 29px; letter-spacing: -.85px; line-height: 1.2; font-weight: 650; }
.npuu-welcome p { margin: 0; color: #7a8b9b; font-size: 13px; line-height: 1.7; }
.login-ui .login-dialog .login-fields { margin-top: 30px; }
.login-ui .login-fields .labeled-field { margin: 0 0 19px; }
.login-ui .login-fields .labeled-field .field-header {
  position: static; display: block; z-index: auto; overflow: visible;
  opacity: 1; color: #43596d; font-size: 12px; font-weight: 600;
  margin: 0 0 8px; text-shadow: none;
}
.login-ui .login-dialog .login-fields input,
.login-ui .login-dialog .login-fields .labeled-field.empty input {
  width: 100%; max-width: none; height: 49px; margin: 0; padding: 12px 14px;
  border: 1px solid #dce5ed; border-radius: 9px; background: #f8fafc;
  font: 14px "Segoe UI", Arial, sans-serif; color: #19344b;
  transition: border-color .16s ease, box-shadow .16s ease;
  box-shadow: none; outline: none;
}
.login-ui .login-dialog .login-fields input:focus {
  background: #fff; border-color: #16828e; box-shadow: 0 0 0 3px #16828e15;
}
.login-ui .login-dialog .buttons { margin: 25px 0 0; text-align: left; }
.login-ui .login-dialog .buttons input[type="submit"] {
  appearance: none; width: 100%; height: 49px; margin: 0; padding: 12px 16px;
  color: #fff; background: #1c5e95; border: 1px solid #1c5e95; border-radius: 9px;
  box-shadow: 0 5px 13px #1c5e9524; font: 600 14px "Segoe UI", Arial, sans-serif;
  text-shadow: none; cursor: pointer; transition: background .15s ease;
}
.login-ui .login-dialog .buttons input[type="submit"]:hover { background: #164d7b; }
.login-ui .login-dialog .buttons input[type="submit"]:focus-visible { outline: 3px solid #45b6bd; outline-offset: 3px; }
.login-ui .login-dialog .buttons input[type="submit"]:disabled { opacity: .55; cursor: wait; }
.npuu-login-note { display: flex; justify-content: center; align-items: center; gap: 9px; margin-top: 21px; color: #8192a0; font-size: 11px; line-height: 1.6; }
.npuu-login-note svg { width: 17px; height: 17px; flex-shrink: 0; color: #7493a4; }
.npuu-card-footer { margin-top: 38px; padding-top: 20px; border-top: 1px solid #edf1f5; color: #466378; font-size: 10px; font-weight: 700; letter-spacing: 1px; text-align: center; }
.npuu-card-footer span { font-weight: 400; color: #9aa9b5; margin-left: 4px; letter-spacing: 1.5px; }
.login-ui.error p.login-error { position: fixed; z-index: 30; left: 50%; right: auto; transform: translateX(-50%); top: 12px; width: min(560px, calc(100% - 32px)); margin: 0; padding: 14px 20px; background: #fff2f2; border: 1px solid #ecc2c2; color: #993838; border-radius: 10px; font-size: 13px; box-shadow: 0 8px 24px #541c1c12; }
@media (max-width: 980px) {
  .login-ui .login-dialog-middle { grid-template-columns: 1fr 1fr; min-height: 640px; }
  .npuu-hero { padding: 36px 30px 26px; }
  .login-ui .login-dialog { padding: 38px 34px 28px; }
  .npuu-hero-copy { margin-top: 55px; }
  .npuu-hero h1 { font-size: 46px; }
  .npuu-hero-bottom > span:last-child { display: none; }
  .npuu-welcome h2 { font-size: 26px; }
}
@media (max-width: 700px) {
  div.login-ui { padding: 20px 16px; justify-content: flex-start; }
  .login-ui .login-dialog-middle { display: flex; flex-direction: column; max-width: 460px; border-radius: 22px; min-height: auto; }
  .npuu-hero { padding: 24px 28px 29px; }
  .npuu-brand img { width: 43px; height: 43px; border-radius: 9px; padding: 3px; }
  .npuu-brand strong { font-size: 18px; }.npuu-brand div > span { font-size: 8px; margin-top: 4px; }
  .npuu-hero-copy { margin-top: 26px; }
  .npuu-eyebrow { font-size: 8px; letter-spacing: 1.2px; }
  .npuu-hero h1 { font-size: 39px; letter-spacing: -1.5px; margin: 13px 0 13px; }
  .npuu-hero h1 br { display: none; }.npuu-hero h1 em::before { content: ' '; }
  .npuu-hero-copy > p { font-size: 12px; line-height: 1.7; }
  .npuu-desktop-break, .npuu-terminal, .npuu-hero-bottom { display: none; }
  .login-ui .login-dialog, .login-ui.continuation .login-dialog { padding: 32px 28px 24px; }
  .npuu-card-logo { display: none; }.npuu-welcome h2 { font-size: 25px; }
  .npuu-card-footer { margin-top: 27px; }
}
@media (prefers-reduced-motion: reduce) { .login-ui, .login-ui * { animation: none !important; transition: none !important; } }

/* Compact sign-in layout requested by NPUU. */
div.login-ui { padding: 24px 16px; justify-content: flex-start; }
.login-ui .npuu-hero { display: none; }
.login-ui .login-dialog-middle {
  display: block; flex: 0 0 auto; margin-block: auto; max-width: 460px; min-height: auto; border-radius: 24px;
}
.login-ui .login-dialog, .login-ui.continuation .login-dialog { padding: 30px 44px 24px; }
.login-ui .npuu-card-logo { display: block; width: 76px; height: 76px; margin: 0 auto 18px; }
.npuu-welcome { text-align: center; }
.npuu-welcome h2 { font-size: 27px; }
.npuu-card-footer { margin-top: 28px; }
@media (max-width: 700px) {
  div.login-ui { justify-content: center; padding: 24px 16px; }
  .login-ui .login-dialog, .login-ui.continuation .login-dialog { padding: 30px 26px 24px; }
  .npuu-welcome h2 { font-size: 25px; }
}
