/* Netflix inspired styles for email system */

/* Custom Fonts */
@font-face {
    font-family: 'Montserrat-Medium';
    src: url('/fonts/Montserrat-Medium.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Montserrat-ExtraBold';
    src: url('/fonts/Montserrat-ExtraBold.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

:root {
    --netflix-red: #e50914;
    --netflix-black: #141414;
    --netflix-dark-gray: #181818;
    --netflix-gray: #222222;
    --netflix-light-gray: #8c8c8c;
    --netflix-white: #f5f5f1;
    --body-font: 'Montserrat-Medium', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    --heading-font: 'Montserrat-ExtraBold', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

body {
    background-color: var(--netflix-black);
    color: var(--netflix-white);
    font-family: var(--body-font);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.card {
    background-color: var(--netflix-dark-gray);
    border: none;
    border-radius: 4px;
}

.card-header {
    background-color: var(--netflix-gray);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.modal-content {
    background-color: var(--netflix-dark-gray);
    color: var(--netflix-white);
    border: none;
}

.modal-header, .modal-footer {
    border-color: rgba(255, 255, 255, 0.1);
}

.bg-primary {
    background-color: var(--netflix-red) !important;
}

.btn-primary {
    background-color: var(--netflix-red);
    border-color: var(--netflix-red);
    color: white;
}

.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
    background-color: #f40612 !important;
    border-color: #f40612 !important;
    color: white !important;
    box-shadow: 0 0 0 0.25rem rgba(229, 9, 20, 0.25) !important;
}

.text-primary {
    color: var(--netflix-red) !important;
}

/* Đảm bảo hiển thị danh sách email nhất quán */
.email-item, 
.list-group-item,
#email-list .list-group-item {
    transition: all 0.2s ease;
    border-left: 3px solid transparent;
    background-color: var(--netflix-gray) !important;
    color: var(--netflix-white) !important;
    margin-bottom: 1px;
    padding: 15px;
    border-top: none;
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    border-radius: 0;
}

.email-item:hover,
.list-group-item:hover,
#email-list .list-group-item:hover {
    background-color: var(--netflix-dark-gray) !important;
    border-left: 3px solid var(--netflix-red);
    transform: scale(1.01);
}

.email-item .email-time, 
.list-group-item .email-time {
    font-size: 0.8rem;
    color: var(--netflix-light-gray);
}

.email-item .email-from,
.list-group-item .email-from {
    font-weight: 500;
    color: var(--netflix-white);
}

.email-item .email-subject,
.list-group-item .email-subject {
    color: var(--netflix-white);
    font-weight: 500;
    margin: 8px 0;
}

.email-item .email-preview,
.list-group-item .email-preview {
    color: var(--netflix-light-gray);
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.9rem;
}

/* Đảm bảo list-group sử dụng nền tối */
.list-group {
    background-color: var(--netflix-black) !important;
    border-radius: 0;
}

.list-group-flush > .list-group-item {
    border-width: 0 0 1px !important;
    background-color: var(--netflix-gray) !important;
    color: var(--netflix-white) !important;
}

#email-list {
    margin: 0;
    padding: 0;
    border: none;
    background-color: var(--netflix-black);
}

/* Đảm bảo nền trắng không xuất hiện trong email-detail */
#email-detail-modal .modal-body,
#email-content-container {
    background-color: var(--netflix-dark-gray) !important;
    color: var(--netflix-white) !important;
}

.nav-tabs {
    border-bottom-color: rgba(255, 255, 255, 0.1);
}

.nav-tabs .nav-link {
    color: var(--netflix-light-gray);
    border: none;
}

.nav-tabs .nav-link:hover {
    border-color: transparent;
    color: var(--netflix-white);
}

.nav-tabs .nav-link.active {
    background-color: transparent;
    border-bottom: 2px solid var(--netflix-red);
    color: var(--netflix-white);
}

#email-html-content {
    min-height: 200px;
    max-height: 500px;
    overflow: auto;
    background-color: white;
    border-radius: 4px;
    color: black;
    padding: 20px;
}

#email-text-content, #email-raw-content, #email-decoded-content {
    white-space: pre-wrap;
    font-family: monospace;
    font-size: 0.9rem;
    max-height: 500px;
    overflow: auto;
    background-color: var(--netflix-gray);
    color: var(--netflix-light-gray);
    border: none;
    padding: 20px;
}

