/* Buttons */
.btn { 
    background: linear-gradient(90deg, var(--grad-start), var(--grad-end)); 
    border: 1px solid var(--primary-cyan); 
    color: var(--text-white); 
    padding: 10px 20px; 
    border-radius: 4px; 
    cursor: pointer; 
    font-weight: bold; 
    text-shadow: 0 1px 2px rgba(0,0,0,0.5); /* Improved contrast on gradients */
    transition: all 0.3s; 
    display: inline-flex; 
    align-items: center; 
    justify-content: center;
    gap: 10px; 
}
.btn:hover { box-shadow: 0 0 15px rgba(63, 213, 255, 0.4); }
.btn-small { padding: 5px 10px; font-size: 0.85rem; }
.btn-success { background: var(--status-paid); border-color: #388e3c; background-image: none;}
.btn-success:hover { box-shadow: 0 0 15px rgba(46, 204, 113, 0.4); }
.btn-danger { background: var(--status-unpaid); border-color: #c0392b; background-image: none;}
.btn-danger:hover { box-shadow: 0 0 15px rgba(231, 76, 60, 0.4); }
.btn-outline { background: transparent; border-color: var(--border-color); }
.btn-outline:hover { background: rgba(255,255,255,0.05); box-shadow: none;}

/* Inputs & Forms */
input, select, textarea { 
    background-color: var(--input-bg); 
    border: 1px solid var(--border-color); 
    color: var(--text-white); 
    padding: 10px; 
    border-radius: 4px; 
    font-family: inherit; 
    transition: border-color 0.2s, box-shadow 0.2s;
}
input:focus, select:focus, textarea:focus { 
    outline: none; 
    border-color: var(--primary-cyan); 
    box-shadow: 0 0 8px rgba(63, 213, 255, 0.3);
}

/* Tables */
table.data-table { width: 100%; border-collapse: collapse; margin-top: 15px; background: rgba(255,255,255,0.02); }
table.data-table th, table.data-table td { border: 1px solid var(--border-color); padding: 12px; text-align: left; }
table.data-table th { background: rgba(255,255,255,0.05); color: var(--primary-cyan); font-weight: bold;}
table.data-table tbody tr:hover { background: rgba(255,255,255,0.05); }

/* Badges */
.status-badge { padding: 4px 8px; border-radius: 12px; font-size: 0.8rem; font-weight: bold; }
.status-draft { background: var(--status-draft); color: white; }
.status-quoted { background: var(--status-quoted); color: white; }
.status-unpaid { background: var(--status-unpaid); color: white; }
.status-paid { background: var(--status-paid); color: white; }
.status-printed { background: var(--status-printed); color: white; }
.status-low { color: var(--status-low); font-weight: bold; }

/* Result Panel Specifics */
.results-panel { background: linear-gradient(135deg, rgba(15, 18, 85, 0.5), rgba(113, 10, 178, 0.5)); border: 1px solid var(--primary-cyan); position: sticky; top: 80px; }
.result-row { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,0.1); }
.result-row:last-child { border-bottom: none; }
.result-total { font-size: 1.2em; font-weight: bold; color: var(--primary-cyan); border-top: 2px solid var(--primary-cyan); margin-top: 10px; padding-top: 10px; }
.result-profit { color: var(--status-paid); }

/* Language Switch */
.lang-switch { width: 100%; background: rgba(255, 255, 255, 0.05); border: 1px solid var(--border-color); color: white; padding: 8px; border-radius: 4px; cursor: pointer; }

/* Toasts */
#toast-container { position: fixed; bottom: 20px; right: 20px; z-index: 10000; display: flex; flex-direction: column; gap: 10px; }
.toast {
    background: var(--bg-card); border-left: 4px solid var(--primary-cyan); 
    color: var(--text-white); padding: 15px 20px; border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.4); min-width: 250px;
    animation: slideIn 0.3s ease-out forwards;
}
.toast.error { border-left-color: var(--status-unpaid); }
.toast.success { border-left-color: var(--status-paid); }
@keyframes slideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }

/* Tour Overlay */
#tour-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.8); z-index: 10000; display: none;
}
.tour-highlight {
    position: relative !important;
    z-index: 10001 !important;
    background: var(--bg-card) !important;
    box-shadow: 0 0 0 4px var(--primary-cyan) !important;
    border-radius: 4px;
}
.tour-box {
    position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
    background: var(--bg-card); border: 2px solid var(--primary-cyan);
    padding: 30px; border-radius: 8px; z-index: 10002; color: white;
    width: 400px; max-width: 90%; display: none; box-shadow: 0 10px 30px rgba(0,0,0,0.8);
}
.tour-box h3 { color: var(--primary-cyan); margin-top: 0; }
.tour-box p { margin-bottom: 25px; color: var(--text-light); line-height: 1.5; }
.tour-actions { display: flex; justify-content: space-between; }
