body { background-position: center center; background-size: cover; background-repeat: no-repeat; background-attachment: fixed; font-size: var(--base-font-size); } :root { --main-bg-color: rgb(22, 22, 22); --font-r: 'Geometria Regular'; --font-m: 'Geometria Medium'; --font-b: 'Geometria Bold'; --c-green: #4eff00; --c-red: #e72139; --c-gold: #fcc22c; --c-blue: #19b9fa; --c-gray: #747a81; --bg-dark: #121212; --bg-darker: #1e1e1e; --bg-card: #252525; --accent: #6d28d9; --accent-hover: #7c3aed; --text-primary: #e0e0e0; --text-secondary: #a0a0a0; --border: #333; --success: #10b981; --bg-color: #121212; --card-color: #1E1E1E; --accent-color: #BB86FC; --text-primary: #E1E1E1; --text-secondary: #A0A0A0; --hover-color: #2A2A2A; --success-color: #4CAF50; --warning-color: #FF9800; --border-radius: 12px; --transition: all 0.3s ease; --scale-factor: 1; --base-font-size: 14px; --base-icon-size: 18px; --base-padding: 8px; --base-margin: 10px; --base-border-radius: 8px; --accent-color-rgb: 187, 134, 252; --accent-color: rgb(187, 134, 252); --accent-hover: rgb(157, 104, 222); --bg-dark: #121212; --bg-darker: #0a0a0a; --bg-card: #1e1e1e; --text-primary: #ffffff; --text-secondary: #b0b0b0; --border: #333333; --job-primary-color: #333; --job-secondary-color: #666; --job-accent-color: #f1c40f; } /* --------------- Full Ui ----------------*/ .ui-character-stats { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%; max-width: 1000px; max-height: 90vh; overflow-y: auto; z-index: 9999; background-color: #ff0000; border-radius: 12px; box-shadow: 0 0 30px rgba(0, 0, 0, 0.5); display: none; } .ui-character-stats .main-content { margin-left: 280px; width: calc(100% - 280px); padding: 20px; } .ui-character-stats .sidebar { position: relative; height: auto; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; scrollbar-width: none; } .sidebar { width: 280px; background-color: var(--card-color); height: 100vh; padding: 20px 0; position: fixed; left: 0; top: 0; transition: var(--transition); z-index: 100; box-shadow: 4px 0 15px rgba(0, 0, 0, 0.2); } .sidebar.closed { transform: translateX(-100%); } .logo { text-align: center; padding: 20px 0 40px; font-size: 24px; font-weight: bold; color: var(--accent-color); border-bottom: 1px solid rgba(255, 255, 255, 0.1); margin-bottom: 30px; } .menu-item { display: flex; align-items: center; padding: 15px 25px; margin: 5px 10px; border-radius: var(--border-radius); cursor: pointer; transition: var(--transition); color: var(--text-primary); text-decoration: none; } .menu-item.active { background-color: var(--accent-color); color: #000; font-weight: 500; } .menu-item:hover:not(.active) { background-color: var(--hover-color); } .menu-item i { margin-right: 15px; font-size: 20px; } .main-content { margin-left: 280px; padding: 30px; width: calc(100% - 280px); height: 2000px; transition: var(--transition); } .main-content.expanded { margin-left: 0; } .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; } .page-title { color: white; font-size: 28px; font-weight: 600; } .character-card { background-color: var(--card-color); border-radius: var(--border-radius); padding: 30px; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2); margin-bottom: 30px; } .character-header { display: flex; align-items: center; margin-bottom: 25px; } .avatar { width: 80px; height: 80px; border-radius: 50%; background-color: var(--accent-color); display: flex; align-items: center; justify-content: center; font-size: 32px; font-weight: bold; margin-right: 20px; color: #000; } .character-info h2 { color: white; font-size: 24px; margin-bottom: 5px; } .character-info p { color: var(--text-secondary); font-size: 16px; } .stats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; } .stat-card { background-color: rgba(255, 255, 255, 0.05); border-radius: var(--border-radius); padding: 20px; transition: var(--transition); } .stat-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3); } .stat-title { color: var(--text-secondary); font-size: 14px; margin-bottom: 10px; } .stat-value { color: white; font-size: 24px; font-weight: 600; margin-bottom: 5px; } .stat-value.money { color: var(--success-color); } .stat-value.cash { color: var(--warning-color); } .stat-value.level { color: var(--accent-color); } .progress-bar { height: 6px; background-color: rgba(255, 255, 255, 0.1); border-radius: 3px; margin-top: 10px; overflow: hidden; } .progress { height: 100%; background-color: var(--accent-color); border-radius: 3px; width: 65%; } /* Стили для бизнесов */ .business-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; padding: 15px; } .business-card { background-color: #1e1e1e; border-radius: 10px; padding: 15px; display: flex; align-items: center; gap: 15px; cursor: pointer; transition: transform 0.3s, box-shadow 0.3s; } .business-card:hover { transform: translateY(-5px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); } .business-icon { width: 50px; height: 50px; background-color: #2a2a2a; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 20px; color: #ff9800; } .business-icon.large { width: 80px; height: 80px; font-size: 30px; } .business-info { flex-grow: 1; } .business-info h3 { margin: 0; font-size: 18px; color: white; } .business-info p { margin: 5px 0 0; color: #aaa; font-size: 14px; } .business-status { display: inline-block; padding: 3px 8px; border-radius: 4px; font-size: 12px; margin-top: 5px; } .business-status.open { background-color: rgba(76, 175, 80, 0.2); color: #4CAF50; } .business-status.closed { background-color: rgba(244, 67, 54, 0.2); color: #F44336; } .business-balance { text-align: right; } .business-balance span:first-child { display: block; color: #aaa; font-size: 12px; } .business-detail-header { display: flex; align-items: center; gap: 20px; margin-bottom: 30px; } .business-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 15px; margin: 20px 0; } .business-actions { display: flex; gap: 10px; margin: 25px 0; flex-wrap: wrap; } .action-btn { padding: 10px 15px; border: none; border-radius: 5px; cursor: pointer; font-weight: bold; transition: background-color 0.3s; } .open-btn { background-color: #4CAF50; color: white; } .close-btn { background-color: #F44336; color: white; } .withdraw-btn { background-color: #2196F3; color: white; } .invest-btn { background-color: #FFC107; color: #333; } .business-profit-chart { margin-top: 30px; } .chart-container { display: flex; justify-content: space-between; margin-top: 15px; height: 200px; align-items: flex-end; } .chart-day { display: flex; flex-direction: column; align-items: center; width: 12%; } .chart-bar-container { height: 150px; width: 30px; background-color: #2a2a2a; border-radius: 5px 5px 0 0; display: flex; align-items: flex-end; position: relative; } .chart-bar { width: 100%; background-color: #4CAF50; border-radius: 5px 5px 0 0; transition: height 0.5s; } .chart-day-label { margin-top: 5px; font-size: 12px; color: #aaa; } .chart-day-profit { font-size: 11px; color: #4CAF50; margin-top: 3px; } .header-actions { display: flex; align-items: center; gap: 15px; } .back-btn { background: none; border: 1px solid #444; color: #ddd; padding: 5px 10px; border-radius: 5px; cursor: pointer; display: flex; align-items: center; gap: 5px; } /* Другие секции (скрыты по умолчанию) */ .section { display: none; } .section.active { display: block; animation: fadeIn 0.5s ease; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @media screen and (max-width: 1366px) { :root { --scale-factor: 0.85; --base-font-size: 12px; --base-icon-size: 16px; } } @media screen and (max-width: 1024px) { :root { --scale-factor: 0.75; --base-font-size: 11px; --base-icon-size: 14px; } } @media screen and (min-width: 1920px) { :root { --scale-factor: 1.2; --base-font-size: 16px; --base-icon-size: 20px; } } @media screen and (min-width: 2560px) { :root { --scale-factor: 1.5; --base-font-size: 18px; --base-icon-size: 24px; } } /* Адаптивность */ @media (max-width: 768px) { .sidebar { width: 240px; } .main-content { margin-left: 240px; width: calc(100% - 240px); padding: 20px; } .stats-grid { grid-template-columns: 1fr; } } @media (max-width: 576px) { .character-header { flex-direction: column; text-align: center; } .avatar { margin-right: 0; margin-bottom: 15px; } } @media screen and (max-width: 1366px) { .exit-server-btn { padding: 2px 6px; font-size: 11px; } .exit-server-btn svg { width: 12px; height: 12px; } } @media screen and (min-width: 1920px) { .exit-server-btn { padding: 4px 10px; font-size: 13px; } .exit-server-btn svg { width: 16px; height: 16px; } } /* Стили для раздела достижений */ .achievements-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)); gap: 20px; } .achievement-card { background-color: rgba(255, 255, 255, 0.05); border-radius: var(--border-radius); padding: 15px; display: flex; transition: var(--transition); } .achievement-card:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); } .achievement-icon { width: 50px; height: 50px; background-color: var(--accent-color); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-right: 15px; font-size: 20px; color: #000; } .achievement-card.locked .achievement-icon { background-color: var(--text-secondary); } .achievement-card.gold .achievement-icon { background: linear-gradient(135deg, #ffd700, #c5a000); } .achievement-info { flex: 1; } .achievement-info h3 { color: white; margin-bottom: 5px; } .achievement-info p { color: var(--text-secondary); font-size: 14px; margin-bottom: 10px; } .achievement-reward span { display: inline-block; margin-right: 10px; font-size: 12px; padding: 3px 8px; border-radius: 10px; background-color: rgba(255, 255, 255, 0.1); } .reward-money { color: var(--success-color); } .reward-exp { color: var(--accent-color); } .reward-badge { color: #ffd700; } .achievement-status { text-align: right; min-width: 120px; } .unlocked-text { color: var(--success-color); font-size: 12px; } .progress-text { color: var(--text-secondary); font-size: 12px; display: block; margin-bottom: 5px; } .achievement-filter { display: flex; gap: 10px; } .filter-btn { background: rgba(255, 255, 255, 0.1); border: none; color: white; padding: 5px 15px; border-radius: 20px; cursor: pointer; font-size: 14px; transition: var(--transition); } .filter-btn.active { background-color: var(--accent-color); color: #000; } /* Стили для коэффициента */ .business-ratio { display: flex; align-items: center; gap: 5px; margin-top: 5px; color: #FFC107; font-size: 13px; } /* Стили для управления коэффициентом */ .ratio-control { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 5px 0; } .ratio-btn { width: 30px; height: 30px; border-radius: 50%; border: none; background-color: #333; color: #FFC107; font-size: 14px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background-color 0.3s; } .ratio-btn:hover { background-color: #444; } .ratio-btn.plus { background-color: rgba(76, 175, 80, 0.2); color: #4CAF50; } .ratio-btn.minus { background-color: rgba(244, 67, 54, 0.2); color: #F44336; } .ratio-value { font-size: 18px; font-weight: bold; min-width: 40px; text-align: center; color: #FFC107; } .ratio-hint { font-size: 12px; color: #aaa; text-align: center; margin-top: 5px; } /* Модальное окно коэффициента */ .ratio-info { margin-top: 15px; padding: 10px; background-color: #2a2a2a; border-radius: 5px; font-size: 14px; } .ratio-info p { margin: 5px 0; color: #ddd; } .ratio-info strong { color: #FFC107; } /* Стили для раздела кейсов */ .cases-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; } .case-card { background-color: rgba(255, 255, 255, 0.05); border-radius: var(--border-radius); overflow: hidden; transition: var(--transition); } .case-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3); } .case-image { height: 120px; display: flex; align-items: center; justify-content: center; font-size: 40px; color: white; } .case-info { padding: 15px; } .case-info h3 { color: white; margin-bottom: 5px; } .case-info p { color: var(--text-secondary); font-size: 14px; margin-bottom: 15px; } .case-actions { display: flex; justify-content: space-between; } .case-btn { border: none; padding: 8px 12px; border-radius: var(--border-radius); cursor: pointer; transition: var(--transition); } .open-btn { background-color: var(--accent-color); color: #000; margin-right: 10px; } .open-btn:hover { background-color: #f1c40f; } .info-btn { background-color: rgba(255, 255, 255, 0.1); color: white; width: 40px; } .info-btn:hover { background-color: rgba(255, 255, 255, 0.2); } .case-card.rare .case-image { background: linear-gradient(135deg, #9c27b0, #673ab7); } .case-card.premium .case-image { background: linear-gradient(135deg, #ff9800, #ff5722); } .cases-balance { background-color: rgba(255, 255, 255, 0.1); padding: 8px 15px; border-radius: 20px; font-size: 14px; } /* Стили для раздела настроек */ .settings-tabs { display: flex; border-bottom: 1px solid rgba(255, 255, 255, 0.1); margin-bottom: 20px; } .tab-btn { background: none; border: none; color: var(--text-secondary); padding: 10px 20px; cursor: pointer; position: relative; transition: var(--transition); } .tab-btn.active { color: white; } .tab-btn.active::after { content: ''; position: absolute; bottom: -1px; left: 0; width: 100%; height: 2px; background-color: var(--accent-color); } .settings-tab-content { display: none; } .settings-tab-content.active { display: block; } .setting-item { margin-bottom: 20px; } .setting-item label { display: block; color: white; margin-bottom: 8px; font-size: 14px; } .setting-select { width: 100%; padding: 10px; background-color: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: var(--border-radius); color: white; } .theme-options { display: flex; gap: 10px; } .theme-btn { padding: 10px 15px; border-radius: var(--border-radius); border: none; cursor: pointer; transition: var(--transition); } .theme-btn.dark { background-color: #121212; color: white; } .theme-btn.light { background-color: #f5f5f5; color: #333; } .theme-btn.custom { background: linear-gradient(135deg, #ff8a00, #e52e71); color: white; } .theme-btn.active { box-shadow: 0 0 0 2px var(--accent-color); } .transparency-slider, .scale-slider, .volume-slider { width: 100%; margin-top: 5px; } .slider-value { display: inline-block; margin-left: 10px; font-size: 14px; color: var(--text-secondary); } .save-btn { background-color: var(--success-color); color: white; border: none; padding: 10px 20px; border-radius: var(--border-radius); cursor: pointer; margin-right: 10px; } .reset-btn { background-color: rgba(255, 255, 255, 0.1); color: white; border: none; padding: 10px 20px; border-radius: var(--border-radius); cursor: pointer; } /* --------------- Ui ----------------*/ .block-ui{ margin-left: auto; margin-right: auto; margin-top: 12px; width: 1000px; height: 500px; } /* --------------- Ui Job Bus ----------------*/ .ui-jobs-bus { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); display: flex; justify-content: center; align-items: center; z-index: 1000; font-family: 'Arial', sans-serif; } .bus-container { background-color: #1e1e1e; border-radius: 10px; width: 80%; max-width: 800px; padding: 20px; box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); color: #e0e0e0; } .bus-title { text-align: center; margin-bottom: 20px; color: #ffffff; border-bottom: 1px solid #333; padding-bottom: 10px; } .bus-routes { max-height: 60vh; overflow-y: auto; margin-bottom: 20px; } .route-card { background-color: #2a2a2a; border-radius: 8px; padding: 15px; margin-bottom: 15px; border-left: 4px solid #4CAF50; transition: all 0.3s ease; cursor: pointer; } .route-card:hover { background-color: #333; transform: translateY(-2px); } .route-header { display: flex; justify-content: space-between; margin-bottom: 10px; font-size: 18px; font-weight: bold; color: #4CAF50; } .route-details { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; font-size: 14px; } .detail-item { display: flex; align-items: center; } .detail-item i { margin-right: 8px; color: #4CAF50; } .bus-footer { display: flex; justify-content: flex-end; } .bus-button { background-color: #4CAF50; color: white; border: none; padding: 10px 20px; border-radius: 5px; cursor: pointer; font-size: 16px; transition: background-color 0.3s; } .bus-button:hover { background-color: #45a049; } .close-btn { background-color: #f44336; } .close-btn:hover { background-color: #d32f2f; } /* Стили для скроллбара */ .bus-routes::-webkit-scrollbar { width: 8px; } .bus-routes::-webkit-scrollbar-track { background: #1e1e1e; } .bus-routes::-webkit-scrollbar-thumb { background-color: #4CAF50; border-radius: 10px; } /* --------------- Ui Car Diler ----------------*/ .ui-car_diler { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--bg-dark); display: flex; flex-direction: column; z-index: 1000; } .header-diler { border-radius: 0; background: linear-gradient(135deg, var(--bg-darker) 0%, var(--bg-dark) 100%); padding: 15px 30px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border); box-shadow: 0 2px 10px rgba(0,0,0,0.3); flex-shrink: 0; } .logo_diler { font-size: 24px; font-weight: 700; background: linear-gradient(90deg, var(--accent) 0%, #8b5cf6 100%); -webkit-background-clip: text; background-clip: text; color: transparent; display: flex; align-items: center; gap: 8px; } .logo-icon { font-size: 28px; } .header-close-btn { background: none; border: none; color: rgba(255, 255, 255, 0.6); cursor: pointer; padding: 5px; border-radius: 4px; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; } .header-close-btn:hover { background: rgba(255, 255, 255, 0.1); color: #fff; } .header-close-btn svg { pointer-events: none; } .diler-container { display: flex; flex: 1; overflow: hidden; } .sidebar_diler { width: 350px; background: linear-gradient(180deg, var(--bg-darker) 0%, #191919 100%); padding: 20px; overflow-y: auto; border-right: 1px solid var(--border); display: flex; flex-direction: column; } .main-content_diler { flex: 1; overflow-y: auto; position: relative; background-color: var(--bg-dark); display: flex; } /* Остальные стили остаются такими же, как в вашем исходном коде */ .search-filter { position: relative; margin-bottom: 20px; } .search-input { width: 100%; padding: 12px 15px 12px 40px; border-radius: 8px; border: 1px solid var(--border); background-color: var(--bg-card); color: var(--text-primary); font-size: 14px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23a0a0a0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: 15px center; } .sort-filter { display: flex; gap: 10px; margin-bottom: 25px; } .filter-group { flex: 1; } .filter-label { display: block; margin-bottom: 8px; font-size: 13px; color: var(--text-secondary); font-weight: 500; } .select-box { position: relative; } .select-box select { width: 100%; padding: 10px 15px; border-radius: 8px; border: 1px solid var(--border); background-color: var(--bg-card); color: var(--text-primary); appearance: none; cursor: pointer; font-size: 13px; } .car-list { display: grid; grid-template-columns: 1fr; gap: 15px; overflow-y: auto; padding-right: 5px; } .car-list::-webkit-scrollbar { width: 4px; } .car-list::-webkit-scrollbar-thumb { background-color: var(--accent); border-radius: 2px; } .car-card { background-color: var(--bg-card); height: 120px; border-radius: 12px; padding: 18px; cursor: pointer; transition: all 0.2s ease; border: 1px solid transparent; display: flex; gap: 15px; position: relative; overflow: hidden; } .car-card::before { content: ''; position: absolute; top: 0; left: 0; width: 3px; height: 0; background: linear-gradient(to bottom, var(--accent), #8b5cf6); transition: height 0.3s ease; } .car-card:hover { border-color: var(--accent); transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0,0,0,0.2); } .car-card:hover::before { height: 100%; } .car-card.active { border-color: var(--accent); background-color: #2a2a2a; } .car-card.active::before { height: 100%; } .car-image { width: 100px; height: 70px; object-fit: cover; border-radius: 6px; flex-shrink: 0; } .car-info { flex-grow: 1; } .car-card h3 { color: #ffffff; font-size: 15px; margin-bottom: 6px; font-weight: 600; } .car-meta { display: flex; gap: 12px; font-size: 12px; color: var(--text-secondary); margin-bottom: 8px; } .price { color: var(--accent); font-weight: 700; font-size: 16px; margin-top: 5px; } .car-detail { display: none; flex: 1; padding: 0; overflow-y: auto; flex-direction: column; } .car-detail.active { display: flex; } .detail-header { padding: 25px 30px 15px; background: linear-gradient(180deg, var(--bg-darker) 0%, transparent 100%); position: relative; z-index: 2; } .back-btn { background: none; border: none; color: var(--accent); font-size: 14px; display: flex; align-items: center; gap: 5px; cursor: pointer; font-weight: 500; padding: 5px 0; } .detail-content { flex-grow: 1; padding: 0 30px 30px; display: flex; flex-direction: column; } .car-title { font-size: 28px; margin: 15px 0 5px; font-weight: 700; } .car-year { color: var(--text-secondary); font-size: 14px; margin-bottom: 20px; } .car-gallery { position: relative; height: 300px; margin: 0 -30px 25px; overflow: hidden; } .main-image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .car-gallery:hover .main-image { transform: scale(1.03); } .color-selection { margin-bottom: 25px; } .section-title { font-size: 16px; font-weight: 600; margin-bottom: 15px; display: flex; align-items: center; gap: 8px; } .section-title::before { content: ''; width: 4px; height: 16px; background: linear-gradient(to bottom, var(--accent), #8b5cf6); border-radius: 2px; } .color-options { display: flex; gap: 12px; } .color-option { width: 36px; height: 36px; border-radius: 50%; cursor: pointer; border: 2px solid transparent; transition: transform 0.2s; position: relative; } .color-option::after { content: ''; position: absolute; top: -4px; left: -4px; right: -4px; bottom: -4px; border-radius: 50%; border: 1px solid var(--border); opacity: 0; transition: opacity 0.2s; } .color-option:hover { transform: scale(1.1); } .color-option:hover::after { opacity: 1; } .color-option.selected { border-color: white; transform: scale(1.1); } .color-option.selected::after { opacity: 1; border-color: var(--accent); } .specs-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin-bottom: 25px; } .spec-item { background-color: var(--bg-card); padding: 15px; border-radius: 8px; border-left: 3px solid var(--accent); } .spec-label { font-size: 12px; color: var(--text-secondary); margin-bottom: 5px; font-weight: 500; } .spec-value { font-size: 15px; font-weight: 600; } .car-description { line-height: 1.6; color: var(--text-secondary); margin-bottom: 30px; font-size: 14px; } .action-bar { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 20px; border-top: 1px solid var(--border); } .price-container { display: flex; flex-direction: column; } .price-label { font-size: 12px; color: var(--text-secondary); margin-bottom: 3px; } .final-price { font-size: 24px; font-weight: 700; } .buy-btn { background: linear-gradient(135deg, var(--accent) 0%, #8b5cf6 100%); color: white; border: none; padding: 14px 35px; border-radius: 8px; cursor: pointer; font-size: 16px; font-weight: 600; transition: all 0.2s; display: flex; align-items: center; gap: 8px; } .buy-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(109, 40, 217, 0.3); } .welcome-screen { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 40px; background: linear-gradient(135deg, rgba(30,30,30,0.7) 0%, rgba(18,18,18,0.9) 100%); } .welcome-icon { font-size: 60px; margin-bottom: 25px; background: linear-gradient(135deg, var(--accent) 0%, #8b5cf6 100%); -webkit-background-clip: text; background-clip: text; color: transparent; } .welcome-title { font-size: 28px; margin-bottom: 15px; font-weight: 700; background: linear-gradient(135deg, var(--text-primary) 0%, #d1d5db 100%); -webkit-background-clip: text; background-clip: text; color: transparent; } .welcome-text { color: var(--text-secondary); max-width: 400px; line-height: 1.6; font-size: 15px; margin-bottom: 30px; } .explore-btn { background: linear-gradient(135deg, var(--accent) 0%, #8b5cf6 100%); color: white; border: none; padding: 12px 25px; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600; transition: all 0.2s; } .explore-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(109, 40, 217, 0.3); } .notification-container { position: fixed; bottom: 56px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; gap: 16px; z-index: 99999; pointer-events: none; width: auto; max-width: 480px; align-items: center; } .notification { position: relative; width: 100%; min-width: 280px; max-width: 480px; padding: 16px 24px 16px 22px; border-radius: 14px; color: #fff; background: rgba(18, 18, 24, 0.85); backdrop-filter: blur(12px) saturate(150%); box-shadow: 0 8px 24px 0 rgba(0, 0, 0, 0.4), 0 2px 8px 0 rgba(0, 0, 0, 0.3); overflow: hidden; display: flex; align-items: center; pointer-events: auto; border: 1px solid rgba(255, 255, 255, 0.08); transition: all 0.3s ease; transform: translateY(0); } .notification:hover { background: rgba(22, 22, 28, 0.9); transform: translateY(-2px); box-shadow: 0 10px 30px 0 rgba(0, 0, 0, 0.5), 0 3px 10px 0 rgba(0, 0, 0, 0.35); } .notification::before { content: ''; display: block; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; border-radius: 2px; background: linear-gradient(180deg, var(--accent-color), #8b5cf6 80%); opacity: 0.95; } .notification.success::before { background: linear-gradient(180deg, #4CAF50, #43e97b 80%); } .notification.warning::before { background: linear-gradient(180deg, #FFC107, #ff9800 80%); } .notification.error::before { background: linear-gradient(180deg, #F44336, #ff6f6f 80%); } .notification-icon { margin-right: 16px; font-size: 22px; opacity: 0.9; flex-shrink: 0; display: flex; align-items: center; justify-content: center; filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.25)); background: rgba(255, 255, 255, 0.08); width: 36px; height: 36px; border-radius: 50%; } .notification-content { flex: 1; display: flex; flex-direction: column; min-width: 0; } .notification-title { font-weight: 600; font-size: 14px; letter-spacing: 0.3px; margin-bottom: 3px; color: #fff; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .notification-message { color: rgba(255,255,255,0.88); font-size: 13px; line-height: 1.4; text-shadow: 0 1px 2px rgba(0,0,0,0.10); white-space: pre-line; overflow: hidden; text-overflow: ellipsis; } .notification-close { background: none; border: none; color: rgba(255,255,255,0.55); cursor: pointer; font-size: 18px; opacity: 0.7; margin-left: 14px; padding: 4px; border-radius: 50%; display: flex; align-items: center; transition: background 0.18s, color 0.18s, opacity 0.18s; } .notification-close:hover { background: rgba(255,255,255,0.10); color: #fff; opacity: 1; } .notification-progress { position: absolute; left: 18px; right: 18px; bottom: 8px; height: 3px; background: rgba(255,255,255,0.08); border-radius: 2px; overflow: hidden; } .notification-progress-bar { height: 100%; background: linear-gradient(90deg, var(--accent-color), #8b5cf6 80%); border-radius: 2px; animation: progressBar linear forwards; } .notification.success .notification-progress-bar { background: linear-gradient(90deg, #4CAF50, #43e97b 80%); } .notification.warning .notification-progress-bar { background: linear-gradient(90deg, #FFC107, #ff9800 80%); } .notification.error .notification-progress-bar { background: linear-gradient(90deg, #F44336, #ff6f6f 80%); } @keyframes slideUp { from { transform: translateY(50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes slideOut { to { transform: translateY(-20px); opacity: 0; } } @keyframes progressBar { from { width: 100%; } to { width: 0%; } } .badge { display: inline-block; padding: 3px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; color: white; margin-left: 8px; vertical-align: middle; } .badge-sport { background-color: #dc2626; } .badge-suv { background-color: #16a34a; } .badge-sedan { background-color: #2563eb; } .badge-luxury { background-color: #9333ea; } .badge-electric { background-color: #ea580c; } .ui-phone { position: absolute; bottom: 90px; right: 40px; width: 260px; height: 540px; background: linear-gradient(160deg, #1a2a3a 0%, #0a0a0a 100%); border: 8px solid #19191d; border-radius: 38px; box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37), 0 1.5px 8px 0 rgba(0,0,0,0.25); overflow: hidden; display: block !important; opacity: 0; z-index: 100; transition: box-shadow 0.3s; pointer-events: none; } .ui-phone.show { animation: iphoneSlideIn 0.5s cubic-bezier(.4,2,.6,1) forwards; pointer-events: auto; } .ui-phone.hide { animation: iphoneSlideOut 0.4s cubic-bezier(.4,2,.6,1) forwards; } @keyframes iphoneSlideIn { 0% { transform: translateY(100%) scale(0.8); opacity: 0; } 80% { transform: translateY(-10px) scale(1.03); opacity: 1; } 100% { transform: translateY(0) scale(1); opacity: 1; } } @keyframes iphoneSlideOut { 0% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(100%) scale(0.8); opacity: 0; } } .phone-home-indicator { width: 60px; height: 6px; background: #bbb; border-radius: 3px; margin: 0 auto 10px auto; position: absolute; left: 0; right: 0; bottom: 12px; opacity: 0.7; } .phone-status-bar { display: flex; justify-content: space-between; align-items: center; height: 32px; padding: 0 16px; border-top-left-radius: 18px; border-top-right-radius: 18px; font-family: 'Segoe UI', Arial, sans-serif; font-size: 15px; color: #fff; position: relative; top: 0; left: 0; width: 100%; height: 32px; z-index: 100; } .status-bar-messages, .status-bar-contacts, .status-bar-camera, .status-bar-gps, .status-bar-help { background: rgba(30, 32, 40, 0.55) !important; backdrop-filter: blur(15px) saturate(150%) !important; transition: all 0.3s ease-out; } .status-bar-settings { background: #121212 !important; transition: all 0.3s ease-out; } .status-bar-towtruck { background-color: rgba(20, 20, 25, 0.9) !important; transition: all 0.3s ease-out; } .status-bar-bank { background: #121212 !important; transition: all 0.3s ease-out; } .status-bar-jobs { background: var(--bg-darker) !important; transition: all 0.3s ease-out; } .dynamic-island { position: absolute; top: 5px; left: 50%; transform: translateX(-50%); width: 89px; height: 21px; background-color: #000; border-radius: 20px; display: flex; align-items: center; justify-content: center; z-index: 102; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); overflow: hidden; pointer-events: auto; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); } .dynamic-island.expanded { width: 220px; height: 50px; top: 8px; border-radius: 25px; background-color: #000; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4); } .dynamic-island.notification { background: #000; } .dynamic-island.app-messages, .dynamic-island.app-bank, .dynamic-island.app-maps, .dynamic-island.app-calendar, .dynamic-island.app-email, .dynamic-island.app-social { background: #000; } .island-content { display: flex; align-items: center; justify-content: flex-start; width: 100%; height: 100%; color: white; font-size: 13px; opacity: 0; transition: opacity 0.3s ease; padding: 0 15px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; } .dynamic-island.expanded .island-content { opacity: 1; } @keyframes islandPulse { 0% { transform: translateX(-50%) scale(1); opacity: 1; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(1); opacity: 1; } } .dynamic-island.active { animation: islandPulse 1.5s infinite; } .island-notification { position: absolute; z-index: 104; background-color: #000; color: white; border-radius: 20px; display: none; align-items: center; padding: 8px 12px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4); opacity: 0; transition: none; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; width: 240px; height: 42px; transform-origin: center top; left: 50%; top: 5px; transform: translateX(-50%) scale(0.5); } /* Show/hide states */ .island-notification.show { display: flex; animation: notificationFromIsland 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards; } .island-notification.hide { display: flex; animation: notificationToIsland 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards; } @keyframes notificationFromIsland { 0% { opacity: 0; transform: translateX(-50%) scale(0.5); top:1px; } 100% { opacity: 1; transform: translateX(-50%) scale(1); top: 5px; } } @keyframes notificationToIsland { 0% { opacity: 1; transform: translateX(-50%) scale(1); top: 5px; } 100% { opacity: 0; transform: translateX(-50%) scale(0.5); top: 1px; } } .island-notification.show { display: flex; animation: notificationFromIsland 0.3s forwards; } .island-notification.hide { animation: notificationToIsland 0.3s forwards; } .island-notification .notification-content { display: flex; width: 100%; height: 100%; position: relative; align-items: center; padding-right: 25px; box-sizing: border-box; } .island-notification .notification-close-btn { position: absolute; top: 5px; right: 8px; width: 16px; height: 16px; border-radius: 50%; background-color: rgba(255, 255, 255, 0.2); color: rgba(255, 255, 255, 0.7); display: flex; align-items: center; justify-content: center; font-size: 12px; line-height: 1; font-weight: bold; cursor: pointer; transition: background-color 0.2s, color 0.2s; z-index: 105; } .island-notification .notification-close-btn:hover { background-color: rgba(255, 255, 255, 0.4); color: rgba(255, 255, 255, 1); } .island-notification .notification-icon { width: 22px; height: 22px; border-radius: 50%; background-color: rgba(255, 255, 255, 0.15); display: flex; align-items: center; justify-content: center; font-size: 12px; margin-right: 8px; flex-shrink: 0; } .island-notification .notification-text { flex: 1; display: flex; flex-direction: column; justify-content: center; overflow: hidden; max-width: calc(100% - 30px); } .island-notification .notification-title { font-weight: 600; font-size: 12px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; } .island-notification .notification-message { font-size: 10px; line-height: 1.2; opacity: 0.9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; } .phone-status-bar .status-icons { display: flex; align-items: center; margin-left: auto; transform: scale(0.8); transform-origin: right center; left: 4; position: relative; z-index: 101; } .phone-status-bar .status-lte { font-weight: 600; letter-spacing: 1px; margin: 0 2px; font-size: 13px; } .phone-status-bar .status-signal, .phone-status-bar .status-battery { vertical-align: middle; margin: 0 1px; } .phone-status-bar .status-time, .phone-status-bar .status-icons { position: relative; z-index: 101; } .phone-status-bar .status-time { position: relative; z-index: 101; transform: scale(0.9); transform-origin: left center; left: 10; } .phone-content { overflow-y: auto; background: linear-gradient(160deg, #1a2a3a 0%, #0a0a0a 100%); background-image: radial-gradient(circle at 25% 25%, rgba(255, 255, 255, 0.05) 0%, transparent 40%), radial-gradient(circle at 75% 75%, rgba(100, 100, 255, 0.05) 0%, transparent 40%); background-attachment: fixed; background-size: cover; height: calc(100% - 13px); position: absolute; padding-bottom: 80px; padding-top: 0; scrollbar-width: none; } .phone-footer { position: absolute; left: 0; bottom: 0; width: 100%; height: 30px; display: flex; justify-content: center; align-items: center; z-index: 100; pointer-events: none; } .phone-content::-webkit-scrollbar { display: none; } .phone-app-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px 12px; padding: 8px 16px 0 16px; max-width: 100%; box-sizing: border-box; margin-top: 4px; } .phone-app { display: flex; flex-direction: column; align-items: center; cursor: pointer; transition: transform 0.18s cubic-bezier(.4,2,.6,1); user-select: none; min-width: 0; } .phone-app:hover { transform: scale(1.08); } .phone-app:active { transform: scale(0.95); } .phone-app-icon { width: 48px; height: 48px; border-radius: 12px; background: linear-gradient(135deg, #3a4a5a 0%, #2a3a4a 100%); color: #ffffff; box-shadow: 0 4px 10px rgba(0,0,0,0.2); font-size: 22px; display: flex; align-items: center; justify-content: center; margin-bottom: 6px; position: relative; overflow: hidden; } .phone-app-name { color: rgba(255, 255, 255, 0.9); font-size: 11px; font-weight: 500; text-align: center; letter-spacing: 0.2px; margin-bottom: 2px; word-break: break-word; width: 100%; text-shadow: 0 1px 3px rgba(0,0,0,0.3); } .phone-app-screen > div { display: none; opacity: 0; position: absolute; left: 0; width: 100%; height: auto; overflow: hidden; z-index: 10; box-sizing: border-box; } .phone-app-screen .phone-home-button { display: block !important; bottom: 15px; } .phone-app-screen > .app-visible { display: block; opacity: 1; } .app-enter { animation: appEnter 0.4s ease-out forwards; } .app-exit { animation: appExit 0.3s ease-in forwards; } @keyframes appEnter { from { opacity: 0; transform: scale(0.95) translateY(10px); } to { opacity: 1; transform: scale(1) translateY(0); } } @keyframes appExit { from { opacity: 1; transform: scale(1) translateY(0); } to { opacity: 0; transform: scale(0.95) translateY(10px); } } .phone-app-screen.open { opacity: 1; pointer-events: auto; transform: scale(1) translateY(0); animation: appOpenAnim 0.35s cubic-bezier(.4,2,.6,1); } @keyframes appOpenAnim { 0% { opacity: 0; transform: scale(0.95) translateY(30px);} 100% { opacity: 1; transform: scale(1) translateY(0);} } .phone-app-bank, .phone-app-messages, .phone-app-contacts, .phone-app-camera, .phone-app-gps, .phone-app-settings, .phone-app-help { background: rgba(30, 32, 40, 0.55); backdrop-filter: blur(15px) saturate(150%); width: 100%; height: 100%; box-sizing: border-box; overflow-y: auto; scrollbar-width: none; color: #e0e0e0; } .phone-app-bank::-webkit-scrollbar, .phone-app-messages::-webkit-scrollbar, .phone-app-contacts::-webkit-scrollbar, .phone-app-camera::-webkit-scrollbar, .phone-app-gps::-webkit-scrollbar, .phone-app-settings::-webkit-scrollbar, .phone-app-help::-webkit-scrollbar { display: none; } .phone-app-bank { background: #121212 !important; color: #e0e0e0; } .phone-content.show { display: block; animation: contentFadeIn 0.3s ease-out forwards; } .phone-content.hide { animation: contentFadeOut 0.3s ease-in forwards; } @keyframes contentFadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes contentFadeOut { from { opacity: 1; } to { opacity: 0; } } .phone-content::-webkit-scrollbar { display: none; } .phone-dock { position: absolute; left: 50%; bottom: 30px; transform: translateX(-50%); width: 220px; height: 68px; background: rgba(30, 40, 50, 0.7); border: 1px solid rgba(255,255,255,0.1); box-shadow: 0 6px 24px 0 rgba(0,0,0,0.25); border-radius: 28px; display: flex; align-items: center; justify-content: space-evenly; backdrop-filter: blur(12px); z-index: 21; padding: 0 12px; } .phone-dock-app { width: 48px; height: 48px; border-radius: 14px; background: linear-gradient(135deg, #23242a 0%, #383d51 100%); color: #e0e0e0; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,0.10); font-size: 24px; margin: 0 4px; transition: transform 0.15s, box-shadow 0.15s; cursor: pointer; } .phone-dock-app.contacts, .phone-dock-app.messages, .phone-dock-app.help, .phone-dock-app.settings { background: linear-gradient(135deg, #23242a 0%, #383d51 100%); color: #e0e0e0; } .phone-dock-app:active { transform: scale(0.92); box-shadow: 0 1px 4px rgba(0,0,0,0.18); } .phone-home-button { width: 100px; height: 5px; background-color: rgba(54, 25, 82, 0.836); border-radius: 2.5px; cursor: pointer; pointer-events: auto; margin: 0 auto; position: absolute; left: 50%; bottom: 8px; transform: translateX(-50%); opacity: 0.55; cursor: pointer; z-index: 22; display: block !important; } .phone-home-button:hover { background: #6d28d9; opacity: 1; } .phone-bank-modern { background-color: #121212; color: #ffffff; height: 100%; width: 100%; display: flex; flex-direction: column; overflow: hidden; position: absolute; top: 20px; left: 0px; right: 0px; bottom: 0px; font-family: 'Roboto', sans-serif; } .phone-bank-header { padding: 6px 16px 0px 16px; } .bank-greeting { font-size: 20px; font-weight: 600; color: #ffffff; margin-bottom: 12px; margin-top: 5px; text-align: center; letter-spacing: 0.5px; } .bank-greeting span { color: #9b6dc6; } .phone-bank-main { flex: 1; overflow-y: auto; padding: 5px 16px 16px 16px; display: flex; flex-direction: column; gap: 20px; } .phone-bank-modern .balance-card { background: linear-gradient(125deg, #4a3a8c 0%, #7a59b4 50%, #9b6dc6 100%); border-radius: 16px; padding: 20px 16px; color: white; position: relative; overflow: hidden; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3); transition: transform 0.3s ease, box-shadow 0.3s ease; } .phone-bank-modern .balance-card:active { transform: scale(0.98); } .phone-bank-modern .balance-card::before { content: ''; position: absolute; top: -100%; left: -100%; width: 300%; height: 300%; background: radial-gradient(circle, rgba(255, 255, 255, 0.15) 0%, transparent 70%); opacity: 0.6; animation: cardShimmer 8s infinite linear; } .phone-bank-modern .card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; } .phone-bank-modern .card-label { font-size: 13px; opacity: 0.9; font-weight: 500; letter-spacing: 0.5px; } .phone-bank-modern .card-chip svg { width: 20px; height: 20px; color: rgba(255, 255, 255, 0.8); } .phone-bank-modern .card-balance { font-size: 28px; font-weight: 700; margin-bottom: 14px; letter-spacing: 1px; text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); } .phone-bank-modern .card-details { display: flex; justify-content: space-between; align-items: center; } .phone-bank-modern .card-number { font-size: 14px; letter-spacing: 2px; opacity: 0.9; } .phone-bank-modern .card-expiry { font-size: 12px; opacity: 0.8; font-weight: 500; } .phone-bank-modern .quick-actions { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 8px; } .phone-bank-modern .action-btn { background-color: rgba(255, 255, 255, 0.07); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 14px; padding: 12px 8px; display: flex; flex-direction: column; align-items: center; color: #ffffff; transition: all 0.2s; cursor: pointer; } .phone-bank-modern .action-btn:hover, .phone-bank-modern .action-btn:active { background-color: rgba(255, 255, 255, 0.1); transform: translateY(-2px); } .phone-bank-modern .action-icon { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 8px; font-size: 18px; transition: all 0.3s ease; } .phone-bank-modern .action-btn:hover .action-icon { transform: scale(1.1); } .phone-bank-modern .action-icon.transfer, .phone-bank-modern .action-icon.history, .phone-bank-modern .action-icon.fines, .phone-bank-modern .action-icon.info { background-color: rgba(122, 89, 180, 0.15); color: #9b6dc6; } .phone-bank-modern .action-btn span { font-size: 12px; font-weight: 500; } .phone-bank-modern .recent-transactions { background-color: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 14px; padding: 16px; } .phone-bank-modern .recent-transactions h3 { margin-top: 0; margin-bottom: 14px; font-size: 16px; font-weight: 600; color: #ffffff; display: flex; align-items: center; gap: 8px; } .phone-bank-modern .recent-transactions h3::before { content: ''; display: block; width: 4px; height: 16px; background: linear-gradient(180deg, #7a59b4, #9b6dc6); border-radius: 2px; } .phone-bank-modern .transaction-list { display: flex; flex-direction: column; gap: 10px; max-height: 250px; overflow-y: auto; } .phone-bank-modern .transaction-item { display: flex; justify-content: space-between; align-items: center; padding: 10px; background-color: rgba(255, 255, 255, 0.03); border-radius: 10px; transition: all 0.2s; border-left: 3px solid transparent; } .phone-bank-modern .transaction-item:hover { background-color: rgba(255, 255, 255, 0.07); transform: translateX(3px); } .phone-bank-modern .transaction-item.income { border-left-color: #4CAF50; } .phone-bank-modern .transaction-item.expense { border-left-color: #F44336; } .phone-bank-modern .transaction-info { display: flex; flex-direction: column; gap: 3px; } .phone-bank-modern .transaction-title { font-size: 13px; font-weight: 600; } .phone-bank-modern .transaction-date { font-size: 11px; color: rgba(255, 255, 255, 0.5); } .phone-bank-modern .transaction-amount { font-size: 14px; font-weight: 700; } .phone-bank-modern .transaction-amount.positive { color: #4CAF50; } .phone-bank-modern .transaction-amount.negative { color: #F44336; } .phone-bank-modern .transaction-item.placeholder { color: rgba(255, 255, 255, 0.5); text-align: center; justify-content: center; padding: 20px; border-left: none; } .phone-bank-page { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #121212; z-index: 10; display: none; flex-direction: column; overflow: hidden; scrollbar-width: none; } .phone-bank-page.active { display: flex; animation: fadeIn 0.3s ease; } .phone-bank-page .page-header { display: flex; align-items: center; padding: 10px 5px 10px 5px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .phone-bank-page .back-btn { background: none; border: none; color: #ffffff; padding: 8px; cursor: pointer; display: flex; align-items: center; justify-content: center; border-radius: 50%; width: 32px; height: 32px; transition: background-color 0.2s; } .phone-bank-page .back-btn:hover { background-color: rgba(255, 255, 255, 0.1); } .phone-bank-page .page-title { margin: 0; font-size: 16px; font-weight: 600; flex: 1; text-align: center; } .phone-bank-page .page-content { flex: 1; overflow-y: auto; padding: 16px; scrollbar-width: none; } #phone-transfer-form { display: flex; flex-direction: column; gap: 16px; } .phone-bank-page .form-group { margin-bottom: 16px; position: relative; } .phone-bank-page .form-group label { display: block; margin-bottom: 8px; color: rgba(255, 255, 255, 0.8); font-size: 13px; font-weight: 500; } .phone-bank-page .form-group input { width: 100%; padding: 12px; background-color: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; color: #ffffff; font-size: 14px; transition: all 0.3s; } .phone-bank-page .form-group input:focus { outline: none; border-color: #7a59b4; background-color: rgba(255, 255, 255, 0.05); box-shadow: 0 0 0 3px rgba(122, 89, 180, 0.2); } .phone-bank-page .form-group textarea { width: 100%; padding: 12px; background-color: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; color: #ffffff; font-size: 14px; transition: all 0.3s; min-height: 80px; resize: vertical; } .phone-bank-page .form-group textarea:focus { outline: none; border-color: #7a59b4; background-color: rgba(255, 255, 255, 0.05); box-shadow: 0 0 0 3px rgba(122, 89, 180, 0.2); } .phone-bank-page .submit-btn { background: linear-gradient(90deg, #7a59b4, #9b6dc6); color: white; border: none; border-radius: 10px; padding: 14px; font-size: 15px; font-weight: 600; width: 100%; cursor: pointer; transition: all 0.3s; position: relative; overflow: hidden; } .phone-bank-page .submit-btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: all 0.5s; } .phone-bank-page .submit-btn:hover { background: linear-gradient(90deg, #6a4aa4, #8a5cb6); transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); } .phone-bank-page .submit-btn:hover::before { left: 100%; } .phone-bank-page .transaction-list.full { max-height: none; } .phone-bank-page .fines-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 20px; } .phone-bank-page .fine-item { background-color: rgba(255, 255, 255, 0.03); border-radius: 10px; padding: 12px; display: flex; justify-content: space-between; align-items: center; border-left: 3px solid #F44336; } .phone-bank-page .fines-info-message { margin-top: 24px; background-color: rgba(255, 255, 255, 0.05); border-radius: 10px; padding: 16px; display: flex; align-items: center; gap: 12px; } .phone-bank-page .info-icon { width: 36px; height: 36px; border-radius: 50%; background-color: rgba(122, 89, 180, 0.15); display: flex; align-items: center; justify-content: center; color: #9b6dc6; flex-shrink: 0; } .phone-bank-page .fines-info-message p { margin: 0; font-size: 13px; color: rgba(255, 255, 255, 0.8); line-height: 1.4; } .phone-bank-page .info-section { display: flex; flex-direction: column; gap: 20px; } .phone-bank-page .info-section h3 { font-size: 16px; font-weight: 600; margin: 0 0 8px 0; color: #ffffff; } .phone-bank-page .info-section p { font-size: 14px; line-height: 1.5; color: rgba(255, 255, 255, 0.8); margin: 0; } .phone-bank-page .contact-item { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; } .phone-bank-page .contact-icon { width: 36px; height: 36px; border-radius: 50%; background-color: rgba(122, 89, 180, 0.15); display: flex; align-items: center; justify-content: center; color: #9b6dc6; flex-shrink: 0; } .phone-bank-page .contact-text { font-size: 14px; color: rgba(255, 255, 255, 0.8); } .phone-bank-page .contact-text strong { color: #ffffff; font-weight: 600; } .phone-bank-page .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 32px; text-align: center; color: rgba(255, 255, 255, 0.6); } .phone-bank-page .empty-state-icon { width: 56px; height: 56px; border-radius: 50%; background-color: rgba(255, 255, 255, 0.05); display: flex; align-items: center; justify-content: center; margin-bottom: 16px; } .phone-bank-page .empty-state-title { font-size: 16px; font-weight: 600; margin-bottom: 8px; } .phone-bank-page .empty-state-description { font-size: 13px; max-width: 250px; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } @keyframes cardShimmer { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @media (max-height: 700px) { .phone-bank-modern .card-balance { font-size: 24px; margin-bottom: 10px; } .phone-bank-modern .quick-actions { gap: 8px; } .phone-bank-modern .action-icon { width: 36px; height: 36px; margin-bottom: 6px; } .phone-bank-modern .action-btn { padding: 10px 6px; } .phone-bank-modern .transaction-list { max-height: 200px; } } .phone-app-settings { display: flex; flex-direction: column; height: 100%; color: #e0e0e0; overflow: hidden; background-color: #121212; } .settings-header { display: flex; align-items: center; padding: 10px 5px 10px 5px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); position: relative; } .settings-back-btn { background: none; border: none; color: #ffffff; padding: 8px; cursor: pointer; display: flex; align-items: center; justify-content: center; border-radius: 50%; width: 32px; height: 32px; transition: background-color 0.2s; margin-right: 8px; } .settings-back-btn:hover { background-color: rgba(255, 255, 255, 0.1); } .settings-title { font-size: 18px; font-weight: 600; flex: 1; } .settings-user { display: flex; align-items: center; padding: 20px 16px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .settings-avatar { width: 50px; height: 50px; border-radius: 50%; background: linear-gradient(135deg, #7a59b4, #9b6dc6); display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 600; color: white; margin-right: 15px; } .settings-user-info { flex: 1; } .settings-user-name { font-size: 16px; font-weight: 600; margin-bottom: 4px; } .settings-user-id { font-size: 13px; color: rgba(255, 255, 255, 0.6); } .settings-content { flex: 1; overflow-y: auto; padding: 0; scrollbar-width: none; } .settings-section { margin-bottom: 20px; margin-top: 11px; } .settings-section-title { font-size: 14px; font-weight: 600; color: #9b6dc6; padding: 12px 16px 8px; text-transform: uppercase; letter-spacing: 0.5px; } .settings-item { display: flex; align-items: center; padding: 14px 16px; border-bottom: 1px solid rgba(255, 255, 255, 0.05); cursor: pointer; transition: background-color 0.2s; } .settings-item:hover { background-color: rgba(255, 255, 255, 0.05); } .settings-item-icon { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; margin-right: 15px; color: rgba(255, 255, 255, 0.8); } .settings-item-content { flex: 1; } .settings-item-title { font-size: 15px; margin-bottom: 4px; } .settings-item-description { font-size: 12px; color: rgba(255, 255, 255, 0.5); } .settings-item-action { display: flex; align-items: center; } .settings-toggle { position: relative; width: 40px; height: 20px; border-radius: 10px; background-color: rgba(255, 255, 255, 0.2); transition: background-color 0.3s; cursor: pointer; } .settings-toggle.active { background-color: #9b6dc6; } .settings-toggle::after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background-color: white; transition: transform 0.3s; } .settings-toggle.active::after { transform: translateX(20px); } .settings-arrow { color: rgba(255, 255, 255, 0.5); font-size: 18px; } .settings-subpage { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #121212; z-index: 10; display: none; flex-direction: column; overflow: hidden; } .settings-subpage.active { display: flex; animation: slideInRight 0.3s ease; } @keyframes slideInRight { from { transform: translateX(100%); } to { transform: translateX(0); } } @keyframes slideOutRight { from { transform: translateX(0); } to { transform: translateX(100%); } } .settings-slider-container { display: flex; align-items: center; width: 100%; margin-top: 8px; } .settings-slider { flex: 1; height: 4px; background-color: rgba(255, 255, 255, 0.2); border-radius: 2px; position: relative; margin: 0 10px; } .settings-slider-fill { position: absolute; left: 0; top: 0; height: 100%; background-color: #9b6dc6; border-radius: 2px; } .settings-slider-thumb { position: absolute; top: 50%; width: 16px; height: 16px; background-color: white; border-radius: 50%; transform: translate(-50%, -50%); cursor: pointer; } .settings-slider-value { font-size: 14px; min-width: 30px; text-align: center; } .theme-options { display: flex; flex-wrap: wrap; gap: 10px; padding: 16px; } .theme-option { width: 70px; height: 70px; border-radius: 12px; overflow: hidden; position: relative; cursor: pointer; border: 2px solid transparent; transition: transform 0.2s, border-color 0.2s; } .theme-option.active { border-color: #9b6dc6; transform: scale(1.05); } .theme-option:hover { transform: scale(1.05); } .theme-preview { width: 100%; height: 100%; } .theme-dark { background: linear-gradient(135deg, #121212 0%, #2a2a2a 100%); } .theme-light { background: linear-gradient(135deg, #e0e0e0 0%, #f5f5f5 100%); } .theme-purple { background: linear-gradient(135deg, #4a3a8c 0%, #7a59b4 100%); } .theme-blue { background: linear-gradient(135deg, #1a237e 0%, #3949ab 100%); } .theme-green { background: linear-gradient(135deg, #1b5e20 0%, #43a047 100%); } .theme-red { background: linear-gradient(135deg, #b71c1c 0%, #e53935 100%); } .wallpaper-options { display: flex; flex-wrap: wrap; gap: 10px; padding: 16px; } .wallpaper-option { width: 70px; height: 120px; border-radius: 12px; overflow: hidden; position: relative; cursor: pointer; border: 2px solid transparent; transition: transform 0.2s, border-color 0.2s; } .wallpaper-option.active { border-color: #9b6dc6; transform: scale(1.05); } .wallpaper-option:hover { transform: scale(1.05); } .wallpaper-preview { width: 100%; height: 100%; background-size: cover; background-position: center; } .wallpaper-1 { background-image: linear-gradient(135deg, #121212 0%, #2a2a2a 100%); } .wallpaper-2 { background-image: linear-gradient(135deg, #4a3a8c 0%, #7a59b4 100%); } .wallpaper-3 { background-image: linear-gradient(135deg, #1a237e 0%, #3949ab 100%); } .wallpaper-4 { background-image: linear-gradient(135deg, #1b5e20 0%, #43a047 100%); } .wallpaper-5 { background-image: linear-gradient(135deg, #b71c1c 0%, #e53935 100%); } .wallpaper-6 { background-image: linear-gradient(to bottom, #000000, #434343); } .phone-info-section { background-color: rgba(255, 255, 255, 0.05); border-radius: 12px; margin-bottom: 20px; overflow: hidden; } .phone-info-item { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .phone-info-label { font-size: 15px; color: rgba(255, 255, 255, 0.7); } .phone-info-value { font-size: 15px; font-weight: 500; color: white; text-align: right; } .phone-info-logo { display: flex; flex-direction: column; align-items: center; margin-bottom: 30px; padding: 20px 0 0 0; } .phone-info-logo-img { margin-bottom: 15px; } .phone-info-logo-text { font-size: 24px; font-weight: 600; margin-bottom: 5px; color: #9b6dc6; } .phone-info-item:last-child { border-bottom: none; } .phone-info-version { font-size: 14px; color: rgba(255, 255, 255, 0.6); } .phone-info-item .settings-arrow { color: rgba(255, 255, 255, 0.5); font-size: 20px; margin-left: 10px; } .dev-notification { display: flex; align-items: center; background-color: rgba(255, 193, 7, 0.15); border-left: 4px solid #ffc107; border-radius: 6px; padding: 12px 16px; margin-bottom: 20px; } .dev-notification-icon { display: flex; align-items: center; justify-content: center; color: #ffc107; margin-right: 16px; flex-shrink: 0; } .dev-notification-content { flex: 1; } .dev-notification-title { font-weight: 600; font-size: 16px; margin-bottom: 4px; color: #ffc107; } .dev-notification-description { font-size: 14px; color: rgba(255, 255, 255, 0.8); line-height: 1.4; } .theme-dark .dev-notification { background-color: rgba(255, 193, 7, 0.1); } .ui-job-vacancies { width: 100%; height: 100%; background-color: var(--bg-dark); overflow: hidden; font-family: var(--font-r); color: var(--text-primary); } .ui-job-vacancies .phone-app-container { display: flex; flex-direction: column; height: 495px; width: 100%; scrollbar-width: none; } .ui-job-vacancies .phone-app-header { display: flex; justify-content: space-between; align-items: center; padding: 7px 10px 10px 10px; background-color: var(--bg-darker); border-bottom: 1px solid var(--border); z-index: 2; } .ui-job-vacancies .app-header-title { display: flex; align-items: center; gap: 8px; font-size: 1.1rem; font-weight: bold; color: var(--accent-color); } .ui-job-vacancies .app-header-title svg { stroke: var(--accent-color); width: 20px; height: 20px; } .ui-job-vacancies .phone-app-content { flex: 1; overflow-y: auto; padding: 15px; position: relative; scrollbar-width: none; } .ui-job-vacancies .job-section-title { font-size: 1.2rem; margin-bottom: 15px; color: var(--text-primary); font-family: var(--font-m); position: relative; } .ui-job-vacancies .job-section-title:after { content: ''; position: absolute; bottom: -5px; left: 0; width: 40px; height: 3px; background-color: var(--accent-color); border-radius: 2px; } .ui-job-vacancies .job-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; } .ui-job-vacancies .job-card { background-color: var(--bg-card); border-radius: var(--base-border-radius); overflow: hidden; transition: var(--transition); cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); position: relative; } .ui-job-vacancies .job-card:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); } .ui-job-vacancies .job-card:after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, var(--accent-color), transparent); transform: scaleX(0); transform-origin: left; transition: transform 0.3s ease; } .ui-job-vacancies .job-card:hover:after { transform: scaleX(1); } .ui-job-vacancies .job-card-image { width: 100%; height: 80px; object-fit: cover; border-bottom: 1px solid var(--border); } .ui-job-vacancies .job-card-content { padding: 10px; } .ui-job-vacancies .job-card-title { font-size: 0.95rem; font-weight: bold; margin-bottom: 5px; color: var(--text-primary); font-family: var(--font-m); } .ui-job-vacancies .job-card-salary { font-size: 0.9rem; color: var(--success-color); font-family: var(--font-b); display: flex; align-items: center; } .ui-job-vacancies .job-card-salary:before { content: ''; display: inline-block; width: 8px; height: 8px; background-color: var(--success-color); border-radius: 50%; margin-right: 5px; opacity: 0.7; } .ui-job-vacancies .job-detail-view { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--bg-dark); z-index: 10; overflow-y: auto; scrollbar-width: none; } .ui-job-vacancies .job-detail-header-container { position: relative; height: 180px; overflow: hidden; } .ui-job-vacancies .job-detail-image { width: 100%; height: 100%; object-fit: cover; } .ui-job-vacancies .job-detail-overlay { position: absolute; bottom: 0; left: 0; width: 100%; background: linear-gradient(to top, var(--bg-dark), transparent); padding: 60px 15px 15px; } .ui-job-vacancies .job-back-btn { position: absolute; top: 15px; left: 15px; background: rgba(0, 0, 0, 0.5); border: none; color: white; width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 2; transition: background 0.2s ease; } .ui-job-vacancies .job-back-btn:hover { background: rgba(0, 0, 0, 0.7); } .ui-job-vacancies .job-back-btn svg { width: 20px; height: 20px; stroke: white; } .ui-job-vacancies .job-detail-title-container { display: flex; justify-content: space-between; align-items: flex-end; } .ui-job-vacancies .job-detail-title { font-size: 1.5rem; font-weight: bold; color: white; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); font-family: var(--font-m); } .ui-job-vacancies .job-detail-salary { font-size: 1.1rem; color: var(--success-color); font-family: var(--font-b); background-color: rgba(0, 0, 0, 0.5); padding: 5px 12px; border-radius: 20px; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); } .ui-job-vacancies .job-detail-content { padding: 20px 15px; } .ui-job-vacancies .job-detail-section { margin-bottom: 25px; } .ui-job-vacancies .job-detail-section-title { font-size: 1.1rem; font-weight: bold; margin-bottom: 10px; color: var(--text-primary); font-family: var(--font-m); display: flex; align-items: center; gap: 8px; } .ui-job-vacancies .job-detail-section-title svg { width: 18px; height: 18px; stroke: var(--accent-color); } .ui-job-vacancies .job-detail-description { font-size: 0.95rem; line-height: 1.5; color: var(--text-secondary); word-wrap: break-word; overflow-wrap: break-word; white-space: normal; } .ui-job-vacancies .job-detail-location { background-color: rgba(255, 255, 255, 0.05); padding: 15px; border-radius: 10px; } .ui-job-vacancies .job-detail-location-text { font-size: 0.9rem; margin-bottom: 15px; color: var(--text-secondary); } .ui-job-vacancies .job-detail-map { width: 100%; height: 150px; object-fit: cover; border-radius: var(--base-border-radius); box-shadow: 0 3px 8px rgba(0, 0, 0, 0.2); } .ui-job-vacancies .job-apply-btn { display: block; width: 100%; background: linear-gradient(90deg, var(--accent-color), var(--accent-hover)); color: white; border: none; border-radius: 10px; padding: 14px; font-size: 1rem; font-weight: 600; margin-top: 20px; cursor: pointer; transition: all 0.3s; position: relative; overflow: hidden; text-align: center; } .ui-job-vacancies .job-apply-btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: all 0.5s; } .ui-job-vacancies .job-apply-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); } .ui-job-vacancies .job-apply-btn:hover::before { left: 100%; } /* Tow Truck App Styles */ .tow-truck-app { background-color: #121212; height: 100%; color: #ffffff; font-family: 'Montserrat', sans-serif; display: flex; flex-direction: column; } .tow-truck-header { display: flex; align-items: center; justify-content: space-between; padding: 6px 16px; background-color: rgba(20, 20, 25, 0.9); border-bottom: 1px solid rgba(255, 255, 255, 0.1); z-index: 10; } .tow-truck-header h2 { font-size: 18px; margin: 0; color: #ffffff; } .tow-back-btn { background: none; border: none; color: #ffffff; cursor: pointer; padding: 6px; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: background-color 0.2s; } .tow-back-btn:hover { background-color: rgba(255, 255, 255, 0.1); } .header-spacer { width: 20px; } .tow-truck-scene { position: relative; height: 140px; overflow: hidden; background: linear-gradient(to bottom, #1a1a2e 0%, #2d163e 100%); flex: 0 0 auto; } .road-background { position: absolute; bottom: 0; width: 120%; height: 100px; perspective: 950px; transform-style: preserve-3d; overflow: hidden; right: -14px; } .road-surface { position: absolute; bottom: 0; left: 0; width: 100%; height: 100%; background-color: #333; transform: rotateX(60deg); transform-origin: bottom; background: linear-gradient(to bottom, #444 0%, #222 100%); } .road-line { position: absolute; bottom: 0; left: 0; width: 100%; height: 100%; transform: rotateX(60deg); transform-origin: bottom; background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.5) 45%, rgba(0, 0, 0, 0.2) 48%, rgba(0, 0, 0, 0.2) 52%, rgba(0, 0, 0, 0.5) 55%, rgba(0, 0, 0, 0.5) 100% ); } .road-markings { position: absolute; bottom: 0; left: 0; width: 100%; height: 100%; transform: rotateX(60deg); transform-origin: bottom; background-image: repeating-linear-gradient( 90deg, transparent, transparent calc(50% - 2px), rgba(255, 255, 255, 0.8) calc(50% - 1px), rgba(255, 255, 255, 0.8) calc(50% + 1px), transparent calc(50% + 2px), transparent 100% ); background-size: 40px 100%; animation: moveRoad 1s linear infinite; } @keyframes moveRoad { 0% { background-position: 0 0; } 100% { background-position: -40px 0; } } .tow-truck-image { position: absolute; width: 110px; height: 65px; background-image: url('data:image/svg+xml;utf8,'); background-repeat: no-repeat; background-position: center; background-size: contain; bottom: 25px; left: 50%; transform: translateX(-50%); filter: drop-shadow(0 2px 8px rgba(187, 134, 252, 0.3)); z-index: 2; animation: truckBounce 1s infinite ease-in-out; } @keyframes truckBounce { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } } /* Service Options Styles */ .tow-truck-services { display: grid; grid-template-columns: 1fr 1fr; padding: 12px; gap: 10px; background-color: #1a1a1a; border-top: 1px solid rgba(255, 255, 255, 0.1); overflow-y: auto; flex: 1; height: 310px; } .service-option { display: flex ; flex-direction: column; background-color: #252525; border-radius: 12px; padding: 12px; cursor: pointer; transition: all 0.3s ease; border: 1px solid rgba(255, 255, 255, 0.1); position: relative; overflow: hidden; height: 133px; } .service-option::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: linear-gradient(to bottom, #bb86fc, #8c61c9); } .service-option:hover { background-color: #303030; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); } .service-option:active { transform: translateY(0); box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2); } .service-icon { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, rgba(187, 134, 252, 0.2), rgba(187, 134, 252, 0.1)); border-radius: 50%; margin: 0 auto 8px; font-size: 18px; flex-shrink: 0; box-shadow: 0 2px 8px rgba(187, 134, 252, 0.2); } .service-option .service-title { font-size: 14px; font-weight: 600; } .service-option .service-price { font-size: 13px; font-weight: 500; } .service-option .service-description { font-size: 12px; line-height: 1.3; color: var(--text-secondary); } .service-option .service-icon { font-size: 22px; } .service-details { flex: 1; display: flex; flex-direction: column; text-align: center; } .service-title { font-size: 14px; font-weight: 600; margin-bottom: 4px; color: #ffffff; } .service-price { font-size: 15px; color: #bb86fc; font-weight: 600; margin-bottom: 6px; } .service-description { font-size: 11px; color: #a0a0a0; line-height: 1.3; margin-top: auto; /* Limit to 2 lines with ellipsis */ display: -webkit-box; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; } .tow-truck-confirmation { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); display: flex; align-items: center; justify-content: center; z-index: 100; } .confirmation-content { background-color: #1e1e1e; border-radius: 16px; padding: 24px; width: 85%; max-width: 300px; text-align: center; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5); } .confirmation-icon-towtruck { margin: 0 auto 16px; width: 60px; height: 60px; display: flex; align-items: center; justify-content: center; background-color: rgba(76, 175, 80, 0.1); border-radius: 50%; font-size: 30px; color: #4CAF50; } .confirmation-title { font-size: 18px; font-weight: 600; margin: 0 0 16px 0; color: #ffffff; } .confirmation-message, .confirmation-price { font-size: 14px; margin: 8px 0; color: #aaaaaa; } .confirmation-price { font-weight: 600; color: #bb86fc; margin-bottom: 20px; } .confirmation-buttons { display: grid; gap: 10px; margin-top: 20px; } .confirmation-accept-btn { flex: 1; background-color: #4CAF50; color: #ffffff; border: none; border-radius: 8px; padding: 12px; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; } .confirmation-accept-btn:hover { background-color: #45a049; transform: translateY(-2px); } .confirmation-cancel-btn { flex: 1; background-color: #f44336; color: #ffffff; border: none; border-radius: 8px; padding: 12px; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; } .confirmation-cancel-btn:hover { background-color: #d32f2f; transform: translateY(-2px); } /* Completion Overlay Styles */ .tow-completion-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); display: flex; align-items: center; justify-content: center; z-index: 20; opacity: 0; transition: opacity 0.3s ease; } .completion-loader { text-align: center; } .completion-loader p { margin-top: 16px; color: #ffffff; font-size: 16px; font-weight: 500; } .spinner { width: 50px; height: 50px; animation: rotate 2s linear infinite; margin: 0 auto; border: 4px solid rgba(255, 255, 255, 0.1); border-radius: 50%; border-top-color: #bb86fc; } @keyframes rotate { 100% { transform: rotate(360deg); } } /* --------------- Ui AutoSchool----------------*/ .ui-auto_school { box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.5); color: var(--text-primary); background-color: #121218; border-radius: 20px; margin-left: auto; margin-right: auto; width: 800px; height: 600px; display: flex; flex-direction: column; border: 1px solid #2d2d3a; font-family: var(--font-r); overflow: auto; scrollbar-width: none; } .auto-school-header { display: flex; justify-content: space-between; align-items: center; padding: 15px 20px; background-color: #1a1a24; border-bottom: 1px solid #2d2d3a; } .auto-school-logo { display: flex; align-items: center; gap: 10px; color: #bb86fc; font-size: 18px; font-weight: bold; } .auto-school-logo svg { stroke: #bb86fc; } .auto-school-close-btn { background: none; border: none; color: var(--text-secondary); cursor: pointer; padding: 5px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: background-color 0.2s; } .auto-school-close-btn:hover { background-color: rgba(255, 255, 255, 0.1); color: var(--text-primary); } .auto-school-content { flex: 1; padding: 20px; overflow-y: auto; display: flex; flex-direction: column; gap: 25px; } .auto-school-welcome { text-align: center; margin-bottom: 10px; } .auto-school-welcome h2 { color: #bb86fc; margin-bottom: 10px; font-size: 24px; } .auto-school-quote { font-style: italic; color: var(--text-secondary); max-width: 80%; margin: 0 auto; line-height: 1.5; } .auto-school-testimonials { background-color: #1a1a24; border-radius: 12px; padding: 20px; position: relative; } .auto-school-testimonials h3 { color: #bb86fc; margin-bottom: 15px; font-size: 18px; text-align: center; } .testimonial-slider { position: relative; height: 100px; } .testimonial-slide { position: absolute; top: 0; left: 0; width: 100%; opacity: 0; transition: opacity 0.5s ease; text-align: center; display: none; } .testimonial-slide.active { opacity: 1; display: block; } .testimonial-slide p { margin-bottom: 10px; line-height: 1.5; } .testimonial-author { color: var(--text-secondary); font-style: italic; } .testimonial-controls { display: flex; justify-content: center; gap: 8px; margin-top: 15px; } .testimonial-dot { width: 8px; height: 8px; border-radius: 50%; background-color: #333340; cursor: pointer; transition: background-color 0.3s; } .testimonial-dot.active { background-color: #bb86fc; } .auto-school-licenses { flex: 1; } .auto-school-licenses h3 { color: #bb86fc; margin-bottom: 15px; font-size: 18px; text-align: center; } .license-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; } .license-card { background-color: #1a1a24; border-radius: 12px; padding: 20px; display: flex; flex-direction: column; align-items: center; gap: 10px; cursor: pointer; transition: transform 0.2s, background-color 0.2s; border: 1px solid #2d2d3a; } .license-card:hover { background-color: #222230; transform: translateY(-3px); } .license-icon { width: 60px; height: 60px; border-radius: 50%; background-color: #3700b3; color: white; display: flex; align-items: center; justify-content: center; font-size: 24px; font-weight: bold; } .license-name { font-size: 16px; text-align: center; } /* License Details Styles */ .license-details-header { display: flex; align-items: center; gap: 15px; margin-bottom: 20px; } .back-button { background: none; border: none; color: var(--text-secondary); cursor: pointer; display: flex; align-items: center; gap: 5px; padding: 5px 10px; border-radius: 5px; transition: background-color 0.2s; } .back-button:hover { background-color: rgba(255, 255, 255, 0.1); color: var(--text-primary); } .license-details-content { display: flex; flex-direction: column; gap: 20px; } .license-description { background-color: #1a1a24; border-radius: 12px; padding: 20px; line-height: 1.6; } .license-exam-info { background-color: #1a1a24; border-radius: 12px; padding: 20px; } .license-exam-info h3 { color: #bb86fc; margin-bottom: 10px; font-size: 16px; } .license-exam-info ul { padding-left: 20px; } .license-exam-info li { display: flex; justify-content: space-between; margin-bottom: 10px; } #theory-price, #practice-price { color: #bb86fc; font-weight: bold; } .license-actions { display: flex; flex-direction: column; gap: 15px; align-items: center; margin-top: 20px; } .test-status { padding: 10px 15px; border-radius: 8px; background-color: #332940; color: #bb86fc; text-align: center; width: 100%; max-width: 300px; } .primary-button { background-color: #bb86fc; color: #121218; border: none; border-radius: 8px; padding: 12px 20px; font-weight: bold; cursor: pointer; transition: background-color 0.2s; width: 100%; max-width: 300px; } .primary-button:hover { background-color: #9966cc; } .secondary-button { background-color: #1a1a24; color: var(--text-primary); border: 1px solid #2d2d3a; border-radius: 8px; padding: 12px 20px; cursor: pointer; transition: background-color 0.2s; } .secondary-button:hover { background-color: #222230; } /* Theory Test Styles */ .theory-test-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .theory-test-timer { background-color: #1a1a24; padding: 8px 15px; border-radius: 8px; font-weight: bold; color: #bb86fc; } .question-container { background-color: #1a1a24; border-radius: 12px; padding: 20px; margin-bottom: 20px; min-height: 300px; } .question-number { color: #bb86fc; margin-bottom: 10px; font-weight: bold; } .question-text { margin-bottom: 20px; line-height: 1.6; } .question-options { display: flex; flex-direction: column; gap: 10px; } .question-option { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 8px; background-color: #222230; cursor: pointer; transition: background-color 0.2s; } .question-option:hover { background-color: #2d2d3a; } .question-option.selected { background-color: #332940; border: 1px solid #bb86fc; } .question-option input { margin: 0; } .theory-test-navigation { display: flex; justify-content: space-between; gap: 10px; } /* Auto School Results Screen Styles - Improved */ #auto-school-results { display: flex; flex-direction: column; width: 100%; height: 100%; } .results-content { background-color: #1a1a24; border-radius: 16px; padding: 30px; margin: 20px; display: flex; flex-direction: column; align-items: center; gap: 20px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); border: 1px solid #2d2d3a; flex: 1; } .results-icon { width: 100px; height: 100px; display: flex; align-items: center; justify-content: center; margin-bottom: 10px; animation: pulse 2s infinite; } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } } .results-message { font-size: 24px; font-weight: bold; color: var(--text-primary); margin-bottom: 20px; text-align: center; } .results-details { background-color: #222230; border-radius: 12px; padding: 20px; width: 100%; text-align: left; line-height: 1.8; } .results-details p { margin: 12px 0; color: var(--text-secondary); display: flex; align-items: center; } .results-details strong { color: var(--text-primary); margin-left: 5px; } .results-actions { display: flex; gap: 20px; margin-top: 30px; width: 100%; } .auto-school-btn { flex: 1; padding: 15px 20px; border-radius: 10px; font-weight: bold; cursor: pointer; transition: all 0.3s ease; border: none; font-size: 16px; text-align: center; } #retry-exam-btn { background-color: #bb86fc; color: #121218; } #retry-exam-btn:hover { background-color: #9966cc; transform: translateY(-2px); box-shadow: 0 4px 8px rgba(187, 134, 252, 0.3); } #back-to-menu-btn { background-color: #1a1a24; color: var(--text-primary); border: 1px solid #2d2d3a; } #back-to-menu-btn:hover { background-color: #222230; transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); } /* Driving Exam HUD Styles */ .driving-exam-hud { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 10; } .driving-exam-info { position: absolute; top: 80px; left: 20px; background-color: rgba(18, 18, 24, 0.9); border-radius: 16px; padding: 20px; width: 320px; border: 1px solid #3700b3; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); backdrop-filter: blur(10px); pointer-events: auto; transition: all 0.3s ease; } .driving-exam-header { display: flex; justify-content: space-between; margin-bottom: 15px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding-bottom: 10px; } .driving-exam-header span { font-size: 18px; font-weight: bold; color: var(--text-primary); } #driving-exam-timer { color: var(--accent); font-family: monospace; letter-spacing: 1px; } .driving-exam-navigation { display: flex; align-items: center; background-color: rgba(55, 0, 179, 0.2); border-radius: 12px; padding: 12px; margin-bottom: 15px; border-left: 3px solid var(--accent); } .navigation-icon { margin-right: 12px; color: var(--accent); animation: pulse 2s infinite; } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } } #driving-direction { font-size: 16px; color: var(--text-primary); font-weight: 500; } .driving-exam-stats { background-color: rgba(37, 37, 37, 0.7); border-radius: 12px; padding: 15px; margin-bottom: 15px; } .stat-item { display: flex; justify-content: space-between; margin-bottom: 10px; } .stat-item:last-child { margin-bottom: 0; } .stat-label { color: var(--text-secondary); } #driving-current-speed, #driving-max-speed { color: var(--text-primary); font-weight: 500; } #driving-errors { color: var(--c-red); font-weight: bold; } .driving-exam-terminate-btn { width: 100%; background-color: rgba(60, 60, 70, 0.6); color: #aaaaaa; border: 1px solid rgba(150, 150, 150, 0.3); border-radius: 8px; padding: 8px; font-size: 13px; font-weight: 400; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; pointer-events: auto; margin-top: 10px; } .driving-exam-terminate-btn svg { margin-right: 8px; opacity: 0.7; } .driving-exam-terminate-btn:hover { background-color: rgba(231, 33, 57, 0.2); color: #e0e0e0; border-color: rgba(231, 33, 57, 0.4); } .universal-confirmation { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.7); display: flex; align-items: center; justify-content: center; z-index: 1100; pointer-events: auto; backdrop-filter: blur(5px); } .universal-confirmation .confirmation-dialog { background-color: var(--bg-darker); border-radius: 16px; padding: 25px; width: 400px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); border: 1px solid var(--border); animation: dialog-appear 0.3s ease; } @keyframes dialog-appear { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } .universal-confirmation .confirmation-header { display: flex; align-items: center; margin-bottom: 15px; } .universal-confirmation .confirmation-icon { margin-right: 15px; } .universal-confirmation .confirmation-header h3 { color: var(--text-primary); font-size: 20px; margin: 0; } .universal-confirmation .confirmation-dialog p { color: var(--text-secondary); margin-bottom: 25px; line-height: 1.5; } .universal-confirmation .confirmation-buttons { display: flex; justify-content: space-between; gap: 15px; } .universal-confirmation .confirmation-buttons button { flex: 1; padding: 12px; border-radius: 8px; font-weight: 500; cursor: pointer; transition: all 0.2s ease; border: none; } .universal-confirmation .confirm-btn { background-color: var(--accent); color: white; } .universal-confirmation .confirm-btn:hover { background-color: var(--accent-hover); transform: translateY(-2px); } .universal-confirmation .cancel-btn { background-color: var(--bg-card); color: var(--text-primary); border: 1px solid var(--border) !important; } .universal-confirmation .cancel-btn:hover { background-color: #333; transform: translateY(-2px); } .universal-confirmation .confirmation-icon svg[stroke="#e72139"] ~ h3 { color: var(--c-red); } .universal-confirmation .confirm-btn.danger { background-color: var(--c-red); } .universal-confirmation .confirm-btn.danger:hover { background-color: #c51b30; } .universal-confirmation .confirmation-icon svg[stroke="#4eff00"] ~ h3 { color: var(--c-green); } .universal-confirmation .confirmation-icon svg[stroke="#19b9fa"] ~ h3 { color: var(--c-blue); } /* --------------- Ui Inventory----------------*/ .ui-inventory { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 520px; background: rgba(18, 18, 24, 0.95); border-radius: 8px; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.6); overflow: hidden; border: 1px solid rgba(109, 40, 217, 0.3); backdrop-filter: blur(10px); } .inventory-container { padding: 16px; } .inventory-slot { position: relative; min-height: 80px; margin: 5px; padding: 5px; display: inline-block; width: 100px; vertical-align: top; } .inventory-item { cursor: grab; user-select: none; } .inventory-item.dragging { opacity: 0.5; } .inventory-slot.drag-over { background-color: rgba(0, 255, 0, 0.2); border: 1px dashed #00ff00; } #inventory-context-menu { position: absolute; background: #2d2d2d; border: 1px solid #444; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); z-index: 1000; min-width: 150px; display: none; } .context-menu-item { padding: 8px 15px; color: #fff; cursor: pointer; font-size: 14px; } .context-menu-item:hover { background: #3d3d3d; } .inventory-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid rgba(109, 40, 217, 0.2); } .inventory-title { color: var(--text-primary); font-size: 18px; font-weight: 500; margin: 0; letter-spacing: 0.5px; } .inventory-capacity { background-color: rgba(109, 40, 217, 0.15); color: var(--text-primary); padding: 4px 10px; border-radius: 4px; font-size: 13px; font-weight: 500; display: flex; align-items: center; gap: 2px; } .inventory-capacity span { color: rgba(109, 40, 217, 0.9); font-weight: 600; } .inventory-divider { display: none; } .inventory-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; max-height: 400px; overflow-y: auto; padding: 4px; margin-top: 8px; } .inventory-grid::-webkit-scrollbar { width: 4px; } .inventory-grid::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.05); border-radius: 4px; } .inventory-grid::-webkit-scrollbar-thumb { background: rgba(109, 40, 217, 0.4); border-radius: 4px; } .inventory-grid::-webkit-scrollbar-thumb:hover { background: rgba(109, 40, 217, 0.6); } .inventory-item { background-color: rgba(30, 30, 40, 0.6); border: 1px solid rgba(60, 60, 80, 0.4); border-radius: 6px; padding: 8px; display: flex; flex-direction: column; align-items: center; transition: all 0.2s ease; cursor: pointer; position: relative; aspect-ratio: 1/1; } .inventory-item:hover { background-color: rgba(40, 40, 60, 0.8); transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); border-color: rgba(109, 40, 217, 0.3); } .item-icon { width: 36px; height: 36px; margin-bottom: 6px; display: flex; align-items: center; justify-content: center; } .item-icon img { max-width: 100%; max-height: 100%; filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.3)); } .item-name { color: var(--text-primary); font-size: 11px; text-align: center; margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; } .item-count { position: absolute; top: 4px; right: 4px; background-color: rgba(109, 40, 217, 0.7); color: white; font-size: 10px; font-weight: bold; padding: 1px 5px; border-radius: 10px; min-width: 14px; text-align: center; } .item-weight { position: absolute; bottom: 4px; right: 4px; background-color: rgba(30, 30, 40, 0.7); color: rgba(255, 255, 255, 0.7); font-size: 9px; padding: 1px 4px; border-radius: 3px; } .empty-slot { background-color: rgba(30, 30, 40, 0.3); border: 1px dashed rgba(60, 60, 80, 0.2); } .empty-slot:hover { background-color: rgba(30, 30, 40, 0.4); border-color: rgba(60, 60, 80, 0.3); transform: none; box-shadow: none; } /* --------------- Ui Fast Use ----------------*/ .ui-fast_use { display: none; position: relative; width: 500px; height: 300px; margin: 50px auto; } .fast_use_close { color: white; width: 70px; height: 70px; background-color: rgb(32, 32, 32); border-radius: 50%; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); cursor: pointer; } .fast_use_close:hover { background-color: rgb(23, 23, 23); } .fast_use_button { padding: 5px; color: white; position: absolute; background-color: rgb(32, 32, 32); border-radius: 12px; display: flex; align-items: center; justify-content: center; cursor: pointer; border: 1px solid #333; user-select: none; transition: background-color 0.2s; } .fast_use_button:hover { background-color: rgb(23, 23, 23); } /* --------------- Ui Bank ----------------*/ .ui-bank { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); backdrop-filter: blur(5px); z-index: 1000; color: var(--text-primary); overflow: hidden; } .bank-container { width: 100%; height: 100%; background-color: #121212; color: #ffffff; display: flex; flex-direction: column; overflow: hidden; font-family: 'Roboto', sans-serif; } .bank-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 24px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .bank-logo { display: flex; align-items: center; gap: 12px; color: #ffffff; } .bank-logo span { font-size: 24px; font-weight: 700; letter-spacing: 0.5px; } .bank-actions { display: flex; gap: 16px; } .bank-close-btn { background: none; border: none; color: #ffffff; cursor: pointer; padding: 8px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: background-color 0.2s; } .bank-close-btn:hover { background-color: rgba(255, 255, 255, 0.1); } .bank-content { display: flex; flex: 1; overflow: hidden; } .bank-sidebar { width: 240px; border-right: 1px solid rgba(255, 255, 255, 0.1); display: flex; flex-direction: column; justify-content: space-between; padding: 24px 0; } .sidebar-menu { display: flex; flex-direction: column; gap: 8px; } .sidebar-item { display: flex; align-items: center; gap: 12px; padding: 12px 24px; color: rgba(255, 255, 255, 0.7); text-decoration: none; cursor: pointer; transition: all 0.2s; border-left: 3px solid transparent; } .sidebar-item:hover { background-color: rgba(255, 255, 255, 0.05); color: rgb(253, 105, 105); } .sidebar-item.active { background-color: rgba(255, 255, 255, 0.05); color: #ffffff; border-left: 3px solid #7a59b4; } .sidebar-footer { margin-top: auto; } .bank-main-content { flex: 1; padding: 24px; overflow-y: auto; } .bank-page { display: none; } .bank-page.active { display: block; animation: fadeIn 0.3s ease; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .page-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; } .page-header h2 { font-size: 24px; font-weight: 600; margin: 0; } .date-time { color: rgba(255, 255, 255, 0.7); font-size: 14px; } .bank-page#ui-bank-page1 { display: grid; grid-template-columns: 1fr; grid-template-rows: auto auto 1fr; gap: 24px; } .account-overview { display: flex; flex-direction: column; gap: 24px; margin-bottom: 12px; } .balance-card { background: linear-gradient(125deg, #4a3a8c 0%, #7a59b4 50%, #9b6dc6 100%); border-radius: 20px; padding: 30px; position: relative; overflow: hidden; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3); transition: transform 0.3s ease, box-shadow 0.3s ease; } .balance-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0, 0, 0, 0.4); } .balance-card::before { content: ''; position: absolute; top: -100%; left: -100%; width: 300%; height: 300%; background: radial-gradient(circle, rgba(255, 255, 255, 0.15) 0%, transparent 70%); opacity: 0.6; animation: cardShimmer 8s infinite linear; } @keyframes cardShimmer { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .card-content { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto auto; gap: 16px; } .card-header { grid-column: 1 / 3; display: flex; justify-content: space-between; margin-bottom: 10px; } .card-title { font-size: 16px; opacity: 0.9; font-weight: 500; letter-spacing: 0.5px; } .card-bank { font-size: 16px; font-weight: 700; letter-spacing: 1px; } .card-balance { grid-column: 1 / 2; font-size: 38px; font-weight: 700; margin-bottom: 16px; letter-spacing: 1px; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); } .card-details { grid-column: 1 / 3; display: flex; justify-content: space-between; align-items: center; } .card-number { font-size: 18px; letter-spacing: 3px; opacity: 0.9; } .card-expiry { font-size: 14px; opacity: 0.8; font-weight: 500; } .card-chip { grid-column: 2 / 3; grid-row: 2 / 3; justify-self: end; align-self: center; opacity: 0.9; transform: rotate(0deg); transition: transform 0.3s ease; } .balance-card:hover .card-chip { transform: rotate(5deg); } .account-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 24px; } .stat-card { background-color: rgba(255, 255, 255, 0.07); border-radius: 16px; padding: 20px; display: flex; flex-direction: column; gap: 10px; transition: all 0.3s ease; border: 1px solid rgba(255, 255, 255, 0.05); } .stat-card:hover { background-color: rgba(255, 255, 255, 0.1); transform: translateY(-3px); } .stat-icon { width: 40px; height: 40px; border-radius: 12px; background-color: rgba(122, 89, 180, 0.2); display: flex; align-items: center; justify-content: center; color: #9b6dc6; margin-bottom: 5px; } .stat-title { font-size: 14px; color: rgba(255, 255, 255, 0.7); font-weight: 500; } .stat-value { font-size: 24px; font-weight: 700; color: #ffffff; } .stat-change { font-size: 12px; display: flex; align-items: center; gap: 4px; } .stat-change.positive { color: #4CAF50; } .stat-change.negative { color: #F44336; } .quick-actions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 30px; } .action-card { background-color: rgba(255, 255, 255, 0.05); border-radius: 16px; padding: 20px 16px; display: flex; flex-direction: column; align-items: center; gap: 14px; cursor: pointer; transition: all 0.3s ease; border: 1px solid rgba(255, 255, 255, 0.05); position: relative; overflow: hidden; } .action-card::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, #7a59b4, #9b6dc6); transform: scaleX(0); transform-origin: left; transition: transform 0.3s ease; } .action-card:hover { background-color: rgba(255, 255, 255, 0.08); transform: translateY(-5px); } .action-card:hover::after { transform: scaleX(1); } .action-icon { width: 52px; height: 52px; border-radius: 50%; background-color: rgba(122, 89, 180, 0.15); display: flex; align-items: center; justify-content: center; color: #9b6dc6; transition: all 0.3s ease; } .action-card:hover .action-icon { background-color: rgba(122, 89, 180, 0.3); transform: scale(1.1); } .action-title { font-size: 15px; font-weight: 600; text-align: center; } .bank-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; } .bank-section { background-color: rgba(255, 255, 255, 0.05); border-radius: 16px; padding: 24px; transition: all 0.3s ease; border: 1px solid rgba(255, 255, 255, 0.05); position: relative; overflow: hidden; } .bank-section:hover { background-color: rgba(255, 255, 255, 0.07); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); } .section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; position: relative; } .section-header::after { content: ''; position: absolute; bottom: -10px; left: 0; width: 100%; height: 1px; background: linear-gradient(90deg, rgba(122, 89, 180, 0.7), transparent); } .section-header h3 { font-size: 18px; font-weight: 600; margin: 0; display: flex; align-items: center; gap: 10px; } .section-header h3::before { content: ''; display: block; width: 6px; height: 20px; background: linear-gradient(180deg, #7a59b4, #9b6dc6); border-radius: 3px; } .view-all { color: #9b6dc6; font-size: 14px; cursor: pointer; transition: all 0.2s; display: flex; align-items: center; gap: 5px; } .view-all:hover { color: #b68ad8; } .view-all::after { content: '→'; font-size: 16px; transition: transform 0.2s; } .view-all:hover::after { transform: translateX(3px); } /* Transfer Form Redesign */ .form-group { margin-bottom: 20px; position: relative; } .form-group label { display: block; margin-bottom: 10px; color: rgba(255, 255, 255, 0.8); font-size: 14px; font-weight: 500; transition: all 0.2s; } .form-group input { width: 100%; padding: 14px; background-color: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; color: #ffffff; font-size: 16px; transition: all 0.3s; } .form-group input:focus { outline: none; border-color: #7a59b4; background-color: rgba(255, 255, 255, 0.05); box-shadow: 0 0 0 3px rgba(122, 89, 180, 0.2); } .form-group input:focus + label { color: #9b6dc6; } .form-group textarea { width: 100%; padding: 14px; background-color: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; color: #ffffff; font-size: 16px; transition: all 0.3s; min-height: 100px; resize: vertical; } .form-group textarea:focus { outline: none; border-color: #7a59b4; background-color: rgba(255, 255, 255, 0.05); box-shadow: 0 0 0 3px rgba(122, 89, 180, 0.2); } #transfer-button, .submit-btn, .pay-all-btn, .fine-pay-btn { background: linear-gradient(90deg, #7a59b4, #9b6dc6); color: white; border: none; border-radius: 10px; padding: 14px; font-size: 16px; font-weight: 600; width: 100%; cursor: pointer; transition: all 0.3s; position: relative; overflow: hidden; } #transfer-button::before, .submit-btn::before, .pay-all-btn::before, .fine-pay-btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: all 0.5s; } #transfer-button:hover, .submit-btn:hover, .pay-all-btn:hover, .fine-pay-btn:hover { background: linear-gradient(90deg, #6a4aa4, #8a5cb6); transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); } #transfer-button:hover::before, .submit-btn:hover::before, .pay-all-btn:hover::before, .fine-pay-btn:hover::before { left: 100%; } .transaction-list { display: flex; flex-direction: column; gap: 12px; max-height: 350px; overflow-y: auto; padding-right: 5px; } .transaction-list.full { max-height: none; } .transaction-item { display: flex; justify-content: space-between; align-items: center; padding: 16px; background-color: rgba(255, 255, 255, 0.03); border-radius: 12px; transition: all 0.2s; border-left: 3px solid transparent; } .transaction-item:hover { background-color: rgba(255, 255, 255, 0.07); transform: translateX(3px); } .transaction-item.income { border-left-color: #4CAF50; } .transaction-item.expense { border-left-color: #F44336; } .transaction-info { display: flex; align-items: center; gap: 14px; } .transaction-icon { width: 40px; height: 40px; border-radius: 50%; background-color: rgba(255, 255, 255, 0.1); display: flex; align-items: center; justify-content: center; font-size: 18px; } .transaction-icon.income { background-color: rgba(76, 175, 80, 0.1); color: #4CAF50; } .transaction-icon.expense { background-color: rgba(244, 67, 54, 0.1); color: #F44336; } .transaction-details { display: flex; flex-direction: column; gap: 4px; } .transaction-title { font-size: 15px; font-weight: 600; } .transaction-date { font-size: 12px; color: rgba(255, 255, 255, 0.5); } .transaction-amount { font-size: 16px; font-weight: 700; } .transaction-amount.positive { color: #4CAF50; } .transaction-amount.negative { color: #F44336; } /* Empty State Styling */ .empty-transactions { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; text-align: center; color: rgba(255, 255, 255, 0.5); } .empty-icon { font-size: 40px; margin-bottom: 15px; opacity: 0.5; } .empty-title { font-size: 16px; font-weight: 600; margin-bottom: 8px; } .empty-description { font-size: 14px; max-width: 250px; } /* Fines Page */ .fines-container { display: flex; flex-direction: column; gap: 24px; } .fines-list { display: flex; flex-direction: column; gap: 12px; } .fine-item { display: flex; justify-content: space-between; align-items: center; padding: 16px; background-color: rgba(255, 255, 255, 0.05); border-radius: 12px; transition: all 0.3s; border-left: 3px solid #F44336; } .fine-item:hover { background-color: rgba(255, 255, 255, 0.08); transform: translateX(3px); } .fine-info { display: flex; flex-direction: column; gap: 6px; } .fine-title { font-size: 16px; font-weight: 600; } .fine-date { font-size: 14px; color: rgba(255, 255, 255, 0.6); } .fine-amount { font-size: 18px; font-weight: 700; color: #F44336; } .fine-actions { display: flex; gap: 8px; } .fine-pay-btn { width: auto; padding: 10px 16px; font-size: 14px; border-radius: 8px; } .fines-actions { display: flex; justify-content: flex-end; } /* History Page */ .history-container { display: flex; flex-direction: column; gap: 24px; } .history-filters { display: flex; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; } .filter-group { display: flex; align-items: center; gap: 8px; } .filter-group label { font-size: 14px; color: rgba(255, 255, 255, 0.7); } .filter-group select { padding: 10px 14px; background-color: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; color: #ffffff; font-size: 14px; transition: all 0.3s; } .filter-group select:focus { outline: none; border-color: #7a59b4; background-color: rgba(255, 255, 255, 0.08); } .history-list { display: flex; flex-direction: column; gap: 12px; } /* Services Page */ .services-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; } .service-card { background-color: rgba(255, 255, 255, 0.05); border-radius: 16px; padding: 24px; display: flex; flex-direction: column; gap: 16px; transition: all 0.3s; border: 1px solid rgba(255, 255, 255, 0.05); height: 100%; } .service-card:hover { background-color: rgba(255, 255, 255, 0.08); transform: translateY(-5px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2); border-color: rgba(122, 89, 180, 0.3); } .service-icon { width: 50px; height: 50px; border-radius: 16px; background-color: rgba(122, 89, 180, 0.15); display: flex; align-items: center; justify-content: center; color: #9b6dc6; transition: all 0.3s; } .service-card:hover .service-icon { background-color: rgba(122, 89, 180, 0.3); transform: scale(1.05); } .service-title { font-size: 18px; font-weight: 600; } .service-description { font-size: 14px; color: rgba(255, 255, 255, 0.7); margin-bottom: 8px; line-height: 1.5; } .service-button { background-color: rgba(255, 255, 255, 0.1); color: #ffffff; border: none; border-radius: 8px; padding: 12px 16px; font-size: 14px; font-weight: 500; cursor: pointer; transition: all 0.3s; margin-top: auto; } .service-button:hover { background-color: #7a59b4; color: white; transform: translateY(-2px); } /* Scrollbar Styling */ .bank-main-content::-webkit-scrollbar, .transaction-list::-webkit-scrollbar { width: 6px; } .bank-main-content::-webkit-scrollbar-track, .transaction-list::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.05); border-radius: 3px; } .bank-main-content::-webkit-scrollbar-thumb, .transaction-list::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.2); border-radius: 3px; } .bank-main-content::-webkit-scrollbar-thumb:hover, .transaction-list::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.3); } /* Placeholder Styles */ .transaction-item.placeholder, .fine-item.placeholder { color: rgba(255, 255, 255, 0.5); text-align: center; justify-content: center; padding: 24px; border-left: none; } /* Animation Effects */ @keyframes slideInRight { from { transform: translateX(30px); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes slideInUp { from { transform: translateY(30px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .balance-card { animation: slideInUp 0.4s ease; } .account-stats { animation: slideInUp 0.5s ease; } .quick-actions { animation: slideInUp 0.6s ease; } .bank-section { animation: slideInUp 0.7s ease; } /* Responsive Adjustments */ @media (max-width: 1200px) { .bank-sections { grid-template-columns: 1fr; } .quick-actions { grid-template-columns: repeat(2, 1fr); } .account-stats { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 768px) { .bank-content { flex-direction: column; } .bank-sidebar { width: 100%; border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding: 10px 0; } .sidebar-menu { flex-direction: row; overflow-x: auto; padding: 0 10px; } .sidebar-item { padding: 10px 16px; border-left: none; border-bottom: 3px solid transparent; } .sidebar-item.active { border-left: none; border-bottom: 3px solid #7a59b4; } .sidebar-footer { display: none; } .bank-main-content { padding: 16px; } .services-container { grid-template-columns: 1fr; } .account-stats { grid-template-columns: 1fr; } } /* --------------- Ui END-----------------*/ /* --------------- Ui END-----------------*/ /* --------------- Ui END-----------------*/ /* --------------- Ui END-----------------*/ /* --------------- Ui END-----------------*/ /* --------------- Ui END-----------------*/ /* --------------- Ui END-----------------*/ /* --------------- Ui END-----------------*/ .yk-text { font-family: Montserrat; font-size: 14px; color: #fff; text-transform: none; } .yk-text.w-1 { font-weight: 100; } .yk-text.w-2 { font-weight: 200; } .yk-text.w-3 { font-weight: 300; } .yk-text.w-4 { font-weight: 400; } .yk-text.w-5 { font-weight: 500; } .yk-text.w-6 { font-weight: 600; } .yk-text.w-7 { font-weight: 700; } .yk-text.w-8 { font-weight: 800; } .yk-text.w-9 { font-weight: 900; } .yk-text.s-9 { font-size: 9px; } .yk-text.s-10 { font-size: 10px; } .yk-text.s-11 { font-size: 11px; } .yk-text.s-12 { font-size: 12px; } .yk-text.s-13 { font-size: 13px; } .yk-text.s-15 { font-size: 15px; } .yk-text.s-16 { font-size: 16px; } .yk-text.s-17 { font-size: 17px; } .yk-text.s-18 { font-size: 18px; } .yk-text.s-19 { font-size: 19px; } .yk-text.s-20 { font-size: 20px; } .yk-text.s-21 { font-size: 21px; } .yk-text.s-22 { font-size: 22px; } .yk-text.s-23 { font-size: 23px; } .yk-text.s-24 { font-size: 24px; } .yk-text.s-25 { font-size: 25px; } .yk-text.s-26 { font-size: 26px; } .yk-text.s-29 { font-size: 29px; } .yk-text.s-30 { font-size: 30px; } .yk-text.s-36 { font-size: 36px; } .yk-text.s-38 { font-size: 38px; } .yk-text.s-40 { font-size: 40px; } .yk-text.upper { text-transform: uppercase; } .yk-color-w { color: #fff; } .yk-color-gray { color: #7A92B6; } @-webkit-keyframes noty_modal_in { 100% { opacity: .3; } } @keyframes noty_modal_in { 100% { opacity: .3; } } @-webkit-keyframes noty_modal_out { 100% { opacity: 0; } } @keyframes noty_modal_out { 100% { opacity: 0; } } @keyframes noty_modal_out { 100% { opacity: 0; } } @-webkit-keyframes noty_anim_in { 100% { -webkit-transform: translate(0); transform: translate(0); opacity: 1; } } @keyframes noty_anim_in { 100% { -webkit-transform: translate(0); transform: translate(0); opacity: 1; } } @-webkit-keyframes noty_anim_out { 100% { -webkit-transform: translate(50%); transform: translate(50%); opacity: 0; } } @keyframes noty_anim_out { 100% { -webkit-transform: translate(50%); transform: translate(50%); opacity: 0; } } @-webkit-keyframes noty_anim_height { 100% { height: 0; } } @keyframes noty_anim_height { 100% { height: 0; } } #logoBlock { position: fixed; top: calc(20px * var(--scale-factor)); right: calc(20px * var(--scale-factor)); display: flex; align-items: center; gap: 10px; font-family: Montserrat, sans-serif; color: #EAECEF; background: rgba(20, 22, 28, 0.9); border-radius: 8px; padding: 5px 12px; border: 1px solid rgba(80, 85, 95, 0.5); z-index: 105; } #logoBlock img { height: 22px; vertical-align: middle; size: 300%; } .server-player-info { display: flex; align-items: center; gap: 6px; margin-left: 0; font-size: 12px; } #logoServerName { font-weight: 600; /* Semi-bold */ color: #C5C8D1; text-transform: none; text-shadow: none; } #logoServerOnline { font-weight: 700; color: #EAECEF; } .exit-server-btn { display: inline-flex; align-items: center; gap: 5px; background-color: rgba(220, 53, 69, 0.2); color: #ff6b6b; border: 1px solid rgba(220, 53, 69, 0.3); border-radius: 4px; padding: 3px 8px; font-size: 12px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; margin-left: 5px; outline: none; } .exit-server-btn:hover { background-color: rgba(220, 53, 69, 0.4); color: #fff; border-color: rgba(220, 53, 69, 0.5); transform: translateY(-1px); } .exit-server-btn:active { transform: translateY(1px); background-color: rgba(220, 53, 69, 0.5); } .exit-server-btn svg { width: 14px; height: 14px; } .info-separator { color: #50555F; font-weight: 300; font-size: 14px; margin: 0 2px; } .info-label { font-weight: 400; color: #A0A8B5; } /* Style for Ping value */ #Session-Ping { font-weight: 600; color: #EAECEF; min-width: 15px; text-align: right; } #logoPlayerInfo { font-weight: 600; color: #EAECEF; text-shadow: none; margin-left: 0; } #infoPanelBlock { position: fixed; bottom: calc(20px * var(--scale-factor)); right: calc(20px * var(--scale-factor)); z-index: 105; border-radius: var(--base-border-radius); transition: all 0.3s ease-out; font-family: Montserrat, sans-serif; } #infoPanel { background: rgba(20, 22, 28, 0.9); border-radius: var(--base-border-radius); padding: calc(var(--base-padding) * var(--scale-factor)) calc(15px * var(--scale-factor)); transition: all 0.3s ease-out; border: 1px solid rgba(80, 85, 95, 0.5); display: flex; align-items: center; } .info-panel-content { display: flex; align-items: center; padding: 0; width: 100%; justify-content: space-between; gap: 20px; /* Add gap for spacing when panel might shrink */ } /* Container for Time/Date and Money */ .info-items-container { display: flex; align-items: center; gap: 20px; /* Increased gap between Time/Date and Money */ } /* General style for each info item (Time/Date, Money) */ .info-item { display: flex; align-items: center; gap: calc(8px * var(--scale-factor)); color: #C5C8D1; font-size: calc(14px * var(--scale-factor)); font-weight: 500; } .info-item .info-icon { width: var(--base-icon-size); height: var(--base-icon-size); opacity: 0.7; margin: 0; } /* Container for Time and Date text */ .time-date-text { display: flex; flex-direction: column; /* Stack time and date */ line-height: 1.2; /* Adjust line height for stacked text */ } /* Specific text styles */ #InfoServerTime { font-weight: 600; /* Make time slightly bolder */ color: #EAECEF; /* Brighter white for time */ font-size: 14px; /* Slightly larger time */ } #InfoServerDate { color: #9098A8; /* Muted color for date */ font-size: 11px; /* Smaller date */ font-weight: 400; margin-left: 0; /* Reset margin */ } #InfoPlayerMoney { color: #B3D89C; /* Softer green for money */ font-weight: 600; font-size: 14px; /* Consistent font size */ margin-left: 0; /* Reset margin */ letter-spacing: 0.5px; /* Add slight spacing for currency */ } /* Notification Bell Area */ .notification-bell-container { position: relative; display: none; /* Hidden by default */ align-items: center; justify-content: center; margin: 0; flex-shrink: 0; opacity: 0; transition: opacity 0.3s ease, transform 0.2s ease; } .notification-bell-container.has-notifications { display: flex; /* Show when has notifications */ opacity: 1; /* Fade in when visible */ } .notification-bell { width: 22px; /* Slightly smaller bell */ height: 22px; color: #B0B8C5; /* Neutral bell color */ filter: none; /* Remove drop shadow */ transition: transform 0.2s ease, color 0.2s ease; cursor: pointer; } .notification-bell:hover { transform: scale(1.1); color: #FFFFFF; /* Brighten on hover */ } /* Notification Badge */ .notification-badge { position: absolute; top: -5px; /* Adjusted position */ right: -5px; /* Adjusted position */ background-color: #E53E3E; /* Solid red color */ color: #fff; border-radius: 50%; min-width: 16px; /* Slightly smaller badge */ height: 16px; padding: 0 4px; font-size: 10px; /* Smaller font */ display: flex; align-items: center; justify-content: center; font-weight: 700; border: 2px solid #14161C; /* Border matching the panel background */ letter-spacing: -0.5px; box-shadow: none; /* Remove shadow */ line-height: 1; box-sizing: border-box; pointer-events: none; } .info-items-container { display: flex; align-items: center; gap: 18px; } .info-item { display: flex; align-items: center; gap: 8px; /* Space between icon and text */ color: #C5C8D1; /* Softer white */ font-size: 14px; font-weight: 500; } .info-item .info-icon { width: 18px; /* Smaller icons */ height: 18px; opacity: 0.7; /* Slightly transparent icons */ margin: 0; /* Reset margin */ } .info-item span { /* Style the text part */ white-space: nowrap; /* Prevent wrapping */ } #InfoServerDate { color: #8A99B5; /* Distinct color for date */ font-weight: 500; margin-left: 0; /* Reset margin */ } #InfoPlayerMoney { color: #A8CC8C; /* Greenish color for money */ font-weight: 600; margin-left: 0; /* Reset margin */ font-size: 14px; /* Consistent font size */ } /* Ensure time-date-container is just a simple span container now if needed, or remove if redundant */ .time-date-container { /* Remove specific flex/justify properties if info-item handles layout */ display: contents; /* Let info-item handle the layout */ } .help-panel { position: absolute; top: 50%; left: 20px; transform: translateY(-50%); font-family: 'Geometria Regular'; font-size: 14px; color: #fff; text-shadow: 1px 1px 4px #000; } .help-line { margin-top: 5px; display: flex; align-items: center; } .help-line:first-child { margin-top: 0px; } .help-key { min-width: 20px; padding: 2px 4px; margin-right: 5px; background: rgba(0, 0, 0, 0.4); border-radius: 5px; text-transform: uppercase; text-align: center; } #minimapInfoPanel { position: absolute; } #bottomInfoPanel { position: fixed; bottom: 20px; left: 20px; } #playerCurrentZonePanel { background: rgba(20, 22, 28, 0.9); border-radius: 8px; padding: 6px 12px; border: 1px solid rgba(80, 85, 95, 0.5); font-family: Montserrat, sans-serif; } #playerCurrentZonePanel .yk-text { color: #C5C8D1; text-shadow: none; } #playerIcoStatusPanel { position: absolute; height: 120px; width: 180px; display: flex; align-items: flex-end; flex-wrap: wrap; } .playerico-status-block { position: relative; margin: 5px; width: 48px; height: 48px; border-radius: 50%; background: rgba(7, 16, 48, 0.5); } .playerico-status-block-ico { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); height: 30px; width: 30px; } .hud-quest-block { position: relative; padding: 14px 20px; background: linear-gradient(270deg, rgba(7, 16, 48, 0.62) 0%, rgba(7, 16, 48, 0.6) 60.94%, rgba(33, 39, 61, 0.53) 100%); border-radius: 9px; } .hud-quest-block:after { content: ''; position: absolute; height: 100%; width: 8px; top: 0px; right: 0px; background: linear-gradient(180deg, #FF9900 0%, #FF5C00 100%); border-radius: 0px 9px 9px 0px; } .hud-quest-block.purple:after { background: linear-gradient(180deg, #BD00FF 0%, #4B3FCF 100%); } .hud-quest-text { text-shadow: 1px 1px 0.5px rgba(0, 0, 0, 0.5); color: #fff; } .hud-timer-block { display: flex; align-items: center; padding: 14px; background: linear-gradient(270deg, rgba(7, 16, 48, 0.62) 0%, rgba(7, 16, 48, 0.6) 60.94%, rgba(33, 39, 61, 0.53) 100%); border-radius: 9px; } .hud-timer-text { font-family: Montserrat; font-style: normal; font-weight: bold; font-size: 18px; line-height: 22px; text-align: center; color: #FFFFFF; } #captureTimerBlock { position: absolute; top: -20px; right: calc(100% + 30px); width: 2000px; direction: rtl; } .hud-capture-timer-block { position: relative; display: inline-block; padding: 10px 20px; background: linear-gradient(180deg, rgba(57, 66, 118, 0.84) 0%, rgba(45, 65, 138, 0.21) 66.67%, rgba(45, 65, 138, 0) 100%); margin-left: 7px; text-align: center; opacity: 0; bottom: 100px; animation: 0.4s linear 0s 1 forwards hud-capture-timer-block-anim; } .hud-capture-timer-block-end { opacity: 1; bottom: 0px; animation: 0.4s linear 0s 1 forwards hud-capture-timer-block-anim-end; } .hud-capture-timer-block.red { background: linear-gradient(180deg, rgba(231, 0, 55, 0.79) 0%, rgba(255, 0, 0, 0.21) 57.81%, rgba(255, 0, 0, 0) 100%); } .hud-capture-timer-block:last-child { margin-left: 0px; } .hud-capture-timer-progress { position: absolute; top: 0; left: 0; width: 100%; height: 4px; background: rgba(0, 0, 0, 0.29); border-radius: 0px; } .hud-capture-timer-progress-value { position: absolute; top: 0; left: 0; height: 4px; background: rgba(255, 255, 255, 0.39); border-radius: 0px; transition: all 1s; } .d-flex { display: flex; } .d-flex.column { flex-direction: column; } .d-flex.wrap { flex-wrap: wrap; } .d-flex.center { align-items: center; justify-content: center; } .d-flex.center-align { align-items: center; } @font-face { font-family: 'Geometria Bold'; src: url('fonts/Geometria-Bold.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Geometria Medium'; src: url('fonts/Geometria-Medium.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Geometria Regular'; src: url('fonts/Geometria.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Geometria-Light'; src: url('fonts/Geometria-Light.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Geometria-ExtraLight'; src: url('fonts/Geometria-ExtraLight.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Helvetica Neue Bold'; src: url('fonts/HelveticaNeueCyr-Bold.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Helvetica Neue Medium'; src: url('fonts/HelveticaNeueCyr-Medium.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Helvetica Neue'; src: url('fonts/HelveticaNeueCyr-Thin.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Helvetica'; src: url('fonts/HelveticaNeueCyr-Thin.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Montserrat Regular'; src: url('fonts/Montserrat-Regular.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Gotham Pro Bold'; src: url('fonts/GothamPro-Bold.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Gotham Pro Light'; src: url('fonts/GothamPro-Light.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Determination Mono'; src: url('fonts/Determination-Mono.otf'); font-weight: normal; font-style: normal; } @font-face { font-family: Montserrat; src: url('fonts/Montserrat-Thin.ttf') format('truetype'); font-weight: 100; font-style: normal; } @font-face { font-family: Montserrat; src: url('fonts/Montserrat-ExtraLight.ttf') format('truetype'); font-weight: 200; font-style: normal; } @font-face { font-family: Montserrat; src: url('fonts/Montserrat-Light.ttf') format('truetype'); font-weight: 300; font-style: normal; } @font-face { font-family: Montserrat; src: url('fonts/Montserrat-Regular.ttf') format('truetype'); font-weight: 400; font-style: normal; } @font-face { font-family: Montserrat; src: url('fonts/Montserrat-Medium.ttf') format('truetype'); font-weight: 500; font-style: normal; } @font-face { font-family: Montserrat; src: url('fonts/Montserrat-SemiBold.ttf') format('truetype'); font-weight: 600; font-style: normal; } @font-face { font-family: Montserrat; src: url('fonts/Montserrat-Bold.ttf') format('truetype'); font-weight: 700; font-style: normal; } @font-face { font-family: Montserrat; src: url('fonts/Montserrat-ExtraBold.ttf') format('truetype'); font-weight: 800; font-style: normal; } @font-face { font-family: Montserrat; src: url('fonts/Montserrat-Black.ttf') format('truetype'); font-weight: 900; font-style: normal; } /* ЗАПРАВОЧНАЯ СТАНЦИЯ*/ /* ЗАПРАВОЧНАЯ СТАНЦИЯ*/ #ui-gas-station { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 650px; background: rgba(20, 22, 28, 0.9); border-radius: 12px; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.4); z-index: 1000; overflow: hidden; color: #e8e8f0; border: 1px solid rgba(80, 85, 95, 0.5); font-family: 'Montserrat', sans-serif; } .gas-station-header { display: flex; justify-content: space-between; align-items: center; padding: 14px 20px; background: rgba(28, 30, 45, 0.7); border-bottom: 1px solid rgba(80, 85, 95, 0.5); } .gas-station-header h2 { margin: 0; font-size: 16px; font-weight: 600; color: #ffffff; display: flex; align-items: center; gap: 8px; } .gas-station-header h2::before { content: '⛽'; font-size: 18px; } .gas-station-header .close-btn { background: rgba(255, 255, 255, 0.05); color: #b0b8c5; font-size: 16px; cursor: pointer; width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; border-radius: 4px; transition: all 0.2s ease; } .gas-station-header .close-btn:hover { background: rgba(255, 255, 255, 0.1); color: #ffffff; } .gas-station-content { padding: 20px; display: flex; gap: 16px; flex-direction: row; } .gas-station-left-column, .gas-station-right-column { flex: 1; display: flex; flex-direction: column; gap: 16px; max-width: 50%; } .vehicle-info-section, .fuel-price-section, .fuel-amount-section, .payment-method-section, .summary-section { background: rgba(28, 30, 45, 0.5); border-radius: 8px; padding: 16px; border: 1px solid rgba(80, 85, 95, 0.3); } .vehicle-info-section { border-left: 3px solid #7A92B6; } .fuel-price-section { border-left: 3px solid #7A92B6; } .fuel-amount-section { border-left: 3px solid #7A92B6; } .payment-method-section { border-left: 3px solid #7A92B6; } .summary-section { border-left: 3px solid #7A92B6; } .info-row { display: flex; align-items: center; margin-bottom: 8px; font-size: 14px; } .info-row:last-child { margin-bottom: 0; } .info-label { color: #a0a8c0; flex: 1; } .info-value { font-weight: 600; color: #ffffff; } .info-unit { color: #a0a8c0; margin-left: 3px; } .section-title { margin: 0 0 12px 0; font-size: 15px; font-weight: 600; color: #ffffff; padding-bottom: 6px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .fuel-amount-controls { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; } #fuel-amount-slider { flex: 1; height: 6px; border-radius: 3px; background: rgba(10, 11, 18, 0.5); outline: none; -webkit-appearance: none; appearance: none; position: relative; cursor: pointer; } #fuel-amount-slider::before { content: ''; position: absolute; top: 0; left: 0; height: 100%; width: var(--slider-percent, 0%); background: linear-gradient(90deg, #7A92B6, #A0A8C0); border-radius: 3px; } #fuel-amount-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 14px; height: 14px; border-radius: 50%; background: #ffffff; border: 2px solid #7A92B6; cursor: pointer; position: relative; z-index: 2; } #fuel-amount-slider::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: #ffffff; border: 2px solid #7A92B6; cursor: pointer; } .fuel-amount-display { display: flex; align-items: center; background: rgba(15, 16, 25, 0.5); border-radius: 4px; padding: 4px 8px; font-size: 14px; font-weight: 600; color: #fff; min-width: 70px; justify-content: flex-end; border: 1px solid rgba(80, 85, 95, 0.3); } #fuel-amount-input { width: 40px; padding: 2px; border: none; background-color: transparent; color: #ffffff; text-align: right; font-weight: 600; font-size: 14px; outline: none; } #fuel-amount-input[type=number]::-webkit-outer-spin-button, #fuel-amount-input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } .fuel-amount-unit { margin-left: 3px; color: #a0a8c0; } .fuel-amount-buttons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; } .fuel-amount-buttons button { padding: 8px 0; background: rgba(40, 42, 60, 0.5); border: 1px solid rgba(80, 85, 95, 0.3); border-radius: 4px; color: #c8cedc; font-weight: 500; cursor: pointer; transition: all 0.2s ease; font-size: 13px; } .fuel-amount-buttons button:hover { background: rgba(60, 62, 80, 0.7); color: #ffffff; } .payment-options { display: flex; flex-direction: column; gap: 10px; } .payment-option { display: flex; align-items: center; padding: 10px 12px; background: rgba(40, 42, 60, 0.5); border: 1px solid rgba(80, 85, 95, 0.3); border-radius: 6px; cursor: pointer; transition: all 0.2s ease; } .payment-option:hover { background: rgba(50, 52, 70, 0.7); } .payment-option.active { background: rgba(60, 62, 80, 0.7); border: 1px solid #7A92B6; } .payment-option-icon { font-size: 18px; margin-right: 12px; color: #c0c8dc; width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; } .payment-option.active .payment-option-icon { color: #ffffff; } .payment-option-name { font-size: 14px; font-weight: 500; flex: 1; color: #e8e8f0; } .summary-row { display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 14px; } .summary-label { color: #a0a8c0; } .summary-value { font-weight: 600; color: #ffffff; } .summary-unit { color: #a0a8c0; margin-left: 3px; } .discount-row .summary-value { color: #7bed9f; font-weight: 600; } .total-row { margin-top: 12px; padding-top: 10px; border-top: 1px solid rgba(255, 255, 255, 0.15); } .total-row .summary-label, .total-row .summary-value { font-size: 15px; font-weight: 700; color: #ffffff; } .action-buttons { display: flex; gap: 12px; margin-top: 16px; } .cancel-btn, .pay-btn { flex: 1; padding: 10px 0; border-radius: 6px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; font-size: 14px; border: none; } .cancel-btn { background: rgba(50, 52, 70, 0.7); border: 1px solid rgba(80, 85, 95, 0.3); color: #aab2c0; } .cancel-btn:hover { background: rgba(65, 67, 85, 0.9); color: #ffffff; } .pay-btn { background: #7A92B6; color: white; } .pay-btn:hover { background: #8AA2C6; } /*ШТРАФЫ В БАНКЕ*/ .pdd-item { display: flex; justify-content: space-between; align-items: center; background-color: rgba(40, 40, 40, 0.7); border-left: 3px solid #e74c3c; border-radius: 4px; padding: 14px 16px; margin-bottom: 12px; transition: all 0.2s ease; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .pdd-item:hover { background-color: rgba(50, 50, 50, 0.8); transform: translateY(-2px); } .pdd-reason { font-size: 14px; font-weight: 400; color: #f5f5f5; margin-bottom: 6px; line-height: 1.4; } .pdd-amount { font-size: 15px; font-weight: 600; color: #e74c3c; } .pdd-pay-btn { background-color: transparent; color: #3498db; border: 1px solid #3498db; border-radius: 4px; padding: 6px 12px; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.2s ease; min-width: 80px; text-align: center; } .pdd-pay-btn:hover { background-color: #3498db; color: white; } .pdd-no-fines { text-align: center; padding: 24px 16px; color: #7bed9f; font-size: 15px; font-weight: 500; background-color: rgba(40, 40, 40, 0.5); border-radius: 6px; margin: 10px 0; border-left: 3px solid #7bed9f; } #pdd-fines-list { max-height: 320px; overflow-y: auto; padding-right: 8px; margin-bottom: 10px; } #pdd-fines-list::-webkit-scrollbar { width: 4px; } #pdd-fines-list::-webkit-scrollbar-track { background: rgba(30, 30, 30, 0.3); border-radius: 10px; } #pdd-fines-list::-webkit-scrollbar-thumb { background: rgba(100, 100, 100, 0.5); border-radius: 10px; } #pdd-fines-list::-webkit-scrollbar-thumb:hover { background: rgba(120, 120, 120, 0.7); } .pdd-section-title { font-size: 16px; font-weight: 600; color: #f5f5f5; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } /*РАБОТЫ*/ .job-interface { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 900px; max-width: 90vw; max-height: 85vh; background-color: rgba(15, 15, 20, 0.95); border-radius: 16px; overflow: hidden; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5); z-index: 1000; backdrop-filter: blur(15px); border: 1px solid rgba(255, 255, 255, 0.1); display: flex; flex-direction: column; } .job-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 300px; } .job-loading-spinner { width: 40px; height: 40px; border: 4px solid rgba(255, 255, 255, 0.1); border-radius: 50%; border-top-color: var(--job-accent-color); animation: spin 1s ease-in-out infinite; margin-bottom: 16px; } @keyframes spin { to { transform: rotate(360deg); } } .job-loading-text { color: rgba(255, 255, 255, 0.7); font-size: 16px; }