/* ─────────────────────────────────────────────────────────────────────── */
/* Quantinix Login Theme - Global CSS */
/* ─────────────────────────────────────────────────────────────────────── */
/* Version: 1.0 */
/* Applied: April 22, 2026 */
/* ─────────────────────────────────────────────────────────────────────── */

/* ─── CSS Variables / Quantinix Teal Palette ────────────────────── */
:root {
    --primary-blue:       #00796b;
    --primary-blue-light: #26a69a;
    --primary-blue-dark:  #004d40;
    --dark-blue:          #004d40;
    --accent-gradient:    linear-gradient(135deg, #e0f2f1 0%, #f5f8ff 100%);
    --card-bg:            #fff;
    --card-radius:        14px;
    --card-shadow:        none;
    --input-bg:           #fafdff;
    --input-border:       #b2dfdb;
    --text-color:         #1a1a1a;
    --text-light:         #666;
    --header-bg:          #fff;
    /* internal aliases */
    --q-border:     #b2dfdb;
    --q-card-bg:    #fff;
    --q-radius:     14px;
    --q-transition: .3s ease;
    --q-muted:      #666;
    --q-text:       #1a1a1a;
    --q-cyan:       #00796b;
    --q-cyan-glow:  #26a69a;
}

/* ─── Full-page background ──────────────────────────────────────── */
html,
body {
    margin: 0;
    font-family: 'Inter', "Helvetica Neue", Helvetica, Arial, sans-serif;
    background: #b2dfdb;
    color: var(--text-color);
    overflow-x: hidden;
    overflow-y: auto;
    min-height: 100vh;
}

/* ─── Page wrapper ───────────────────────────────────────────────── */
.login-wrapper {
    width: 100%;
    min-height: 100vh;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding: 20px 24px;
    box-sizing: border-box;
}

/* ─── Card ───────────────────────────────────────────────────────── */
.login-card {
    background: var(--card-bg);
    border: 1px solid var(--input-border);
    border-radius: var(--card-radius);
    padding: 16px 32px 20px;
    max-width: 460px;
    width: 100%;
    margin: 0 auto;
}

/* ─── Logo block ─────────────────────────────────────────────────── */
.logo-wrap {
    text-align: center;
    margin-bottom: 2px;
}

/* Inline Q + Quantinix row — mirrors quantinix.com navbar */
.logo {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 4px;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--primary-blue);
    font-family: 'Orbitron', monospace;
    margin-bottom: 6px;
}

.logo-icon {
    width: 38px;
    height: 38px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    background: linear-gradient(135deg, #00796b 0%, #26a69a 100%);
    border-radius: 8px;
    color: white;
    font-weight: 900;
    font-size: 1.3rem;
    -webkit-box-shadow: 0 4px 12px rgba(0,121,107,.18);
            box-shadow: 0 4px 12px rgba(0,121,107,.18);
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

/* ─── Divider ────────────────────────────────────────────────────── */
.q-divider {
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--input-border), transparent);
    margin: 0 0 10px;
}

/* ─── Welcome text ───────────────────────────────────────────────── */
.welcome-text {
    text-align: center;
    margin-bottom: 14px;
}

.welcome-text h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--primary-blue-dark);
    margin: 0 0 2px;
}

.welcome-text p {
    font-size: 12px;
    color: var(--text-light);
    margin: 0;
}

/* ─── Form labels ────────────────────────────────────────────────── */
.control-label {
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
    color: var(--text-light) !important;
    margin-bottom: 4px !important;
    display: block !important;
    text-align: left !important;
}

