html, body { padding: 0; margin: 0; height: 100vh; width: 100vw; font-family: var(--font); user-select: none; overflow: hidden; } *::-webkit-scrollbar { width: 5px; } *::-webkit-scrollbar-track { background: var(--white-1); border-radius: 5px; } *::-webkit-scrollbar-thumb { background: white; border-radius: 5px; } .background { display: none; height: 100vh; width: 100vw; background: var(--panel-9); align-items: center; justify-content: center; } .background.is-open { display: flex; } .container { display: flex; align-items: stretch; justify-content: space-between; height: 766px; } .garage-card { position: relative; display: flex; flex-direction: column; width: 300px; height: 766px; border-radius: 4px; box-shadow: 0 0 0 1px var(--white-1); background: var(--black-5); padding: 20px 35px 0; box-sizing: border-box; flex-shrink: 0; overflow: hidden; } .garage-grid { --grid-cols: 4; --grid-card-w: 250px; --grid-gap: 15px; --scrollbar-w: 8px; --grid-width: calc( (var(--grid-card-w) * var(--grid-cols)) + (var(--grid-gap) * (var(--grid-cols) - 1)) ); display: flex; flex-direction: column; justify-content: flex-start; margin-left: 35px; height: 766px; width: calc(var(--grid-width) + var(--scrollbar-w)); max-width: calc(92vw - 335px); box-sizing: border-box; } .garage-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 20px; width: var(--grid-width); max-width: 100%; box-sizing: border-box; } .garage-header-left { display: flex; align-items: center; gap: 8px; min-width: 0; } .garage-name { color: var(--white); font-size: 20px; font-weight: 700; margin: 0; white-space: nowrap; } .icon-back { display: flex; align-items: center; justify-content: center; width: 40px; height: 32px; padding: 7px 8px; border-radius: 5px; background: var(--accent); box-sizing: border-box; flex-shrink: 0; } .garage-tabs { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex: 1; min-width: 0; flex-wrap: nowrap; overflow: hidden; } .garage-tab { all: unset; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 10px; border-radius: 3px; background: var(--black-5); color: var(--white-4); font-size: 13px; font-weight: 700; text-transform: uppercase; transition: all 0.2s ease; box-sizing: border-box; } .garage-tab:hover:not(.active):not(.is-disabled) { color: var(--white-6); } .garage-tab.active { background: var(--accent); color: var(--white); } .garage-tab.is-disabled { opacity: 0.35; pointer-events: none; } .grid-cards { display: grid; width: 100%; box-sizing: border-box; overflow-x: hidden; overflow-y: scroll; flex: 1; min-height: 0; align-content: start; grid-template-columns: repeat(var(--grid-cols), var(--grid-card-w)); gap: var(--grid-gap); padding-right: 0; justify-content: start; scrollbar-width: thin; scrollbar-color: var(--white-9) var(--white-1); } .grid-cards::-webkit-scrollbar { width: 5px; } .grid-cards::-webkit-scrollbar-track { background: var(--white-1); border-radius: 5px; } .grid-cards::-webkit-scrollbar-thumb { background: white; border-radius: 5px; } .grid-card-container { background: var(--black-5); border-radius: 4px; width: 250px; height: 200px; box-sizing: border-box; position: relative; overflow: hidden; box-shadow: inset 0 0 0 1px var(--white-2); } .grid-card-container.is-vehicle { cursor: pointer; } .grid-card-container.is-selected { box-shadow: inset 0 0 0 1px var(--accent); } .grid-card-container.is-empty { display: flex; align-items: center; justify-content: center; background: var(--black-3); } .grid-card-container.is-empty.is-blocked { background: var(--black-5); } .grid-card-container.is-empty .empty-slot { color: var(--white-4); font-size: 13px; font-weight: 700; text-transform: uppercase; } .grid-card { height: 100%; padding: 10px; box-sizing: border-box; position: relative; display: flex; flex-direction: column; } .grid-card.is-dimmed { opacity: 0.45; } .grid-card.is-dimmed .title, .grid-card.is-dimmed .subtitle { color: var(--white-4); } .grid-card .title { color: var(--white); font-weight: 800; font-size: 15px; height: 20px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex-shrink: 0; } .grid-card .subtitle { color: var(--white-7); font-size: 10px; margin-top: 2px; flex-shrink: 0; } .grid-card .car { position: relative; width: 150px; height: 85px; transform: scale(3); z-index: 0; margin: auto; display: block; object-fit: contain; pointer-events: none; } .grid-card .car[src*="no_vehicle"] { width: 87px; height: 87px; transform: scale(1); } .ribbon { position: absolute; top: 16px; right: -30px; width: 110px; padding: 4px 0; background: var(--accent); color: var(--white); font-size: 11px; font-weight: 700; text-transform: uppercase; text-align: center; transform: rotate(45deg); z-index: 2; pointer-events: none; } .favorite { position: absolute; right: 10px; top: 31px; z-index: 2; display: flex; align-items: center; justify-content: center; width: 15px; height: 14px; cursor: pointer; } .favorite svg path { fill: var(--white-5); } .car-name { display: flex; width: 100%; height: 34px; min-height: 34px; justify-content: center; align-items: center; gap: 10px; border-radius: 4px; background: var(--accent); color: var(--white); font-size: 14px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; box-sizing: border-box; padding: 10px; flex-shrink: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .car-image { width: 200px; height: 113px; display: flex; align-items: center; justify-content: center; margin: 23px auto; flex-shrink: 0; overflow: visible; } .car-image img { width: 300px; height: 300px; object-fit: contain; pointer-events: none; } .car-image img[src*="no_vehicle"] { width: 100px; height: 100px; } .badges-row { display: flex; gap: 5px; align-items: center; margin-bottom: 28px; flex-shrink: 0; } .badge { height: 21px; display: inline-flex; align-items: center; justify-content: center; gap: 3px; border-radius: 5px; padding: 4px 9px; color: var(--white); font-weight: 700; font-size: 11px; box-sizing: border-box; } .badge-primary { text-transform: uppercase; background: var(--accent); padding: 4px 12px; } .badge-ghost { background: var(--white-4); min-width: 25px; padding: 4px 9px; } .badge-chest { background: var(--accent); padding: 4px 5px; margin-left: auto; } .badge-chest .chest-count { font-weight: 700; font-size: 11px; } .stats { display: flex; flex-direction: column; gap: 16px; margin-bottom: 30px; flex-shrink: 0; } .stat-row { display: flex; align-items: center; justify-content: space-between; height: 14px; } .stat-percentage-container { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; width: 124px; } .stat-label { color: var(--white); font-weight: 600; font-size: 14px; letter-spacing: 2.24px; text-transform: uppercase; } .stat-bar { width: 100%; height: 5px; background: var(--white-1); border-radius: 5px; position: relative; overflow: hidden; } .stat-fill { display: block; height: 5px; background: var(--accent); border-radius: 5px; } .stat-percent { color: var(--white-5); font-size: 10px; font-weight: 600; text-transform: uppercase; } .buttons { display: flex; flex-direction: column; gap: 8px; margin: 0; flex-shrink: 0; width: 100%; } .btn { all: unset; font-family: var(--font); width: 100%; height: 40px; border-radius: 6px; box-shadow: 0 0 0 1px var(--white-1); background: var(--white-1); color: var(--white-4); font-size: 12px; font-weight: 700; text-transform: uppercase; display: inline-flex; align-items: center; justify-content: center; gap: 10px; cursor: pointer; transition: all 0.2s ease; box-sizing: border-box; } .btn:not(.btn-primary):not(.is-disabled):hover { background: var(--white-1); color: var(--white-6); } .btn-primary:not(.is-disabled):hover { background: var(--accent-10); } .btn-primary { background: var(--accent); color: var(--white); box-shadow: 0 0 15px var(--accent-2); } .btn-primary:not(.is-disabled) svg path { fill: var(--white); fill-opacity: 1; stroke: var(--white); stroke-opacity: 1; } .btn.is-disabled { opacity: 0.35; pointer-events: none; cursor: inherit; background: var(--white-1); color: var(--white-4); box-shadow: 0 0 0 1px var(--white-1); } .expiry-note { position: relative; flex-shrink: 0; margin-top: 16px; min-height: 8px; line-height: 8px; text-align: center; font-family: var(--font); font-weight: 400; font-size: 11px; color: var(--white-7); text-transform: uppercase; white-space: nowrap; visibility: hidden; } .expiry-note.is-visible { visibility: visible; } @media (max-width: 1400px) { .container { zoom: 0.6; } } /* --------------------------------------------------------------------------- GARAGEM BLINDADA :: MODAL DE GERENCIAMENTO DE ACESSO --------------------------------------------------------------------------- */ .btn-manage svg { flex-shrink: 0; } .manage-overlay { display: none; position: absolute; inset: 0; background: var(--black-8); z-index: 50; align-items: center; justify-content: center; } .manage-overlay.is-open { display: flex; } .manage-modal { width: 460px; max-height: 82vh; display: flex; flex-direction: column; background: var(--panel-10); border-radius: 6px; padding: 22px; box-sizing: border-box; box-shadow: 0 0 0 1px var(--white-2), 0 20px 60px var(--black-8); } .manage-head { display: flex; align-items: flex-start; justify-content: space-between; } .manage-title { margin: 0; font-size: 16px; font-weight: 700; color: var(--white); letter-spacing: 0.5px; } .manage-subtitle { margin: 4px 0 0; font-size: 11px; color: var(--white-6); text-transform: uppercase; letter-spacing: 1px; } .manage-close { cursor: pointer; color: var(--white-7); font-size: 16px; line-height: 1; padding: 4px; transition: color 0.15s ease; } .manage-close:hover { color: var(--white); } .manage-instructions { margin: 16px 0 0; font-size: 12px; line-height: 1.5; color: var(--white-8); } .manage-instructions b { color: var(--white); } .manage-capacity { margin-top: 14px; font-size: 12px; color: var(--white-9); background: var(--white-1); padding: 8px 12px; border-radius: 4px; } .manage-capacity span { color: var(--white); font-weight: 700; } .manage-search-wrap { position: relative; margin-top: 16px; } .manage-input { width: 100%; box-sizing: border-box; background: var(--white-1); border: none; border-radius: 4px; padding: 11px 14px; color: var(--white); font-family: var(--font); font-size: 13px; outline: none; box-shadow: 0 0 0 1px var(--white-2); } .manage-input::placeholder { color: var(--white-5); } .manage-results { display: none; position: absolute; top: calc(100% + 6px); left: 0; width: 100%; max-height: 240px; overflow-y: scroll; overflow-x: hidden; background: var(--bg-4); border-radius: 4px; z-index: 5; box-shadow: 0 0 0 1px var(--white-2); scrollbar-width: thin; scrollbar-color: var(--white-9) var(--white-1); } .manage-results::-webkit-scrollbar { width: 5px; } .manage-results::-webkit-scrollbar-track { background: var(--white-1); border-radius: 5px; } .manage-results::-webkit-scrollbar-thumb { background: white; border-radius: 5px; } .manage-results.is-open { display: block; } .manage-result, .manage-row { display: flex; align-items: center; gap: 12px; padding: 10px 12px; } .manage-result { cursor: pointer; transition: background 0.15s ease; } .manage-result:hover { background: var(--white-1); } .manage-avatar { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; flex-shrink: 0; background: var(--white-2); display: flex; align-items: center; justify-content: center; color: var(--white); font-weight: 700; font-size: 15px; } .manage-avatar.is-empty { background: var(--white-2); } .manage-row-info { flex: 1; min-width: 0; } .manage-row-name { font-size: 13px; color: var(--white); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .manage-row-id { font-size: 11px; color: var(--white-6); margin-top: 2px; } .manage-add, .manage-remove { cursor: pointer; font-size: 10px; font-weight: 700; letter-spacing: 0.5px; padding: 6px 10px; border-radius: 4px; flex-shrink: 0; transition: background 0.15s ease, color 0.15s ease; } .manage-add { background: var(--success-3); color: var(--text-4); } .manage-add:hover { background: var(--success-5); } .manage-remove { background: var(--accent-2); color: var(--text-4); } .manage-remove:hover { background: var(--accent-5); } .manage-section-title { margin: 20px 0 10px; font-size: 11px; letter-spacing: 1px; color: var(--white-6); text-transform: uppercase; } .manage-allowed { --manage-row-size: 60px; --manage-row-gap: 6px; --manage-visible-rows: 3; --manage-list-height: calc( var(--manage-row-size) * var(--manage-visible-rows) + var(--manage-row-gap) * (var(--manage-visible-rows) - 1) ); min-height: var(--manage-list-height); max-height: var(--manage-list-height); overflow-y: scroll; overflow-x: hidden; display: flex; flex-direction: column; gap: var(--manage-row-gap); padding-right: 6px; scrollbar-width: thin; scrollbar-color: var(--white-9) var(--white-1); } .manage-allowed::-webkit-scrollbar { width: 5px; } .manage-allowed::-webkit-scrollbar-track { background: var(--white-1); border-radius: 5px; } .manage-allowed::-webkit-scrollbar-thumb { background: white; border-radius: 5px; } .manage-allowed::-webkit-scrollbar-thumb:hover { background: var(--white-9); } .manage-row { background: var(--white-1); border-radius: 4px; flex-shrink: 0; } .manage-row.is-manager { background: var(--warning-2); box-shadow: 0 0 0 1px var(--warning-4); } .manage-badge { color: var(--warning-10); font-weight: 700; text-transform: uppercase; letter-spacing: 0.4px; } .manage-crown { flex-shrink: 0; filter: drop-shadow(0 0 4px var(--warning-6)); } .manage-empty { font-size: 12px; color: var(--white-6); padding: 14px; text-align: center; flex: 1; display: flex; align-items: center; justify-content: center; }