.email-metadata {
    background-color: var(--netflix-gray) !important;
    border-radius: 4px;
    padding: 15px;
    margin-bottom: 15px;
}

.form-control {
    background-color: var(--netflix-gray);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--netflix-white);
    padding: 10px 15px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.form-control:focus {
    background-color: var(--netflix-gray);
    color: var(--netflix-white);
    border-color: var(--netflix-red);
    box-shadow: 0 0 0 0.25rem rgba(229, 9, 20, 0.25);
    outline: none;
}

.form-control::placeholder {
    color: var(--netflix-light-gray);
    opacity: 1;
}

/* Hỗ trợ tất cả các trình duyệt */
.form-control::-webkit-input-placeholder {
    color: var(--netflix-light-gray);
    opacity: 1;
}

.form-control::-moz-placeholder {
    color: var(--netflix-light-gray);
    opacity: 1;
}

.form-control:-ms-input-placeholder {
    color: var(--netflix-light-gray);
    opacity: 1;
}

.form-control::-ms-input-placeholder {
    color: var(--netflix-light-gray);
    opacity: 1;
}

.form-label {
    color: var(--netflix-white);
    margin-bottom: 8px;
}

.bg-light {
    background-color: var(--netflix-gray) !important;
}

.text-muted, footer .text-muted {
    color: var(--netflix-light-gray) !important;
}

.badge.bg-light {
    background-color: var(--netflix-red) !important;
    color: var(--netflix-white) !important;
    padding: 6px 12px;
    font-weight: normal;
}

footer {
    background-color: var(--netflix-black) !important;
    border-top-color: var(--netflix-gray) !important;
    padding: 20px 0;
}

/* Animation for loading spinner - đảm bảo tương thích với tất cả trình duyệt */
@keyframes spinner {
    to {transform: rotate(360deg);}
}

@-webkit-keyframes spinner {
    to {-webkit-transform: rotate(360deg);}
}

.spinner-border {
    width: 3rem;
    height: 3rem;
    color: var(--netflix-red);
    -webkit-animation: spinner 0.75s linear infinite;
    animation: spinner 0.75s linear infinite;
}

/* Scrollbar styling */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--netflix-black);
}

::-webkit-scrollbar-thumb {
    background-color: rgba(255, 255, 255, 0.2);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background-color: rgba(255, 255, 255, 0.3);
}

/* Hỗ trợ Firefox */
* {
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.2) var(--netflix-black);
}

@media (max-width: 576px) {
    .email-item .email-time {
        font-size: 0.75rem;
    }
    
    .email-metadata .row > div {
        margin-bottom: 0.5rem;
    }
}

/* Empty state styling */
.empty-state {
    padding: 40px 20px;
}

.empty-state-icon {
    font-size: 3.5rem;
    color: var(--netflix-light-gray);
}

.empty-state-icon .bi {
    opacity: 0.7;
}

.empty-state-title {
    color: var(--netflix-white);
    font-size: 1.5rem;
    font-weight: 500;
}

.empty-state-description {
    color: var(--netflix-light-gray);
    font-size: 1rem;
    max-width: 400px;
    margin: 0 auto;
}

.empty-state-help {
    margin-top: 1rem;
    color: var(--netflix-light-gray);
    font-size: 0.9rem;
}

.empty-state .btn-primary {
    background-color: var(--netflix-red);
    border-color: var(--netflix-red);
    color: white;
    margin-top: 1rem;
}

.empty-state .btn-primary:hover {
    background-color: #f40612;
    border-color: #f40612;
}

/* Fix cho cross-browser button styles */
.btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    user-select: none;
    border: 1px solid transparent;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    line-height: 1.5;
    border-radius: 0.25rem;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, 
                border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
    font-family: var(--heading-font);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.btn-danger {
    background-color: var(--netflix-red);
    border-color: var(--netflix-red);
    color: white;
}

.btn-danger:hover, .btn-danger:focus, .btn-danger:active {
    background-color: #f40612 !important;
    border-color: #f40612 !important;
    color: white !important;
    box-shadow: 0 0 0 0.25rem rgba(229, 9, 20, 0.25) !important;
}

.btn-outline-danger {
    color: var(--netflix-red);
    border-color: var(--netflix-red);
    background-color: transparent;
}