/* ─── Input groups ───────────────────────────────────────────────── */
.input-group {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

/* Make the text field fill all remaining space so both rows are identical width */
.input-group .form-control {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    width: 1% !important; /* Bootstrap 3 table-cell reset */
    min-width: 0;
}

.input-group-addon {
    background: #e0f2f1 !important;
    border: 1px solid var(--input-border) !important;
    color: var(--primary-blue) !important;
    border-right: none !important;
    border-radius: 8px 0 0 8px !important;
    width: 40px;
    text-align: center;
    font-size: 13px !important;
}

.form-control {
    background: var(--input-bg) !important;
    border: 1px solid var(--input-border) !important;
    border-left: none !important;
    color: var(--text-color) !important;
    font-size: 13px !important;
    height: 40px !important;
    border-radius: 0 8px 8px 0 !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
    -webkit-transition: border-color var(--q-transition), box-shadow var(--q-transition) !important;
            transition: border-color var(--q-transition), box-shadow var(--q-transition) !important;
}

.form-control::-webkit-input-placeholder { color: #aac9c5 !important; }
.form-control:-ms-input-placeholder      { color: #aac9c5 !important; }
.form-control::placeholder               { color: #aac9c5 !important; }

.form-control:focus {
    border-color: var(--primary-blue) !important;
    -webkit-box-shadow: 0 0 0 2px rgba(0,121,107,.15) !important;
            box-shadow: 0 0 0 2px rgba(0,121,107,.15) !important;
    background: #fff !important;
}

/* ─── Validation states ──────────────────────────────────────────── */
.has-error .form-control      { border-color: #e53935 !important; }
.has-error .input-group-addon  { border-color: #e53935 !important; color: #e53935 !important; }
.has-success .form-control     { border-color: var(--primary-blue) !important; }
.has-success .input-group-addon{ border-color: var(--primary-blue) !important; color: var(--primary-blue) !important; }

.help-block {
    font-size: 12px;
    margin-top: 5px;
    color: #e53935;
    display: none;
    margin-bottom: 0;
}

.has-error .help-block { display: block; }

/* ─── Remember me row ────────────────────────────────────────────── */
.extras-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin: 8px 0 14px;
}

.checkbox-label {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 6px;
    cursor: pointer;
    margin: 0;
    font-size: 12px;
    color: var(--text-light);
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
}

.checkbox-label input[type="checkbox"] { display: none; }

.custom-check {
    width: 18px;
    height: 18px;
    border: 1.5px solid var(--input-border);
    border-radius: 4px;
    background: var(--input-bg);
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-transition: all var(--q-transition);
            transition: all var(--q-transition);
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.checkbox-label input:checked + .custom-check {
    background: var(--primary-blue);
    border-color: var(--primary-blue);
    -webkit-box-shadow: 0 0 6px rgba(0,121,107,.3);
            box-shadow: 0 0 6px rgba(0,121,107,.3);
}

.custom-check::after {
    content: '';
    width: 5px;
    height: 9px;
    border: 2px solid #fff;
    border-top: none;
    border-left: none;
    -webkit-transform: rotate(45deg) scaleY(0);
            transform: rotate(45deg) scaleY(0);
    -webkit-transition: -webkit-transform var(--q-transition);
            transition: transform var(--q-transition);
    margin-top: -2px;
}

.checkbox-label input:checked + .custom-check::after {
    -webkit-transform: rotate(45deg) scaleY(1);
            transform: rotate(45deg) scaleY(1);
}

.forgot-link {
    font-size: 12px;
    color: var(--primary-blue);
    text-decoration: none;
    -webkit-transition: color var(--q-transition);
            transition: color var(--q-transition);
}

.forgot-link:hover { color: var(--primary-blue-dark); text-decoration: underline; }

/* ─── Sign In button ─────────────────────────────────────────────── */
.btn-signin {
    display: block;
    width: 100%;
    height: 42px;
    border: none;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--primary-blue-dark) 0%, var(--primary-blue) 100%);
    color: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    -webkit-transition: all var(--q-transition);
            transition: all var(--q-transition);
    -webkit-box-shadow: 0 4px 16px rgba(0,121,107,.35);
            box-shadow: 0 4px 16px rgba(0,121,107,.35);
    margin-bottom: 6px;
}

.btn-signin::before {
    content: '';
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: linear-gradient(135deg, rgba(255,255,255,.15) 0%, transparent 60%);
    opacity: 0;
    -webkit-transition: opacity var(--q-transition);
            transition: opacity var(--q-transition);
}

.btn-signin:hover {
    -webkit-transform: translateY(-2px);
            transform: translateY(-2px);
    -webkit-box-shadow: 0 8px 24px rgba(0,121,107,.45);
            box-shadow: 0 8px 24px rgba(0,121,107,.45);
}

.btn-signin:hover::before { opacity: 1; }
.btn-signin:active { -webkit-transform: translateY(0); transform: translateY(0); }
.btn-signin .fa { margin-right: 8px; }

/* Loading spinner */
.btn-signin .spinner {
    display: none;
    width: 18px;
    height: 18px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff;
    border-radius: 50%;
    -webkit-animation: spin .7s linear infinite;
            animation: spin .7s linear infinite;
    margin: 0 auto;
}

@-webkit-keyframes spin { to { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }
@keyframes spin         { to { transform: rotate(360deg); } }

.btn-signin.loading .btn-text    { display: none; }
.btn-signin.loading .spinner     { display: inline-block; }

/* ─── Card footer ─────────────────────────────────────────────── */
.card-footer-strip {
    margin-top: 8px;
    padding-top: 6px;
    border-top: 1px solid var(--input-border);
    text-align: center;
    font-size: 10px;
    color: var(--text-light);
    letter-spacing: .3px;
}

.card-footer-strip a { color: var(--primary-blue); text-decoration: underline; }

/* ─── Alert messages ─────────────────────────────────────────────── */
.alert {
    border-radius: 6px;
    margin-bottom: 10px;
    padding: 8px 12px !important;
    font-size: 12px !important;
}

.alert-danger {
    background-color: #ffebee;
    border: 1px solid #ef5350;
    color: #c62828;
}

.alert-success {
    background-color: #e8f5e9;
    border: 1px solid #66bb6a;
    color: #2e7d32;
}

/* ─── Text danger (error messages) ─────────────────────────────── */
.text-danger {
    color: #e53935 !important;
    font-size: 12px;
    margin-top: 4px;
    display: block;
}

/* ─── Form group ──────────────────────────────────────────────── */
.form-group {
    margin-bottom: 12px !important;
}

/* ─── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 480px) {
    .login-wrapper { padding: 15px 16px; }
    .login-card    { padding: 14px 16px 16px; }
    .logo          { font-size: 16px; }
}
