:root {
    --bg-color: #0A0C10;
    --primary-glow: #FF8C00;
    --secondary-glow: #FF8C00; /* CORRIGÉ : Par défaut sur ORANGE (Voiture) */
    --text-color: #dbe0e8;
    --panel-bg: rgba(17, 19, 26, 0.95);
    --border-color: color-mix(in srgb, var(--secondary-glow) 15%, transparent); /* DYNAMIQUE */
    --success-glow: #00ff8c;
    --error-glow: #ff4d4d;
    --diff-color: #e53935;
    --custom-glow: #9932CC; 
    --primary-glow-transparent: color-mix(in srgb, var(--primary-glow) 5%, transparent);
    --secondary-glow-transparent: color-mix(in srgb, var(--secondary-glow) 5%, transparent);
    --success-glow-transparent: color-mix(in srgb, var(--success-glow) 5%, transparent);
    --error-glow-transparent: color-mix(in srgb, var(--error-glow) 5%, transparent);
    --custom-glow-transparent: color-mix(in srgb, var(--custom-glow) 5%, transparent);
    --font-display: 'Orbitron', sans-serif;
    --font-body: 'Exo 2', sans-serif;
    --font-mono: 'Share Tech Mono', monospace;
}

/* ===== Modernisation UI (transitions, focus, fondu, scrollbar, skeleton) — partagé toutes pages ===== */
button, .btn, .btn-secondary, .btn-success, .btn-danger, .nav-button, .tab-link, .card, .kpi-card, .mod-option, .credit-pack-card, .list-item, .todo-card, .immo-card, input, select, textarea {
    transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .15s ease, color .18s ease;
}
.kpi-card:hover, .credit-pack-card:hover, .mod-option:not(.disabled):hover, .todo-card:hover, .immo-card:hover {
    transform: translateY(-2px);
}
button:active, .btn:active, .btn-secondary:active, .nav-button:active { transform: translateY(1px); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, .nav-button:focus-visible, .tab-link:focus-visible {
    outline: 2px solid var(--secondary-glow);
    outline-offset: 2px;
}
input:focus, select:focus, textarea:focus {
    border-color: var(--primary-glow) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary-glow) 18%, transparent);
}
.view.active, .admin-view.active { animation: viewFadeIn .25s ease; }
@keyframes viewFadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: rgba(255,255,255,0.03); }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.16); border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: var(--primary-glow); }
.skeleton { position: relative; overflow: hidden; background: rgba(255,255,255,0.06); border-radius: 6px; color: transparent !important; }
.skeleton::after { content: ''; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255,255,255,0.12), transparent); animation: shimmer 1.3s infinite; }
@keyframes shimmer { 100% { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { *, *::after { animation: none !important; transition: none !important; } }

.password-criteria.met {
    color: var(--success-glow);
}
html {
    height: 100%;
    font-size: 13px;
}
body {
    font-family: var(--font-body);
    background-color: var(--bg-color);
    color: var(--text-color);
    margin: 0;
    display: flex;
    flex-direction: column;
    min-height: 100%;
    overflow-x: hidden; 
    overflow-y: auto;   
    position: relative;
    z-index: 1;
}

.scanline {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background: linear-gradient(
        to bottom,
        rgba(10, 12, 16, 0),
        rgba(10, 12, 16, 0) 50%,
        rgba(10, 12, 16, 0.5) 51%,
        rgba(10, 12, 16, 0) 52%
    );
    background-size: 100% 4px;
    animation: scanline 15s linear infinite; 
    pointer-events: none;
    opacity: 0.03; 
}
::-webkit-scrollbar {
    width: 10px;
}
::-webkit-scrollbar-track {
    background: rgba(0,0,0,0.3);
    border-left: 1px solid var(--border-color);
}
::-webkit-scrollbar-thumb {
    background: var(--primary-glow);
    border-radius: 5px;
    border: 2px solid transparent;
    background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--secondary-glow);
    background-clip: content-box;
}
@keyframes scanline {
    0% { background-position: 0 0; }
    100% { background-position: 0 100%; }
}
.main-container, .admin-container {
    max-width: 1800px;
    width: 95%;
    margin: 2rem auto;
    border: 1px solid var(--border-color);
    background: var(--panel-bg);
    backdrop-filter: blur(12px);
    border-radius: 8px;
    overflow: visible !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.05); 
    transition: box-shadow 0.4s ease, border-color 0.4s ease;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 10;
}

.login-container {
    width: 100%;
    max-width: 550px;
    padding: 3rem;
    text-align: center;
    margin: auto;
    border: 1px solid var(--border-color);
    background: var(--panel-bg);
    backdrop-filter: blur(12px);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 0 25px color-mix(in srgb, var(--secondary-glow) 10%, transparent);
}
.login-container .logo-container img {
    max-height: 80px;
    margin-bottom: 1.5rem;
}
.login-container h2 {
    text-shadow: none;
}
.login-container .auth-link {
    display: inline-block;
    padding: 0.6rem 1.2rem;
    border: 1px solid var(--border-color);
    color: var(--text-color);
    text-decoration: none;
    border-radius: 4px;
    transition: all 0.3s ease;
}
.login-container .auth-link:hover {
    background-color: var(--secondary-glow-transparent);
    border-color: var(--secondary-glow);
    color: var(--secondary-glow);
}
.links-container {
    margin-top: 2.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}
.forgot-password-link {
    font-size: 0.9rem;
    color: var(--text-color);
    text-decoration: none;
    opacity: 0.7;
    transition: all 0.3s ease;
}
.forgot-password-link:hover {
    opacity: 1;
    color: var(--secondary-glow);
    text-decoration: underline;
}
.card {
    background: rgba(0,0,0,0.4); 
    border: 1px solid var(--border-color);
    padding: 2rem;
    border-radius: 6px;
    transition: all 0.3s ease;
    margin-bottom: 2rem;
    position: relative;
    box-shadow: 0px 4px 10px rgba(0,0,0,0.3);
}
.card:last-child {
    margin-bottom: 0;
}
.card:hover {
    transform: translateY(-2px); 
    border-color: color-mix(in srgb, var(--secondary-glow) 40%, transparent);
    box-shadow: 0 8px 20px rgba(0,0,0,0.5); 
}
h2, h3 {
    font-family: var(--font-display);
    color: var(--primary-glow);
    text-shadow: 0 0 5px var(--primary-glow-transparent);
    letter-spacing: 1px;
}
@keyframes glow-pulse-text {
    0%, 100% { text-shadow: 0 0 2px var(--primary-glow-transparent); }
    50% { text-shadow: 0 0 5px var(--primary-glow-transparent); }
}
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes slideInFade {
    from { opacity: 0; transform: translateY(15px); }
    to { opacity: 1; transform: translateY(0); }
}
.view { display: none; padding: 2.5rem; overflow-y: auto; flex-grow: 1; }
.view.active {
    display: block;
    animation: slideInFade 0.5s ease-out forwards;
}
header { display: flex; justify-content: space-between; align-items: center; padding: 1.2rem 2rem; border-bottom: 1px solid var(--border-color); flex-shrink: 0;}
.logo img { height: auto; max-height: 50px; width: auto; max-width: 100%; }
.user-info { display: flex; align-items: center; gap: 1.5rem; }
#logoutBtn { background: transparent; border: 1px solid var(--error-glow); color: var(--error-glow); padding: 0.5rem 1rem; cursor: pointer; border-radius: 4px; transition: all 0.3s ease; }
#logoutBtn:hover { background: var(--error-glow); color: #000; box-shadow: 0 0 15px var(--error-glow); }
nav { 
    display: flex; justify-content: center; padding: 0.5rem; background: rgba(0,0,0,0.3); flex-shrink: 0;
    position: relative;
    z-index: 2000;
}
.nav-button { font-family: var(--font-display); background: transparent; border: none; color: var(--text-color); padding: 0.8rem 1.5rem; cursor: pointer; border-bottom: 3px solid transparent; text-transform: uppercase; transition: color 0.3s, border-bottom-color 0.3s, text-shadow 0.3s; }
a.nav-button { text-decoration: none; }
.nav-button.active {
    color: var(--primary-glow);
    border-bottom-color: var(--primary-glow);
    text-shadow: 0 0 8px var(--primary-glow-transparent);
}
.nav-button:hover:not(.active) {
    color: var(--secondary-glow);
    border-bottom-color: var(--secondary-glow);
    text-shadow: 0 0 12px var(--secondary-glow-transparent);
}
.nav-dropdown { position: relative; display: inline-block; }
.nav-dropdown-content { 
    display: none; 
    position: absolute; 
    background-color: #1a1c20; 
    min-width: 220px; 
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.9); 
    border: 1px solid var(--border-color); 
    border-radius: 4px; 
    padding: 0.5rem 0;
    z-index: 10000 !important; 
}
.nav-dropdown-content a { color: var(--text-color); padding: 12px 16px; text-decoration: none; display: block; font-family: var(--font-display); font-size: 0.95rem; display: flex; align-items: center; gap: 10px; }
.nav-dropdown-content a:hover { background-color: rgba(255,255,255,0.1); }
.nav-dropdown.active .nav-dropdown-content { display: block; }
.nav-dropdown .nav-button .fa-caret-down { transition: transform 0.2s; }
.nav-dropdown.active .nav-button .fa-caret-down { transform: rotate(180deg); }
main {
    position: relative;
    z-index: 1;
}
@keyframes glow-pulse {
    0% { box-shadow: 0 0 15px 2px color-mix(in srgb, var(--secondary-glow) 30%, transparent), inset 0 0 5px color-mix(in srgb, var(--secondary-glow) 10%, transparent); }
    50% { box-shadow: 0 0 20px 5px color-mix(in srgb, var(--secondary-glow) 40%, transparent), inset 0 0 8px color-mix(in srgb, var(--secondary-glow) 20%, transparent); }
    100% { box-shadow: 0 0 15px 2px color-mix(in srgb, var(--secondary-glow) 30%, transparent), inset 0 0 5px color-mix(in srgb, var(--secondary-glow) 10%, transparent); }
}
.form-group { margin-bottom: 1.5rem; position: relative; }
.form-group.full-width { grid-column: 1 / -1; }
label { display: block; margin-bottom: 0.5rem; }
input[type="file"], input[type="text"], input[type="password"], input[type="email"], input[type="number"], input[type="tel"], textarea, select {
    width: 100%;
    background: rgba(0,0,0,0.3);
    border: 1px solid var(--border-color);
    color: var(--text-color);
    padding: 0.8rem;
    border-radius: 4px;
    box-sizing: border-box;
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
}
input[type="range"] {
    background: transparent;
    border: none;
    box-shadow: none;
}
input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: var(--secondary-glow);
    animation: glow-pulse 1.5s infinite;
}
form button {
    margin-top: 1.5rem;
}
.select-button {
    width: 100%;
    background: rgba(0,0,0,0.3);
    border: 1px solid var(--border-color);
    color: var(--text-color);
    padding: 0.8rem;
    border-radius: 4px;
    box-sizing: border-box;
    cursor: pointer;
    text-align: left;
    position: relative;
    transition: all 0.3s ease;
}
.select-button:hover {
    border-color: var(--secondary-glow);
    box-shadow: 0 0 15px 2px color-mix(in srgb, var(--secondary-glow) 30%, transparent);
}
.select-button::after {
    content: '▼';
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--primary-glow);
    transition: transform 0.3s ease;
}
.select-button:hover::after {
    transform: translateY(-50%) scale(1.2);
}
.modal-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.7);
    backdrop-filter: blur(5px);
    z-index: 1000;
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease;
}
.modal-backdrop.visible {
    display: block;
    opacity: 1;
}
.modal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -40%);
    width: 90%;
    max-width: 1100px;
    background: #11131a; 
    border: 1px solid var(--secondary-glow);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5), 0 0 30px color-mix(in srgb, var(--secondary-glow) 10%, transparent);
    border-radius: 12px; 
    z-index: 1001;
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.3s ease;
    overflow: hidden; 
}
.modal.visible {
    display: block;
    opacity: 1;
    transform: translate(-50%, -50%);
}
.modal-header { 
    padding: 1.5rem 2rem; 
    border-bottom: 1px solid var(--border-color); 
    display: flex; 
    justify-content: space-between; 
    align-items: center;
    background: color-mix(in srgb, var(--secondary-glow) 5%, transparent);
}
.modal-header h2 { margin: 0; font-size: 1.4rem; }
.modal-header h3 { margin: 0; font-size: 1.2rem; color: var(--text-color); }
.modal-body { 
    padding: 2rem 2.5rem; 
    max-height: 70vh; 
    overflow-y: auto; 
    font-size: 1rem;
    line-height: 1.6;
}
.modal-footer { 
    padding: 1.5rem 2rem; 
    border-top: 1px solid var(--border-color); 
    display: flex;
    justify-content: flex-end; 
    align-items: center;
    gap: 1rem;
    background: #16181f;
}
.modal-footer-custom {
    padding: 1.5rem 2rem; 
    border-top: 1px solid var(--border-color); 
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #16181f;
}
.footer-actions-right {
    display: flex;
    gap: 10px;
}
.btn-primary {
    background: var(--primary-glow);
    color: #000;
}
.btn-primary:hover {
    background: var(--secondary-glow);
}
.btn-success {
    background: var(--success-glow);
    color: #000;
}
.form-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}
.modal-search-input {
    width: 100%;
    padding: 1rem;
    margin-bottom: 1.5rem;
    box-sizing: border-box;
    background: rgba(0,0,0,0.3);
    border: 1px solid var(--border-color);
    color: var(--text-color);
    border-radius: 6px;
    font-size: 1rem;
}
.modal-search-input:focus {
    outline: none;
    border-color: var(--secondary-glow);
    box-shadow: 0 0 10px color-mix(in srgb, var(--secondary-glow) 30%, transparent);
}
.source-job-box {
    background: color-mix(in srgb, var(--secondary-glow) 5%, transparent);
    border-left: 4px solid var(--secondary-glow);
    padding: 1rem 1.5rem;
    margin-bottom: 2rem;
    border-radius: 4px;
}
.source-job-box h5 {
    margin: 0 0 0.5rem 0;
    color: var(--secondary-glow);
    font-family: var(--font-display);
}
.mod-category h3 {
    font-family: var(--font-display);
    color: var(--secondary-glow);
    margin-top: 0;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--border-color);
}
.files-grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
    gap: 1.5rem;
}
#mod-selection-modal .mod-option.selected {
    background: linear-gradient(90deg, rgba(0, 160, 70, 0.15) 0%, rgba(0, 0, 0, 0) 100%) !important;
    border: 1px solid #00a046 !important;
    border-left: 4px solid #00a046 !important;
    color: white !important;
    box-shadow: 0 0 10px rgba(0, 160, 70, 0.15);
}