.btn-outline-danger:hover, .btn-outline-danger:focus, .btn-outline-danger:active {
    color: white !important;
    background-color: var(--netflix-red) !important;
    border-color: var(--netflix-red) !important;
}

.btn-outline-light {
    color: var(--netflix-white);
    border-color: var(--netflix-white);
    background-color: transparent;
}

.btn-outline-light:hover, .btn-outline-light:focus, .btn-outline-light:active {
    color: var(--netflix-black) !important;
    background-color: var(--netflix-white) !important;
    border-color: var(--netflix-white) !important;
}

/* Fix cho các phần tử trong Safari và Firefox */
input[type="email"],
input[type="text"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

/* Fix cho border-radius trong Safari, Firefox và Chrome */
.btn, .form-control, .card, .modal-content {
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px;
}

/* Fix cho IE và Edge */
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    .card, .btn, .form-control {
        border-radius: 4px;
    }
    
    .email-item .email-preview {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 100%;
    }
    
    .form-control::placeholder {
        color: var(--netflix-light-gray);
    }
}

/* Fix hiển thị địa chỉ email dài */
#current-email {
    display: inline-block;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 576px) {
    #current-email {
        max-width: 150px;
    }
    
    #user-info {
        flex-direction: column;
        align-items: flex-start !important;
    }
    
    #user-info > div:first-child {
        margin-bottom: 0.5rem;
        width: 100%;
    }
}

/* Email item với nhiều thông tin */
.email-item .email-from {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
    width: 100%;
}

.email-item .email-time {
    white-space: nowrap;
}

@media (max-width: 768px) {
    .email-item .d-flex.flex-column {
        gap: 0.5rem;
    }
    
    .email-item .email-from,
    .email-item .email-time {
        width: 100%;
        display: block;
    }
    
    .email-item .email-time {
        margin-top: 0.25rem;
    }
}

/* Thanh hiển thị email */
#email-info-bar {
    background-color: rgba(24, 24, 24, 0.97) !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.3s ease;
    display: block;
    visibility: visible;
    opacity: 1;
    z-index: 999;
}

#email-info-bar.d-none {
    display: none !important;
}

#email-display {
    font-family: var(--body-font);
    font-size: 0.95rem;
    font-weight: 500;
    overflow: hidden;
    display: inline;
    color: var(--netflix-white);
    transition: color 0.3s ease;
    padding: 0.25rem 0;
    max-width: calc(100% - 25px); /* Trừ đi khoảng trống cho icon */
    text-overflow: ellipsis;
}

#email-info-bar:hover {
    background-color: rgba(34, 34, 34, 0.97) !important;
}

#email-info-bar:hover #email-display {
    color: white;
}

@media (max-width: 576px) {
    #email-info-bar {
        padding: 0.5rem 1rem !important;
    }
    
    #email-display {
        font-size: 0.85rem;
    }
}

@keyframes pulse {
    0% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.1); opacity: 0.8; }
    100% { transform: scale(1); opacity: 1; }
}

@-webkit-keyframes pulse {
    0% { -webkit-transform: scale(1); opacity: 1; }
    50% { -webkit-transform: scale(1.1); opacity: 0.8; }
    100% { -webkit-transform: scale(1); opacity: 1; }
}

.badge.bg-danger {
    transition: all 0.3s ease;
}

/* Lớp cho việc hiện thông báo email mới */
.new-email-notification {
    animation: pulse 1s infinite;
    -webkit-animation: pulse 1s infinite;
    background-color: var(--netflix-bright-red) !important;
}

/* Các quy tắc cho tiêu đề và chữ in đậm */
h1, h2, h3, h4, h5, h6, 
.h1, .h2, .h3, .h4, .h5, .h6, 
.fw-bold, .fw-bolder, .badge,
.btn, .modal-title, .nav-link.active,
.card-header, .card-title {
    font-family: var(--heading-font);
    font-weight: 800;
}

/* Đảm bảo tất cả các phần tử text thông thường sử dụng font chính */
p, span, div, li, a, input, textarea, select, option, button, label, small, .form-control {
    font-family: var(--body-font);
    font-weight: normal;
}

.text-danger, .fw-bold, .badge, .card-header, .nav-link.active {
    font-family: var(--heading-font);
} 