#mod-selection-modal .mod-option.selected strong {
    color: #00a046;
    text-shadow: 0 0 5px rgba(0, 160, 70, 0.3);
}
#mod-selection-modal .mod-option.disabled {
    cursor: not-allowed;
    background-color: rgba(40, 40, 40, 0.5) !important;
    color: #666 !important;
    box-shadow: none !important;
}
#simulator .mod-option.selected {
    background: linear-gradient(90deg, rgba(0, 160, 70, 0.18) 0%, rgba(0, 0, 0, 0) 100%) !important;
    border: 1px solid #00a046 !important;
    border-left: 4px solid #00a046 !important;
    color: white !important;
    box-shadow: 0 0 12px rgba(0, 160, 70, 0.25) !important;
}
#simulator .mod-option.selected strong {
    color: #00ff8c !important;
    text-shadow: 0 0 6px rgba(0, 255, 140, 0.35);
}
#simulator .mod-option.disabled {
    cursor: not-allowed;
    background-color: rgba(40, 40, 40, 0.5) !important;
    color: #666 !important;
    box-shadow: none !important;
}
#mod-selection-summary {
    margin-top: 1rem;
    padding: 1rem;
    background: rgba(0,0,0,0.2);
    border-radius: 4px;
    border: 1px solid var(--border-color);
}
#mod-selection-summary p {
    margin: 0 0 0.5rem 0;
    font-weight: bold;
    color: var(--primary-glow);
}
#mod-selection-summary ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}
#mod-selection-summary li {
    background: var(--secondary-glow);
    color: #111;
    padding: 0.3rem 0.8rem;
    border-radius: 1rem;
    font-size: 0.9rem;
    font-weight: bold;
}
.modal-footer {
     display: flex;
     justify-content: space-between;
     align-items: center;
     gap: 1rem;
}
.total-cost-panel {
    font-family: var(--font-mono);
    background: rgba(0,0,0,0.3);
    border: 1px solid var(--border-color);
    border-radius: 4px;
    padding: 0.8rem 1.2rem;
    text-align: left;
    flex-grow: 1;
}
.total-cost-panel .cost-line {
    display: flex;
    justify-content: space-between;
    font-size: 0.9rem;
    color: #aaa;
    padding: 0.2rem 0;
}
.total-cost-panel .cost-line.total {
    font-family: var(--font-display);
    font-size: 1.2rem;
    color: var(--success-glow);
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--border-color);
}
.rating-stars {
    display: inline-flex;
    flex-direction: row-reverse;
    justify-content: center;
}
.rating-stars input { display: none; }
.rating-stars label {
    font-size: 1.5rem;
    color: #444;
    cursor: pointer;
    transition: color 0.2s;
}
.rating-stars input:checked ~ label,
.rating-stars label:hover,
.rating-stars label:hover ~ label {
    color: var(--primary-glow);
}
.rating-stars[data-rating="1"] .star-1,
.rating-stars[data-rating="2"] .star-1, .rating-stars[data-rating="2"] .star-2,
.rating-stars[data-rating="3"] .star-1, .rating-stars[data-rating="3"] .star-2, .rating-stars[data-rating="3"] .star-3,
.rating-stars[data-rating="4"] .star-1, .rating-stars[data-rating="4"] .star-2, .rating-stars[data-rating="4"] .star-3, .rating-stars[data-rating="4"] .star-4,
.rating-stars[data-rating="5"] .star-1, .rating-stars[data-rating="5"] .star-2, .rating-stars[data-rating="5"] .star-3, .rating-stars[data-rating="5"] .star-4, .rating-stars[data-rating="5"] .star-5 {
     color: var(--primary-glow);
}
.rating-container {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--border-color);
    text-align: center;
}
.rating-container p {
    margin: 0 0 0.5rem 0;
    font-weight: bold;
}
.rating-stars.is-rated label {
    cursor: default;
}
.rating-stars.is-rated label:hover {
    color: #444;
}
.rating-stars.is-rated[data-rating="1"] .star-1,
.rating-stars.is-rated[data-rating="2"] .star-1, .rating-stars.is-rated[data-rating="2"] .star-2,
.rating-stars.is-rated[data-rating="3"] .star-1, .rating-stars.is-rated[data-rating="3"] .star-2, .rating-stars.is-rated[data-rating="3"] .star-3,
.rating-stars.is-rated[data-rating="4"] .star-1, .rating-stars.is-rated[data-rating="4"] .star-2, .rating-stars.is-rated[data-rating="4"] .star-3, .rating-stars.is-rated[data-rating="4"] .star-4,
.rating-stars.is-rated[data-rating="5"] .star-1, .rating-stars.is-rated[data-rating="5"] .star-2, .rating-stars.is-rated[data-rating="5"] .star-3, .rating-stars.is-rated[data-rating="5"] .star-4, .rating-stars.is-rated[data-rating="5"] .star-5 {
     color: var(--primary-glow) !important;
}
.tabs {
    display: flex;
    border-bottom: 1px solid var(--border-color);
    margin-bottom: 2rem;
    flex-wrap: nowrap; 
    overflow-x: auto;
    gap: 10px;
}
.tab-link {
    padding: 0.8rem 1.2rem;
    cursor: pointer;
    border: none;
    background: none;
    color: var(--text-color);
    font-family: var(--font-display);
    font-size: 0.8rem; 
    opacity: 0.6;
    border-bottom: 3px solid transparent;
    transition: all 0.3s ease;
    white-space: nowrap; 
}
.tab-link.active {
    opacity: 1;
    color: var(--primary-glow);
    border-bottom-color: var(--primary-glow);
}
.tab-content {
    display: none;
    animation: fadeIn 0.5s;
}
.tab-content.active {
    display: block;
}
.cgv-text {
    font-size: 0.9rem;
    line-height: 1.6;
    color: #a0a0a0;
    border: 1px solid var(--border-color);
    padding: 1rem;
    border-radius: 4px;
    background: rgba(0,0,0,0.2);
    height: 200px;
    overflow-y: auto;
}
.cgv-text h4 {
    color: var(--primary-glow);
    margin-top: 0;
}
.cgv-accept {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 1rem;
}
#cgv-accept-checkbox {
    width: 18px;
    height: 18px;
}
.site-footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}
.footer-links {
    display: flex;
    gap: 1.5rem;
    margin-top: 0.5rem;
}
.footer-links a {
    color: #8a93a2;
    text-decoration: none;
    transition: color 0.3s;
}
.footer-links a:hover {
    color: var(--secondary-glow);
}
@keyframes halo-blink-success {
    0%, 100% { text-shadow: 0 0 12px var(--success-glow), 0 0 25px var(--success-glow); }
    50% { text-shadow: 0 0 5px var(--success-glow), 0 0 10px var(--success-glow); }
}
.status-blink-success {
    color: var(--success-glow);
    animation: halo-blink-success 1.5s infinite;
}
.status-blink-warning {
     color: var(--primary-glow);
}
.mod-option-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}
.mod-info-icon {
    color: var(--secondary-glow);
    cursor: pointer;
    font-size: 1rem;
    transition: transform 0.2s, color 0.2s;
}
.mod-info-icon:hover {
    transform: scale(1.2);
    color: var(--primary-glow);
}
.pack-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    margin-bottom: 2.5rem;
}
.credit-pack-card {
    border: 1px solid var(--border-color);
    border-radius: 6px;
    padding: 2rem;
    text-align: center;
    background: rgba(0,0,0,0.25);
    transition: all 0.3s ease;
    cursor: pointer;
}
.credit-pack-card:hover, .credit-pack-card.selected {
    transform: translateY(-5px);
    border-color: var(--primary-glow);
    box-shadow: 0 10px 25px var(--primary-glow-transparent);
}
.credit-pack-card h4 {
    font-family: var(--font-display);
    color: var(--secondary-glow);
    margin-top: 0;
    font-size: 1.3rem;
}
.credit-pack-card .credits-amount {
    font-size: 3.5rem;
    font-weight: bold;
    color: var(--primary-glow);
    margin: 1rem 0;
    font-family: var(--font-mono);
}
.credit-pack-card .pack-price {
    font-size: 1.5rem;
    color: var(--text-color);
    margin-bottom: 1rem;
}
.promo-code-section {
    max-width: 400px;
    margin: 0 auto 3rem auto;
    display: flex;
    gap: 1rem;
}
#toast-container { position: fixed; bottom: 20px; right: 20px; z-index: 1050; width: 320px; }
.toast { background-color: var(--success-glow); color: #111; padding: 1rem 1.5rem; border-radius: 6px; margin-top: 1rem; opacity: 0; transform: translateX(100%); transition: opacity 0.5s, transform 0.5s; font-weight: bold; position: relative; overflow: hidden; }
.toast.show { opacity: 1; transform: translateX(0); }
.toast.error { background-color: var(--error-glow); }
.toast::after { content: ''; position: absolute; bottom: 0; left: 0; height: 4px; width: 100%; background-color: rgba(0,0,0,0.3); animation: toast-timer 4s linear forwards; }
@keyframes toast-timer { from { width: 100%; } to { width: 0%; } }
#viewer-legend .legend-item {
    display: flex;
    align-items: center;
    margin-bottom: 5px;
    cursor: pointer;
    padding: 5px;
    border-radius: 3px;
    transition: background-color: 0.2s;
}
#viewer-legend .legend-item:hover {
    background-color: rgba(255, 255, 255, 0.1);
}
.viewer-controls {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    z-index: 10;
}
.timeline {
    position: relative;
    padding: 2rem 0;
}
.timeline::before {
    content: '';
    position: absolute;
    top: 0;
    left: 20px;
    height: 100%;
    width: 4px;
    background: var(--border-color);
}
.timeline-item {
    position: relative;
    margin-bottom: 3rem;
    padding-left: 50px;
}
.timeline-item:last-child {
    margin-bottom: 0;
}
.timeline-icon {
    position: absolute;
    left: 0; top: 0; width: 44px; height: 44px; background-color: var(--secondary-glow); color: #111; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; border: 4px solid var(--border-color); } .timeline-icon.admin-icon { background-color: var(--primary-glow); } .timeline-content { background: rgba(0,0,0,0.2); padding: 1.5rem; border-radius: 6px; border: 1px solid var(--border-color); } .timeline-content h4 { margin-top: 0; color: var(--text-color); } .timeline-content .timestamp { font-size: 0.9rem; color: #8a93a2; margin-bottom: 1rem; display: block; } .attachment-list { list-style: none; padding: 0; margin-top: 1rem; } .attachment-list li { margin-bottom: 0.5rem; } .attachment-list a { color: var(--secondary-glow); text-decoration: none; } .attachment-list a:hover { text-decoration: underline; } #upload .progress-bar-container { width: 100%; height: 10px; background-color: rgba(0,0,0,0.3); border: 1px solid var(--border-color); border-radius: 5px; margin-top: 0.5rem; display: none; } #upload .progress-bar { width: 0%; height: 100%; background: linear-gradient(90deg, var(--secondary-glow), var(--primary-glow)); border-radius: 5px; transition: width 0.3s ease-in-out; } #upload .progress-text { text-align: center; font-family: var(--font-mono); font-size: 0.9rem; margin-top: 0.5rem; color: var(--primary-glow); display: none; } .nav-dropdown { position: relative; display: inline-block; } .nav-dropdown-content { display: none; position: absolute; background-color: #1a1c20; min-width: 220px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.9); z-index: 10000 !important; border: 1px solid var(--border-color); border-radius: 4px; padding: 0.5rem 0; } .nav-dropdown-content a { color: var(--text-color); padding: 12px 16px; text-decoration: none; display: block; font-family: var(--font-display); font-size: 0.95rem; display: flex; align-items: center; gap: 10px; } .nav-dropdown-content a:hover { background-color: rgba(255,255,255,0.1); } .nav-dropdown.active .nav-dropdown-content { display: block; } .nav-dropdown .nav-button .fa-caret-down { transition: transform 0.2s; } .nav-dropdown.active .nav-button .fa-caret-down { transform: rotate(180deg); } .dtc-grid-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 0.5rem 1rem; max-height: 400px; overflow-y: auto; border: 1px solid var(--border-color); margin-bottom: 1rem; background: rgba(0,0,0,0.1); padding: 1rem; } .dtc-grid-item { display: flex; align-items: center; justify-content: space-between; padding: 0.5rem 0; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } .dtc-grid-info { display: flex; flex-direction: column; flex-grow: 1; } .dtc-grid-info .dtc-code { font-weight: bold; color: var(--secondary-glow); } .dtc-grid-info .dtc-label { font-size: 0.85rem; color: #aaa; } .dtc-grid-item .dtc-switch { flex-shrink: 0; width: 50px; height: 26px; margin-left: 1rem; } .dtc-grid-info .dtc-label { word-break: break-word; } .kpi-card.unsupported { opacity: 0.5; background: rgba(0,0,0,0.1); } .kpi-card.unsupported .value { color: #666; } #datalogger-init-terminal { font-family: var(--font-mono); background: #0a0c10; border: 1px solid var(--border-color); height: 200px; overflow-y: scroll; padding: 1rem; border-radius: 4px; margin-top: 1.5rem; display: none; } #datalogger-init-terminal p { margin: 0 0 0.5rem 0; font-size: 0.9rem; white-space: pre-wrap; } #datalogger-init-terminal .log-tx { color: var(--secondary-glow); } #datalogger-init-terminal .log-rx { color: var(--success-glow); } #datalogger-init-terminal .log-err { color: var(--error-glow); } #datalogger-init-terminal .log-info { color: #8a93a2; } .mod-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0.8rem; margin-bottom: 1.5rem; max-height: 60vh; overflow-y: auto; padding-right: 0.5rem; } .mod-option { background: rgba(30, 34, 45, 0.6); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 4px; padding: 0.8rem; cursor: pointer; transition: all 0.2s ease; display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; } .mod-option:hover { background: rgba(255, 255, 255, 0.05); border-color: var(--secondary-glow); transform: translateY(-2px); } .mod-option strong { font-size: 0.9rem; color: var(--text-color); margin-bottom: 0.2rem; display: block; } .mod-option span { font-size: 0.75rem; color: #6c7a89; line-height: 1.2; max-height: 2.4em; overflow: hidden; text-overflow: ellipsis; } #mod-selection-modal .modal-body { padding: 1.5rem; background: #0f1115; } #mod-selection-modal .modal-header { background: rgba(0, 0, 0, 0.4); border-bottom: 1px solid rgba(255, 255, 255, 0.05); } button, .icon-button, .btn { font-family: var(--font-display); background: var(--primary-glow); color: #000; font-weight: bold; border: none; padding: 1rem; cursor: pointer; transition: all 0.2s ease-out; border-radius: 4px; text-transform: uppercase; position: relative; overflow: hidden; z-index: 1; } button:hover, .icon-button:hover, .btn:hover { background: var(--secondary-glow); color: #000; box-shadow: 0 0 20px 3px color-mix(in srgb, var(--secondary-glow) 40%, transparent); transform: translateY(-3px); } button::before, .btn::before { content: ''; position: absolute; top: 50%; left: 50%; width: 0; height: 0; background: rgba(255,255,255,0.2); border-radius: 50%; transform: translate(-50%, -50%); transition: width 0.3s, height 0.3s; } button:active::before, .btn:active::before { width: 300px; height: 300px; } button:active, .icon-button:active, .btn:active { transform: translateY(0) scale(0.98); box-shadow: 0 0 10px 1px color-mix(in srgb, var(--secondary-glow) 30%, transparent); } button.nav-button:hover { background: transparent; box-shadow: none; transform: none; } button + button, .btn + .btn { margin-left: 1rem; } .final-summary, .status-message { padding: 2rem; border: 1px solid; text-align: center; border-radius: 6px; } .success { border-color: var(--success-glow); box-shadow: inset 0 0 20px color-mix(in srgb, var(--success-glow) 20%, transparent); } .error { border-color: var(--error-glow); box-shadow: inset 0 0 20px color-mix(in srgb, var(--error-glow) 20%, transparent); } .warning { border-color: var(--primary-glow); box-shadow: inset 0 0 20px var(--primary-glow-transparent); } .status-message.warning h3 { color: var(--primary-glow); } .info-grid { display: grid; grid-template-columns: auto 1fr; gap: 1rem 2rem; text-align: left; max-width: 600px; margin: 1.5rem auto; } .table-container { overflow-x: auto; } table { width: 100%; border-collapse: collapse; margin-top: 1.5rem; table-layout: auto; } th, td { padding: 1rem; border: 1px solid var(--border-color); text-align: left; vertical-align: middle; white-space: nowrap; } td:nth-child(2), td:nth-child(3) { white-space: normal; word-break: break-all; } th { font-family: var(--font-display); color: var(--primary-glow); } tbody tr:hover { background-color: var(--primary-glow-transparent); } .stats-container { display: grid; gap: 2rem; grid-template-columns: 300px 1fr; } #stats-kpi-sidebar { display: flex; flex-direction: column; gap: 1.5rem; } .stats-main-panel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; } .kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; } .kpi-card { background: rgba(0,0,0,0.2); border: 1px solid var(--border-color); padding: 1.5rem; border-radius: 6px; clip-path: polygon(0 0, calc(100% - 15px) 0, 100% 15px, 100% 100%, 0 100%); margin-bottom: 0; } .kpi-card h3 { margin: 0 0 0.5rem 0; font-size: 1rem; text-transform: uppercase; color: var(--secondary-glow); } .kpi-card .value { font-family: var(--font-mono); font-size: 2.5rem; color: var(--primary-glow); text-shadow: 0 0 12px var(--primary-glow); word-break: break-all; } .data-list-card { grid-column: span 1; } .data-list-card h3 { color: var(--primary-glow); font-family: var(--font-display); margin-top: 0; font-size: 1.2rem; } .data-list, .mod-list { display: flex; flex-direction: column; gap: 1.2rem; } .data-item, .mod-item { display: flex; flex-direction: column; } .data-info, .mod-info { display: flex; justify-content: space-between; margin-bottom: 0.5rem; font-family: var(--font-mono); } .data-name, .mod-name { font-weight: bold; } .data-count, .mod-count { color: var(--secondary-glow); } .progress-bar-container { height: 10px; width: 100%; background-color: rgba(0,0,0,0.4); border-radius: 2px; border: 1px solid var(--border-color); } .progress-bar, .terminal-progress-bar, .worker-progress-bar div { height: 100%; background: #28a745 !important; box-shadow: 0 0 10px rgba(40, 167, 69, 0.5) !important; border-radius: 4px; position: relative; overflow: hidden; color: white; font-weight: bold; display: flex; align-items: center; justify-content: flex-end; padding-right: 10px; transition: width 0.3s ease; } .progress-bar::after { content: ''; display: none; } .worker-progress-bar { width: 100%; height: 25px; background-color: rgba(0,0,0,0.5); border: 1px solid var(--border-color); border-radius: 4px; padding: 2px; margin-top: 1rem; } .worker-progress-bar div::after { content: attr(data-percentage); font-size: 14px; } .terminal-progress-bar-container { height: 8px; width: 100%; background-color: rgba(255,255,255,0.1); border-radius: 4px; margin: 0.5rem 0; } .view#editor { padding: 0; } .editor-container { display: flex; height: calc(100vh - 120px); gap: 1rem; padding: 1rem; } .editor-sidebar { flex: 0 0 25%; min-width: 300px; background: rgba(0,0,0,0.2); border: 1px solid var(--border-color); border-radius: 6px; display: flex; flex-direction: column; overflow: hidden; } .editor-main { flex: 1; display: flex; flex-direction: column; gap: 1rem; } .editor-toolbar { display: flex; gap: 1rem; padding: 1rem; background: rgba(0,0,0,0.2); border: 1px solid var(--border-color); border-radius: 6px; align-items: center; } .editor-view-container { flex: 1; position: relative; } .hex-editor-container { position: absolute; inset: 0; background: #1e1e1e; border: 1px solid var(--border-color); border-radius: 4px; overflow: hidden; } #hex-canvas { position: absolute; top: 0; left: 0; cursor: default; } #hex-scrollbar { position: absolute; top: 0; right: 0; width: 15px; height: 100%; background: rgba(0,0,0,0.2); } #hex-scrollbar-thumb { position: absolute; left: 2px; width: 11px; background: var(--primary-glow); border-radius: 5px; cursor: pointer; } #map-pack-panel { padding: 1rem; overflow-y: auto; flex: 1; } #map-pack-panel h4 { margin-top: 0; color: var(--primary-glow); } .map-item { padding: 8px; border-bottom: 1px solid var(--border-color); cursor: pointer; transition: background-color: 0.2s; } .map-item:hover { background-color: var(--primary-glow-transparent); } .map-item strong { color: var(--text-color); } .map-item small { color: #888; } .files-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; padding: 1rem; background: rgba(0,0,0,0.2); border-radius: 6px; } .filter-buttons .filter-btn { background: transparent; border: 1px solid var(--border-color); color: var(--text-color); margin-right: 0.5rem; padding: 0.5rem 1rem; } .filter-buttons .filter-btn:hover { border-color: var(--secondary-glow); color: var(--secondary-glow); background: var(--secondary-glow-transparent); transform: none; box-shadow: none; } .filter-buttons .filter-btn.active { background: var(--primary-glow); border-color: var(--primary-glow); color: #000; box-shadow: 0 0 10px var(--primary-glow-transparent); } .page-btn { font-family: var(--font-display); background: transparent; border: 1px solid var(--border-color); color: var(--text-color); padding: 0.6rem 1rem; cursor: pointer; transition: all 0.2s ease; border-radius: 4px; } .page-btn:hover:not(:disabled) { background: var(--secondary-glow-transparent); border-color: var(--secondary-glow); color: var(--secondary-glow); } .page-btn.active { background: var(--primary-glow); border-color: var(--primary-glow); color: #000; box-shadow: 0 0 10px var(--primary-glow-transparent); } .page-btn:disabled { opacity: 0.4; cursor: not-allowed; } #version-container { display: flex; align-items: center; gap: 0.75rem; } .version-info { font-size: 0.9rem; color: #8a93a2; font-family: var(--font-mono); } .changelog-badge { font-family: var(--font-display); font-size: 0.75rem; color: var(--secondary-glow); background-color: var(--secondary-glow-transparent); border: 1px solid var(--secondary-glow); padding: 3px 8px; border-radius: 12px; text-decoration: none; transition: all 0.3s ease; cursor: pointer; } .changelog-badge:hover { color: #000; background-color: var(--secondary-glow); box-shadow: 0 0 10px var(--secondary-glow); transform: translateY(-1px); } #changelog-modal .modal-body { font-family: var(--font-mono); max-height: 60vh; overflow-y: auto; } .changelog-entry { margin-bottom: 2rem; } .changelog-entry:last-child { margin-bottom: 0; } .changelog-entry h4 { font-family: var(--font-display); color: var(--primary-glow); text-shadow: 0 0 8px var(--primary-glow-transparent); margin: 0 0 1rem 0; border-bottom: 1px solid var(--border-color); padding-bottom: 0.5rem; } .changelog-entry .changelog-date { font-size: 0.8rem; color: #8a93a2; margin-left: 0.5rem; } .changelog-entry ul { list-style: none; padding-left: 0; margin: 0; } .changelog-entry li { margin-bottom: 0.75rem; line-height: 1.6; padding-left: 1.5rem; position: relative; } .changelog-entry li::before { content: '»'; position: absolute; left: 0; color: var(--primary-glow); } .log-tag { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 0.8rem; font-weight: bold; margin-right: 0.75rem; font-family: var(--font-display); } .log-tag.new { background-color: var(--success-glow); color: #111; } .log-tag.fix { background-color: var(--secondary-glow); color: #111; } .account-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); gap: 2rem; margin-bottom: 2rem; } #account .card h3 { margin-top: 0; color: var(--secondary-glow); font-size: 1.2rem; } #account .card h3 .fas { margin-right: 0.75rem; } .cta-button { display: block; width: 100%; text-align: center; font-size: 1.2rem; padding: 1.5rem; margin-bottom: 2rem; } .cta-button .fas, .cta-button .fab { margin-right: 1rem; } .recent-jobs-title { color: var(--secondary-glow) !important; } .notification-icon { position: relative; cursor: pointer; font-size: 1.4rem; color: #a0a0a0; transition: color 0.3s ease; } .notification-dot { position: absolute; top: -2px; right: -5px; width: 10px; height: 10px; background-color: var(--error-glow); border-radius: 50%; border: 2px solid var(--bg-color); box-shadow: 0 0 10px var(--error-glow); display: flex; justify-content: center; align-items: center; font-size: 0.7rem; font-weight: bold; color: white; } .notification-panel { position: absolute; top: 80px; right: 2rem; width: 450px; max-height: 500px; background: var(--panel-bg); border: 1px solid var(--border-color); border-radius: 6px; box-shadow: 0 10px 30px rgba(0,0,0,0.5); z-index: 1100; display: none; flex-direction: column; opacity: 0; transform: translateY(-10px); transition: opacity 0.3s ease, transform 0.3s ease; } .notification-panel.visible { display: flex; opacity: 1; transform: translateY(0); } .notification-panel-header { padding: 1rem 1.5rem; border-bottom: 1px solid var(--border-color); display: flex; justify-content: space-between; align-items: center; } .notification-panel-header h3 { margin: 0; font-size: 1rem; } .clear-notifications-btn { background: transparent; border: none; color: #a0a0a0; font-size: 1rem; cursor: pointer; padding: 0.5rem; transition: all 0.2s ease; } .clear-notifications-btn:hover { color: var(--error-glow); transform: scale(1.1); } .notification-list { overflow-y: auto; flex: 1; } .notification-item { display: flex; gap: 1rem; padding: 1rem 1.5rem; border-bottom: 1px solid var(--border-color); cursor: pointer; transition: background-color: 0.2s; } .notification-item.is-read { opacity: 0.6; } .notification-item:hover { background-color: var(--secondary-glow-transparent); opacity: 1; } .notification-item:last-child { border-bottom: none; } .notification-item .icon { font-size: 1.2rem; margin-top: 2px; } .notification-item .icon .fa-check-circle { color: var(--success-glow); } .notification-item .icon .fa-exclamation-triangle { color: var(--primary-glow); } .notification-item .message { flex: 1; font-size: 0.9rem; } .notification-item .timestamp { font-size: 0.75rem; color: #8a93a2; margin-top: 0.3rem; } .site-footer { width: 100%; padding: 1.5rem 0; text-align: center; font-size: 0.85rem; color: #6a7382; margin-top: auto; } .site-footer p { margin: 0.3rem 0; } .engineer-status { display: flex; align-items: center; gap: 0.5rem; font-size: 0.9rem; color: var(--success-glow); } .engineer-status::before { content: ''; width: 10px; height: 10px; background-color: var(--success-glow); border-radius: 50%; box-shadow: 0 0 8px var(--success-glow); animation: pulse 2s infinite; } @keyframes pulse { 0% { transform: scale(0.9); box-shadow: 0 0 0 0 color-mix(in srgb, var(--success-glow) 70%, transparent); } 70% { transform: scale(1); box-shadow: 0 0 0 10px rgba(0, 255, 140, 0); } 100% { transform: scale(0.9); box-shadow: 0 0 0 0 rgba(0, 255, 140, 0); } } .project-card, .recent-job-item { display: flex; align-items: center; gap: 1.5rem; padding: 1.5rem; position: relative; border: 1px solid var(--border-color); transition: all 0.3s ease; border-radius: 6px; background-color: rgba(0,0,0,0.2); margin-bottom: 1rem; } .job-info { flex-grow: 1; } .job-info .modification-name { font-family: var(--font-display); font-size: 1.2rem; color: var(--text-color); margin: 0 0 0.5rem 0; display: block; } .job-info .file-name { font-family: var(--font-mono); font-size: 0.9rem; color: #8a93a2; display: block; margin-top: 0.3rem; word-break: break-all; } .job-info .job-date { font-size: 0.8rem; color: #6a7382; margin-top: 0.8rem; } .status-tag { position: absolute; top: 1rem; right: 1rem; font-family: var(--font-mono); font-size: 0.8rem; font-weight: bold; padding: 0.2rem 0.6rem; border-radius: 4px; text-transform: uppercase; } .status-tag-complete { background-color: var(--success-glow); color: #111; } .status-tag-processing, .status-tag-failed { background-color: var(--primary-glow); color: #111; } .status-tag-refunded { background-color: var(--error-glow); color: #111; } .status-tag-revision { background-color: var(--secondary-glow); color: #111; } .status-tag-custom { background-color: var(--custom-glow); color: white; box-shadow: 0 0 10px var(--custom-glow-transparent); } .project-card.status-processing, .recent-job-item.status-processing, .project-card.status-failed, .recent-job-item.status-failed { border-color: var(--primary-glow); box-shadow: 0 0 15px var(--primary-glow-transparent); } .project-card.status-complete, .recent-job-item.status-complete { border-color: var(--success-glow); box-shadow: 0 0 15px var(--success-glow-transparent); } .project-card.status-refunded, .recent-job-item.status-refunded { border-color: var(--error-glow); box-shadow: 0 0 15px var(--error-glow-transparent); } .project-card.status-in_revision, .recent-job-item.status-in_revision { border-color: var(--secondary-glow); box-shadow: 0 0 15px var(--secondary-glow-transparent); } .project-card.job_type_custom, .recent-job-item.job_type_custom { border-color: var(--custom-glow); box-shadow: 0 0 15px var(--custom-glow-transparent); } .project-card:hover, .recent-job-item:hover { transform: translateY(-5px) scale(1.01); } .project-card.status-processing:hover, .recent-job-item.status-processing:hover, .project-card.status-failed:hover, .recent-job-item.status-failed:hover { box-shadow: 0 0 30px var(--primary-glow); } .project-card.status-complete:hover, .recent-job-item.status-complete:hover { box-shadow: 0 0 30px var(--success-glow); } .project-card.status-refunded:hover, .recent-job-item.status-refunded:hover { box-shadow: 0 0 30px var(--error-glow); } .project-card.status-in_revision:hover, .recent-job-item.status-in_revision:hover { box-shadow: 0 0 30px var(--secondary-glow); } .project-card.job_type_custom:hover, .recent-job-item.job_type_custom:hover { box-shadow: 0 0 30px var(--custom-glow); } #recent-jobs-card .card { padding-bottom: 1rem; } .recent-jobs-list { display: flex; flex-direction: column; gap: 1rem; padding: 0.5rem; margin: -0.5rem; } #upload-terminal, #dtc-terminal { background-color: #000; border: 1px solid var(--border-color); border-radius: 6px; padding: 1.5rem; font-family: var(--font-mono); box-shadow: inset 0 0 25px rgba(0,0,0,0.5), 0 0 30px var(--secondary-glow-transparent); } .terminal-header { text-align: center; color: var(--secondary-glow); font-family: var(--font-display); margin-bottom: 1.5rem; text-shadow: 0 0 10px var(--secondary-glow); } #terminal-output { height: 350px; overflow-y: auto; white-space: pre-wrap; line-height: 1.6; margin-bottom: 1.5rem; } #terminal-output .line { opacity: 0; transition: opacity 0.2s; } #terminal-output .line.visible { opacity: 1; } #terminal-output .line.success { color: var(--success-glow); } #terminal-output .line.error { color: var(--error-glow); } #terminal-output .line.warning { color: var(--primary-glow); } #terminal-output .line.info { color: var(--secondary-glow); } #terminal-output .line .fas { margin-right: 0.75rem; } .terminal-footer { display: flex; gap: 1.5rem; border-top: 1px dashed var(--border-color); padding-top: 1.5rem; } #hex-scroller { flex: 1; height: 100px; overflow: hidden; background: rgba(0,0,0,0.3); padding: 0.5rem; border-radius: 4px; position: relative; border: 1px solid var(--border-color); } #hex-scroller::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 30px; background: linear-gradient(to top, #000, transparent); pointer-events: none; } .terminal-status-panel { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; } #terminal-final-status { font-family: var(--font-display); font-size: 1.5rem; opacity: 0; transition: opacity 0.5s; } #terminal-final-status.visible { opacity: 1; } #terminal-actions { margin-top: 1rem; display: none; gap: 1rem; } .hud-element { display: none; } .hud-top-left { top: 20px; left: 20px; border-right: none; border-bottom: none; } .hud-top-right { top: 20px; right: 20px; border-left: none; border-bottom: none; } .hud-bottom-left { bottom: 20px; left: 20px; border-right: none; border-top: none; } .hud-bottom-right { bottom: 20px; right: 20px; border-left: none; border-top: none; } #viewer-modal .modal-body { padding: 1rem; overflow: hidden; } .viewer-container { width: 100%; height: 75vh; display: flex; flex-direction: column; } #viewer-canvas { flex-grow: 1; background-color: #000; border: 1px solid var(--border-color); border-radius: 4px; } .viewer-scrollbar-container { padding-top: 1rem; flex-shrink: 0; } #viewer-scrollbar { width: 100%; cursor: pointer; } .shop-step-container { display: grid; grid-template-columns: 2fr 1fr; gap: 2rem; align-items: flex-start; } .order-summary, .billing-summary-card { background: rgba(0,0,0,0.2); border: 1px solid var(--border-color); padding: 1.5rem; border-radius: 6px; } .order-summary h4, .billing-summary-card h4 { margin-top: 0; color: var(--secondary-glow); font-family: var(--font-display); border-bottom: 1px solid var(--border-color); padding-bottom: 0.8rem; margin-bottom: 1rem; } .summary-table { width: 100%; margin-bottom: 1rem; } .summary-table td { padding: 0.5rem 0; border: none; } .summary-table tr.total td { padding-top: 1rem; border-top: 1px solid var(--border-color); font-weight: bold; font-size: 1.2rem; color: var(--success-glow); } .billing-summary-card p { margin: 0 0 0.5rem 0; line-height: 1.6; } .billing-summary-card a { color: var(--secondary-glow); font-size: 0.9rem; } .promo-code-input-group { display: flex; gap: 1rem; margin-top: 1.5rem; } #promo-code-input { flex-grow: 1; } #shop-step-3 { max-width: 500px; margin: 0 auto; } .dtc-container { display: grid; gap: 2rem; height: 75vh; } #dtc-results-panel { display: flex; flex-direction: column; overflow: hidden; grid-column: 1 / -1; } .dtc-toolbar { display: flex; gap: 1rem; margin-bottom: 1.5rem; align-items: center; } .dtc-list-header { display: grid; grid-template-columns: 150px 1fr 100px; gap: 1rem; padding: 0.8rem 1rem; border-bottom: 1px solid var(--border-color); font-family: var(--font-display); color: var(--secondary-glow); } .dtc-list-container { flex-grow: 1; overflow-y: auto; border: 1px solid var(--border-color); border-radius: 4px; background: rgba(0,0,0,0.2); } .dtc-row { display: grid; grid-template-columns: 150px 1fr 100px; gap: 1rem; padding: 0.8rem 1rem; align-items: center; border-bottom: 1px solid var(--border-color); } .dtc-row:last-child { border-bottom: none; } .dtc-row .dtc-code { font-family: var(--font-mono); font-weight: bold; } .dtc-row .dtc-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 0.9rem; color: #a0a0a0; } .dtc-switch { position: relative; display: inline-block; width: 50px; height: 24px; } .dtc-switch input { display: none; } .dtc-switch .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #333; transition: .4s; border-radius: 24px; } .dtc-switch .slider:before { position: absolute; content: ""; height: 18px; width: 18px; left: 3px; bottom: 3px; background-color: white; transition: .4s; border-radius: 50%; } .dtc-switch input:checked + .slider { background-color: var(--error-glow); } .dtc-switch input:not(:checked) + .slider { background-color: var(--success-glow); } .dtc-switch input:checked + .slider:before { transform: translateX(26px); } .beta-warning { padding: 1rem; background-color: var(--error-glow-transparent); border: 1px solid var(--error-glow); border-left-width: 4px; border-radius: 4px; margin-bottom: 2rem; color: var(--error-glow); } .beta-warning .fas { margin-right: 0.5rem; } #all-jobs-table tr.status-in_revision td { border-left: 4px solid var(--secondary-glow); border-right: 4px solid var(--secondary-glow); } #all-jobs-table tr.status-in_revision:hover td { background-color: var(--secondary-glow-transparent); } .whatsapp-support-link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background-color: transparent; color: var(--text-color); padding: 1rem 1.5rem; border-radius: 5px; text-decoration: none; font-family: var(--font-display); font-weight: bold; margin-top: 1rem; border: 1px solid #25D366; transition: transform 0.2s, box-shadow 0.2s, background-color: 0.2s; } .whatsapp-support-link:hover { transform: translateY(-3px); background-color: rgba(37, 211, 102, 0.1); box-shadow: 0 5px 15px rgba(37, 211, 102, 0.2); } .whatsapp-support-link i { font-size: 1.5rem; color: #25D366; } .header-whatsapp-link { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; font-weight: bold; transition: text-shadow 0.3s, color 0.3s, transform 0.2s, box-shadow 0.2s, background-color: 0.2s; font-size: 0.9rem; color: var(--text-color); padding: 0.5rem 1rem; border-radius: 5px; border: 1px solid #25D366; } .header-whatsapp-link:hover { transform: translateY(-2px); background-color: rgba(37, 211, 102, 0.1); box-shadow: 0 4px 12px rgba(37, 211, 102, 0.2); color: var(--text-color); } .header-whatsapp-link:hover span { text-shadow: 0 0 8px rgba(37, 211, 102, 0.7); } .header-whatsapp-link i { color: #25D366; font-size: 1.2rem; } #vehicle-id-modal .modal-body { padding: 2rem; } #vehicle-id-modal .id-card { background: linear-gradient(135deg, color-mix(in srgb, var(--secondary-glow) 5%, transparent), color-mix(in srgb, var(--primary-glow) 5%, transparent)); border: 1px solid var(--border-color); border-radius: 8px; padding: 1.5rem; } #vehicle-id-modal .id-card-header { text-align: center; padding-bottom: 1rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--border-color); } #vehicle-id-modal .id-card-header h3 { margin: 0; font-size: 1.5rem; color: var(--secondary-glow); text-shadow: 0 0 10px var(--secondary-glow-transparent); } #vehicle-id-modal .id-card-header p { margin: 0.2rem 0 0 0; font-family: var(--font-mono); color: #8a93a2; } #vehicle-id-modal .details-grid { display: grid; grid-template-columns: auto 1fr; gap: 1rem 1.5rem; } #vehicle-id-modal .details-grid .detail-item { display: flex; align-items: center; gap: 0.8rem; } #vehicle-id-modal .details-grid .detail-item i { color: var(--secondary-glow); width: 20px; text-align: center; } #vehicle-id-modal .details-grid .detail-item .label { color: #8a93a2; } #vehicle-id-modal .details-grid .detail-item .value { font-family: var(--font-mono); color: var(--text-color); font-weight: bold; } #vehicle-id-modal .modal-footer { justify-content: space-between; } #vehicle-id-modal .modal-footer .error-text { color: var(--error-glow); font-size: 0.9rem; } #cookie-consent-banner.modal { display: none; max-width: 500px; } #cookie-consent-banner.modal.visible { display: block; opacity: 1; transform: translate(-50%, -50%); } #cookie-consent-banner .modal-body { padding: 2rem; text-align: center; } #cookie-consent-banner p { margin: 0 0 1.5rem 0; line-height: 1.6;} #cookie-consent-banner a { color: var(--secondary-glow); text-decoration: none; } #cookie-consent-banner a:hover { text-decoration: underline; } #accept-cookies { background: var(--primary-glow); color: #000; padding: 0.8rem 2.5rem; font-size: 1rem; } #accept-cookies:hover { background: var(--secondary-glow); } .hero { text-align: center; padding: 6rem 2rem 8rem 2rem; border-bottom: 1px solid var(--border-color); position: relative; overflow: hidden; } .hero::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 150%; height: 100%; background: radial-gradient(circle, var(--primary-glow-transparent) 0%, rgba(10,12,16,0) 70%); animation: pulse-background 8s infinite ease-in-out; } @keyframes pulse-background { 0%, 100% { opacity: 0.5; transform: translateX(-50%) scale(1); } 50% { opacity: 0.8; transform: translateX(-50%) scale(1.1); } } .hero h1 { font-size: 3.5rem; margin-bottom: 1rem; color: var(--primary-glow); position: relative; z-index: 1; animation: slideInFade 1s ease-out; } .hero p { font-size: 1.2rem; max-width: 800px; margin: 0 auto 2.5rem auto; color: #a0a0a2; position: relative; z-index: 1; animation: slideInFade 1s ease-out 0.3s backwards; } .cta-button { font-size: 1.2rem; padding: 1rem 2.5rem; text-decoration: none; position: relative; z-index: 1; animation: slideInFade 1s ease-out 0.6s backwards; } .features-section { padding: 4rem 2rem; text-align: center; } .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; } .feature-card { background: rgba(0,0,0,0.2); padding: 2rem; border-radius: 8px; border: 1px solid var(--border-color); transition: all 0.3s ease-out; } .feature-card:hover { transform: translateY(-10px); border-color: var(--primary-glow); box-shadow: 0 0 30px var(--primary-glow-transparent); } .feature-card .icon { font-size: 3rem; color: var(--secondary-glow); margin-bottom: 1.5rem; text-shadow: 0 0 15px var(--secondary-glow); } .feature-card h3 { color: var(--secondary-glow); margin-bottom: 1rem; } .feature-card p { color: #a0a0a2; line-height: 1.7; } .main-nav { display: flex; gap: 0.5rem; } header .button.btn-secondary { background-color: transparent; border: 1px solid var(--secondary-glow); color: var(--secondary-glow); padding: 0.6rem 1.2rem; font-size: 0.9rem; } header .button.btn-secondary:hover { background-color: var(--secondary-glow); color: #111; transform: translateY(-2px); box-shadow: 0 0 15px var(--secondary-glow); } .project-card.job_type_ext, .recent-job-item.job_type_ext { border-color: var(--secondary-glow); box-shadow: 0 0 15px var(--secondary-glow-transparent); } .project-card.job_type_ext:hover, .recent-job-item.job_type_ext:hover { box-shadow: 0 0 30px var(--secondary-glow); } select.custom-select { -webkit-appearance: none; -moz-appearance: none; appearance: none; background-color: #1c1f2b; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23FF8C00' class='bi bi-chevron-down' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; background-size: 1em; padding-right: 2.5rem; } select.custom-select:disabled { opacity: 0.5; cursor: not-allowed; background-color: rgba(0,0,0,0.5); border-color: rgba(255,255,255,0.1); } #proceed-to-payment-btn-stripe, #proceed-to-payment-btn-paddle { display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 10px !important; width: 100% !important; padding: 16px 24px !important; line-height: 1 !important; font-weight: 700 !important; text-transform: none !important; } #proceed-to-payment-btn-stripe i, #proceed-to-payment-btn-paddle i { font-size: 1em !important; line-height: 1 !important; vertical-align: middle !important; } #snow-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 9999; } .snowflake { position: absolute; top: -10px; background: white; border-radius: 50%; opacity: 0.8; animation: fall linear infinite; } @keyframes fall { to { transform: translateY(105vh); } } .frost-effect { border: 2px solid var(--secondary-glow) !important; box-shadow: 0 0 15px color-mix(in srgb, var(--secondary-glow) 50%, transparent); } .logo img, .brand img { height: 50px; max-height: 50px; max-width: 100%; width: auto; transition: transform 0.3s ease; } .logo img:hover, .brand img:hover { transform: scale(1.05); } nav { position: relative; z-index: 2000 !important; } .nav-dropdown-content { z-index: 10000 !important; position: absolute; background-color: #1a1c20; border: 1px solid var(--border-color); box-shadow: 0 10px 30px rgba(0,0,0,0.9); } .cta-button, .btn { position: relative; z-index: 1; } select.custom-select { color-scheme: dark; cursor: pointer; } .tabs { display: flex; border-bottom: 1px solid var(--border-color); margin-bottom: 2rem; flex-wrap: nowrap; overflow-x: auto; gap: 10px; } body.privacy-active #credits-display, body.privacy-active #dashboard-credits, body.privacy-active .pack-price, body.privacy-active .mod-option span, body.privacy-active .cost-line span:last-child, body.privacy-active #simulator-total-cost, body.privacy-active #total-cost-container, body.privacy-active .privacy-sensitive, body.privacy-active .summary-item-price, body.privacy-active #dynamic-total-cost { filter: blur(8px) !important; opacity: 0.5; pointer-events: none; user-select: none; } .modal-footer .cta-button, .modal-footer-custom .cta-button { width: auto; display: inline-flex; padding: 0.8rem 1.5rem; font-size: 1rem; margin-bottom: 0; align-items: center; justify-content: center; } .modal-body.no-padding { padding: 0 !important; overflow: hidden; height: 70vh; display: flex; } .modal-split-layout { display: flex; width: 100%; height: 100%; } .options-column { flex: 1; padding: 1.5rem; background: rgba(10, 12, 16, 0.5); display: flex; flex-direction: column; overflow: hidden; border-right: 1px solid var(--border-color); } .search-bar-container { position: relative; margin-bottom: 1.5rem; } .search-icon { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--secondary-glow); } #mod-search-input { width: 100%; padding: 0.8rem 1rem 0.8rem 2.5rem; background: rgba(0,0,0,0.4); border: 1px solid var(--border-color); border-radius: 2rem; color: white; font-family: var(--font-body); transition: all 0.3s ease; } #mod-search-input:focus { border-color: var(--secondary-glow); box-shadow: 0 0 10px var(--secondary-glow-transparent); } .mod-options-grid { display: flex; flex-direction: column; gap: 1.5rem; overflow-y: auto; padding-right: 0.5rem; padding-bottom: 1rem; max-height: 60vh; } .mod-category-title { font-family: var(--font-display); color: var(--secondary-glow); font-size: 1.1rem; margin-bottom: 0.8rem; padding-bottom: 0.5rem; border-bottom: 1px solid color-mix(in srgb, var(--secondary-glow) 20%, transparent); text-transform: uppercase; letter-spacing: 1px; } .mod-category-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0.8rem; } .mod-option { background: rgba(30, 34, 45, 0.6); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 4px; padding: 0.8rem; cursor: pointer; transition: all 0.2s ease; display: flex; flex-direction: column; justify-content: flex-start; position: relative; overflow: hidden; min-height: auto; } .mod-option:hover { background: rgba(255, 255, 255, 0.05); border-color: var(--secondary-glow); transform: translateY(-2px); } #mod-selection-modal .mod-option.selected { background: linear-gradient(90deg, color-mix(in srgb, var(--success-glow) 15%, transparent) 0%, rgba(0, 0, 0, 0) 100%) !important; border: 1px solid var(--success-glow) !important; border-left: 4px solid var(--success-glow) !important; color: white !important; box-shadow: 0 0 10px color-mix(in srgb, var(--success-glow) 15%, transparent); } #mod-selection-modal .mod-option.selected strong { color: var(--success-glow); text-shadow: 0 0 5px color-mix(in srgb, var(--success-glow) 30%, transparent); } .mod-option strong { font-size: 0.95rem; color: var(--text-color); margin-bottom: 0.2rem; display: block; word-break: break-word; line-height: 1.3; } .mod-option span { font-size: 0.75rem; color: #6c7a89; line-height: 1.4; overflow: visible; white-space: normal; } #mod-selection-modal .modal-body { padding: 1.5rem; background: #0f1115; } #mod-selection-modal .modal-header { background: rgba(0, 0, 0, 0.4); border-bottom: 1px solid rgba(255, 255, 255, 0.05); } .modal { max-width: 1100px; } .summary-column { width: 320px; background: #16181f; display: flex; flex-direction: column; border-left: 1px solid var(--border-color); box-shadow: -5px 0 20px rgba(0,0,0,0.3); } .summary-header { padding: 1.5rem; border-bottom: 1px solid var(--border-color); background: color-mix(in srgb, var(--secondary-glow) 5%, transparent); } .summary-header h3 { margin: 0; font-size: 1.1rem; color: var(--text-color); display: flex; align-items: center; gap: 0.5rem; } .summary-content { flex: 1; padding: 1.5rem; overflow-y: auto; } .empty-placeholder { color: #666; font-style: italic; text-align: center; margin-top: 2rem; } .summary-item { display: flex; justify-content: space-between; align-items: center; background: rgba(255,255,255,0.03); padding: 0.8rem; border-radius: 6px; margin-bottom: 0.8rem; border: 1px solid transparent; animation: fadeIn 0.3s ease; } .summary-item:hover { border-color: var(--secondary-glow); background: rgba(255,255,255,0.05); } .summary-item-name { font-size: 0.9rem; font-weight: bold; color: var(--text-color); } .summary-item-price { font-family: var(--font-mono); color: var(--primary-glow); font-size: 0.9rem; } .summary-item-remove { cursor: pointer; color: var(--error-glow); margin-left: 0.5rem; opacity: 0.7; transition: opacity 0.2s; } .summary-item-remove:hover { opacity: 1; } .summary-footer { padding: 1.5rem; border-top: 1px solid var(--border-color); background: rgba(0,0,0,0.2); } .cost-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; } .cost-label { font-size: 1rem; color: #aaa; } .cost-value { font-family: var(--font-mono); font-size: 1.8rem; color: var(--primary-glow); font-weight: bold; text-shadow: 0 0 10px var(--primary-glow-transparent); } .btn-success.full-width { width: 100%; padding: 1rem; font-size: 1.1rem; display: flex; justify-content: center; align-items: center; gap: 0.5rem; } .pulse-effect { animation: pulse-soft 2s infinite; } @keyframes pulse-soft { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--success-glow) 40%, transparent); } 70% { box-shadow: 0 0 0 10px rgba(0, 255, 140, 0); } 100% { box-shadow: 0 0 0 0 rgba(0, 255, 140, 0); } } .message-info { background: color-mix(in srgb, var(--secondary-glow) 10%, transparent); border-left: 4px solid var(--secondary-glow); padding: 1rem; border-radius: 4px; } .ori-file-card { text-align: left; padding: 1.5rem; background: rgba(0,0,0,0.25); border: 1px solid var(--border-color); border-radius: 6px; transition: all 0.3s ease; } .ori-file-card:hover { border-color: var(--secondary-glow); box-shadow: 0 10px 25px var(--secondary-glow-transparent); } .shop-layout { display: grid; grid-template-columns: 1fr 380px; gap: 2.5rem; align-items: flex-start; } .pricing-panel { background: rgba(0,0,0,0.4); border: 1px solid var(--border-color); border-radius: 12px; padding: 3rem; position: relative; overflow: hidden; box-shadow: inset 0 0 30px color-mix(in srgb, var(--secondary-glow) 5%, transparent); } .slider-container { margin: 4rem 0; position: relative; } .credit-slider { -webkit-appearance: none; width: 100%; height: 12px; border-radius: 10px; background: linear-gradient(90deg, var(--secondary-glow), var(--primary-glow)); outline: none; cursor: pointer; box-shadow: 0 0 15px color-mix(in srgb, var(--secondary-glow) 20%, transparent); } .credit-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 34px; height: 34px; border-radius: 50%; background: #fff; border: 5px solid var(--secondary-glow); cursor: pointer; box-shadow: 0 0 25px var(--secondary-glow); transition: transform 0.2s, box-shadow 0.2s; } .credit-slider::-webkit-slider-thumb:hover { transform: scale(1.15); box-shadow: 0 0 35px var(--secondary-glow); } .slider-labels { display: flex; justify-content: space-between; margin-top: 1.5rem; color: #666; font-family: var(--font-mono); font-size: 0.95rem; letter-spacing: 1px; } .counter-display { text-align: center; margin-bottom: 3rem; } .big-credit-count { font-family: var(--font-display); font-size: 5.5rem; color: #fff; text-shadow: 0 0 30px var(--secondary-glow), 0 0 60px color-mix(in srgb, var(--secondary-glow) 30%, transparent); line-height: 1; margin-bottom: 0.5rem; } .tier-info { margin-top: 3rem; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; } .tier-item { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.2rem; background: rgba(255,255,255,0.02); border: 1px solid var(--border-color); border-radius: 8px; transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); } .tier-item span { font-size: 0.8rem; color: #8a93a2; margin-bottom: 0.5rem; text-transform: uppercase; } .tier-item strong { font-family: var(--font-display); font-size: 1.4rem; color: #fff; } .tier-item.active { border-color: var(--success-glow); background: color-mix(in srgb, var(--success-glow) 8%, transparent); transform: translateY(-5px); box-shadow: 0 10px 20px color-mix(in srgb, var(--success-glow) 10%, transparent); } .tier-item.active strong { color: var(--success-glow); text-shadow: 0 0 10px var(--success-glow); } .dtc-promo-card { background: linear-gradient(145deg, #16181f, #0a0c10); border: 2px solid var(--secondary-glow); border-radius: 12px; padding: 2rem; margin-top: 3rem; position: relative; overflow: hidden; box-shadow: 0 15px 35px rgba(0,0,0,0.4); } .dtc-promo-card::after { content: 'BEST VALUE'; position: absolute; top: 18px; right: -35px; background: var(--secondary-glow); color: #000; padding: 6px 45px; transform: rotate(45deg); font-size: 0.75rem; font-weight: 900; font-family: var(--font-display); }
.header-email-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    font-weight: bold;
    transition: text-shadow 0.3s, color 0.3s, transform 0.2s, box-shadow 0.2s, background-color: 0.2s;
    font-size: 0.9rem;
    color: var(--text-color);
    padding: 0.5rem 1rem;
    border-radius: 5px;
    border: 1px solid var(--secondary-glow);
}
.header-email-link:hover {
    transform: translateY(-2px);
    background-color: var(--secondary-glow-transparent);
    box-shadow: 0 4px 12px var(--secondary-glow-transparent);
    color: var(--text-color);
}
.header-email-link:hover span {
    text-shadow: 0 0 8px var(--secondary-glow);
}
.header-email-link i {
    color: var(--secondary-glow);
    font-size: 1.2rem;
}
.support-email-box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: rgba(0, 0, 0, 0.3);
    border: 1px solid var(--border-color);
    padding: 0.8rem;
    border-radius: 4px;
    margin: 1rem 0;
    width: 100%;
    box-sizing: border-box;
}
#support-email-text {
    font-family: var(--font-mono);
    color: var(--secondary-glow);
    font-weight: bold;
    font-size: 1.1rem;
}
.whatsapp-btn {
    width: 100% !important;
    background-color: #25D366 !important;
    color: #fff !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
    box-sizing: border-box !important;
    margin-left: 0 !important;
}
#upload-terminal {
    position: relative;
    overflow: hidden;
    background: #05070a;
    box-shadow: 
        inset 0 0 40px rgba(0,0,0,0.8),
        0 0 20px color-mix(in srgb, var(--secondary-glow) 10%, transparent);
}
#upload-terminal::before {
    content: " ";
    display: block;
    position: absolute;
    top: 0; left: 0; bottom: 0; right: right;
    background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.15) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.03), rgba(0, 255, 0, 0.01), rgba(0, 0, 255, 0.03));
    z-index: 5;
    background-size: 100% 3px, 3px 100%;
    pointer-events: none;
}
#upload-terminal::after {
    content: " ";
    display: block;
    position: absolute;
    top: 0; left: 0; bottom: 0; right: 0;
    background: radial-gradient(circle, rgba(10, 12, 16, 0) 60%, rgba(0, 0, 0, 0.5) 100%);
    z-index: 6;
    pointer-events: none;
}
@keyframes terminal-flicker {
    0% { opacity: 0.98; }
    5% { opacity: 0.95; }
    10% { opacity: 0.99; }
    15% { opacity: 0.92; }
    20% { opacity: 0.98; }
    100% { opacity: 1; }
}
#terminal-output {
    animation: terminal-flicker 0.15s infinite;
}
.terminal-cursor {
    display: inline-block;
    width: 8px;
    height: 16px;
    background: var(--secondary-glow);
    margin-left: 4px;
    animation: blink 0.8s step-end infinite;
    vertical-align: middle;
}
@keyframes blink {
    from, to { opacity: 1; }
    50% { opacity: 0; }
}
.toolbox-category {
    margin-bottom: 3rem;
}
.toolbox-category-title {
    font-family: var(--font-display);
    color: var(--secondary-glow);
    font-size: 1.2rem;
    margin-bottom: 1.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--border-color);
    text-transform: uppercase;
}
.toolbox-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
}
.tool-card {
    background: rgba(30, 34, 45, 0.6);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 1.5rem;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.tool-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: linear-gradient(135deg, var(--secondary-glow-transparent), transparent);
    opacity: 0;
    transition: opacity 0.3s;
}
.tool-card:hover {
    transform: translateY(-8px);
    border-color: var(--secondary-glow);
    box-shadow: 0 10px 30px var(--secondary-glow-transparent);
}
.tool-card:hover::before {
    opacity: 1;
}
.tool-card .icon {
    font-size: 2.5rem;
    color: var(--primary-glow);
    margin-bottom: 1rem;
    text-shadow: 0 0 10px var(--primary-glow-transparent);
    transition: transform 0.3s;
}
.tool-card:hover .icon {
    transform: scale(1.1);
    color: var(--secondary-glow);
    text-shadow: 0 0 15px var(--secondary-glow);
}
.tool-card strong {
    font-family: var(--font-display);
    font-size: 1.1rem;
    color: #fff;
    margin-bottom: 0.5rem;
    display: block;
}
.tool-card span {
    font-size: 0.85rem;
    color: #8a93a2;
    line-height: 1.4;
}
@media (max-width: 768px) {
    html, body {
        overflow-x: hidden !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    *, *::before, *::after {
        box-sizing: border-box !important;
        max-width: 100% !important;
        overflow-wrap: break-word !important;
    }

    input[type="text"], input[type="password"], input[type="email"], input[type="number"], input[type="tel"], textarea, select, .custom-select {
        font-size: 16px !important;
        padding: 12px !important;
    }
    button, .btn, .mod-option, .cta-button, .select-button, .tab-link {
        min-height: 48px;
        padding: 12px 16px;
    }

    h1 { font-size: 1.8rem; }
    h2 { font-size: 1.5rem; }
    h3, .modal-header h2 { font-size: 1.2rem; white-space: normal; }
    h4, .modal-header h3 { font-size: 1rem; white-space: normal; }
    
    .job-info .file-name, .mod-option strong, .dtc-row .dtc-label {
        white-space: normal;
        line-height: 1.4;
    }

    .table-container, .dtc-list-container, .mod-options-grid, nav, .modal-body, .view, .tab-content, .tabs, .user-info {
        -webkit-overflow-scrolling: touch;
    }
    nav::-webkit-scrollbar, .tabs::-webkit-scrollbar, .user-info::-webkit-scrollbar { display: none; }
    nav, .tabs, .user-info { -ms-overflow-style: none; scrollbar-width: none; }

    header { flex-direction: column; gap: 1rem; padding: 1rem; text-align: center; width: 100%; }
    
    .logo img, .brand img { max-height: 35px !important; }

    .user-info { 
        display: flex;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-items: center;
        gap: 0.8rem;
        width: 100%; 
        overflow-x: auto; 
        padding-bottom: 0.5rem; 
        margin-bottom: 0.5rem;
        position: relative;
    }
    
    .version-info, .changelog-badge, .header-email-link {
        display: none !important;
    }

    .user-info a:not(.header-email-link):not(.changelog-badge), 
    .user-info button, 
    .user-info .btn {
        font-size: 0.8rem !important;
        padding: 6px 12px !important;
        min-height: 36px !important;
        white-space: nowrap !important;
        display: inline-flex !important;
        justify-content: center !important;
        align-items: center !important;
        border-radius: 20px !important; 
        flex-shrink: 0 !important;
        width: auto !important;
        margin: 0 !important;
        background: rgba(0,0,0,0.3) !important;
    }
    
    nav { 
        justify-content: flex-start; 
        overflow-x: auto; 
        white-space: nowrap; 
        padding-bottom: 0; 
        width: 100%; 
        position: relative;
    }
    .nav-button {
        font-size: 0.9rem !important;
        padding: 12px 16px !important;
        flex-shrink: 0;
    }
    .tabs { 
        overflow-x: auto; 
        white-space: nowrap; 
        padding-bottom: 0; 
        flex-wrap: nowrap; 
        position: relative;
    }
    
    nav::after, .tabs::after {
        content: '❯';
        position: sticky;
        right: 0;
        top: 0;
        background: linear-gradient(90deg, transparent, var(--bg-color) 45%, var(--bg-color));
        color: var(--primary-glow);
        padding: 0 10px 0 30px;
        display: flex;
        align-items: center;
        font-size: 1.2rem;
        font-weight: bold;
        pointer-events: none;
        z-index: 10;
    }

    .main-container, .admin-container { 
        margin: 0; 
        width: 100%; 
        border-radius: 0; 
        border-left: none; 
        border-right: none; 
        box-shadow: none;
    }
    .view { padding: 1rem; width: 100%; }
    
    .toolbox-grid, .files-grid-container, .mod-category-grid, .kpi-grid, .stats-main-panel-grid, .form-grid-2, .info-grid, .account-grid { 
        grid-template-columns: 1fr !important; 
        gap: 1rem;
    }
    .stats-container, .editor-container { 
        display: flex; 
        flex-direction: column; 
        gap: 1rem;
    }
    .editor-sidebar { width: 100%; min-width: unset; }
    
    .shop-layout, .pack-grid, .shop-step-container {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        gap: 1.5rem !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .credit-pack-card {
        width: 100% !important;
        padding: 1.5rem 1rem !important;
        margin: 0 !important;
    }
    .pricing-panel { 
        padding: 1.5rem 1rem !important; 
        width: 100% !important; 
        margin: 0 !important;
    }
    .big-credit-count { font-size: 2.8rem !important; }
    .order-summary { margin-top: 1rem !important; width: 100% !important; }
    .credit-slider { width: 100% !important; }

    .project-card, .recent-job-item { 
        flex-direction: column; 
        align-items: stretch; 
        gap: 1rem; 
        padding: 1rem; 
        width: 100%;
    }
    .status-tag { 
        position: relative; 
        top: auto; right: auto; 
        align-self: flex-start; 
        display: inline-block;
        margin-bottom: 0.5rem; 
    }
    .job-info { width: 100%; }
    
    .modal { 
        width: 95%; 
        max-height: 85vh; 
        display: flex; 
        flex-direction: column; 
        top: 50% !important; 
        left: 50% !important;
        transform: translate(-50%, -50%) !important; 
    }
    .modal-body { 
        overflow-y: auto; 
        padding: 1rem; 
        flex: 1; 
    }
    .modal-split-layout { flex-direction: column; }
    .options-column { border-right: none; border-bottom: 1px solid var(--border-color); padding: 1rem; }
    .summary-column { width: 100%; border-left: none; box-shadow: none; height: auto; max-height: 40vh; }
    .modal-footer, .modal-footer-custom { 
        flex-direction: column; 
        gap: 1rem; 
        padding: 1rem; 
        background: var(--bg-color); 
    }
    .modal-footer button, .modal-footer-custom button, .btn { 
        width: 100%; 
        margin: 0 !important; 
    }
    .footer-actions-right { flex-direction: column; width: 100%; gap: 10px; }
    
    .dtc-list-header { display: none; }
    .dtc-row { 
        grid-template-columns: 1fr auto; 
        padding: 1rem; 
        gap: 0.5rem; 
        align-items: start;
    }
    .dtc-row .dtc-code { font-size: 1.1rem; }
    .dtc-row .dtc-label { font-size: 0.9rem; grid-column: 1 / -1; margin-top: 0.5rem;}
    .dtc-switch { grid-column: 2; grid-row: 1; margin-left: auto; }

    .checksum-drop-container { flex-direction: column; }
    
    .hero { padding: 3rem 1rem; }
    .files-toolbar { flex-direction: column; gap: 1rem; align-items: stretch; width: 100%; }
    .filter-buttons { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; }
    .filter-buttons .filter-btn { flex: 1 1 calc(50% - 0.5rem); text-align: center; margin: 0; }
    #my-files-search { width: 100% !important; }
    
    #terminal-output { height: 250px; }
    .terminal-footer { flex-direction: column; gap: 1rem; }
@keyframes progress-bar-stripes {
    from { background-position: 40px 0; }
    to { background-position: 0 0; }
}

.dynamic-glow-card {
    position: relative;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
    transition: border-color 0.4s ease, box-shadow 0.4s ease, transform 0.3s ease;
}

.dynamic-glow-card:hover {
    transform: translateY(-3px);
}

/* Génération des modificateurs de bordures néon selon l'objectif actif */
#progression-cockpit-container select:focus {
    border-color: var(--secondary-glow) !important;
    box-shadow: 0 0 10px color-mix(in srgb, var(--secondary-glow) 30%, transparent);
}

#progression-target-selector option {
    background: #11131c;
    color: #fff;
}