1235 lines
30 KiB
CSS
1235 lines
30 KiB
CSS
/* Eurostyle Example */
|
|
/* @font-face {
|
|
font-family: 'Eurostile Becker Heavy';
|
|
src: url('fonts/EurostileBeckerHeavy.ttf') format('truetype');
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
}
|
|
|
|
body {
|
|
font-family: 'Eurostile Becker Heavy', sans-serif;
|
|
font-size: 13px;
|
|
overflow: hidden;
|
|
} */
|
|
|
|
/* AVENIR Example */
|
|
/* @font-face {
|
|
font-family: 'Avenir Regular';
|
|
src: url('fonts/AvenirRegular.ttf') format('truetype');
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
}
|
|
|
|
body {
|
|
font-family: 'Avenir Regular', sans-serif;
|
|
font-size: 13px;
|
|
overflow: hidden;
|
|
} */
|
|
|
|
/* A default font */
|
|
body {
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
|
font-size: 13px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
/* Here you can configure UI in the root */
|
|
:root {
|
|
/* Overwrite Bootstrap */
|
|
--bs-body-bg: transparent;
|
|
|
|
/* Interaction & Callout UI Background settings */
|
|
--interaction-bg-color: rgba(0, 0, 0, 0.5);
|
|
--interaction-box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.5);
|
|
|
|
/* Dispatch alert message when toggled dispatch messages */
|
|
--dispatch-icon-right: 20px;
|
|
--dispatch-icon-bottom: 20px;
|
|
|
|
/* Radial Menu Calculation */
|
|
--total-items: 9; /* Total number of items in the circle */
|
|
--angle: calc(360deg / var(--total-items)); /* Angle between items */
|
|
--radius: 15em; /* Distance from the center */
|
|
|
|
/* Pursuit Radial Menu */
|
|
--pursuit-total-items: 5; /* Total number of items in the circle */
|
|
--pursuit-angle: calc(360deg / var(--pursuit-total-items)); /* Angle between items */
|
|
--pursuit-radius: 10em; /* Distance from the center */
|
|
|
|
/* Dispatch Message Prompt Positioning */
|
|
--dispatch-message-prompt-x: 20px;
|
|
--dispatch-message-prompt-y: 20px;
|
|
|
|
/* Hint Prompt Positioning */
|
|
--hint-prompt-x: 20px;
|
|
--hint-prompt-y: 20px;
|
|
|
|
/* Prompt Positioning */
|
|
--prompt-default-x: 75%;
|
|
--prompt-default-y: 50%;
|
|
|
|
/* Callout Interface Positioning */
|
|
--callout-interface-x: 20px;
|
|
--callout-interface-y: 50%;
|
|
|
|
/* Interaction Module Positioning */
|
|
--module-default-x: 75%;
|
|
--module-default-y: 50%;
|
|
|
|
/* Zone Change Positioning */
|
|
--zone-change-x: 50%;
|
|
--zone-change-y: 25%;
|
|
|
|
/* Menu Positioning */
|
|
--menu-default-x: 50%;
|
|
--menu-default-y: 50%;
|
|
|
|
/* Callout Prompt Positioning */
|
|
--callout-prompt-x: 50%;
|
|
--callout-prompt-y: 20px;
|
|
|
|
/* Ped Details Prompt Positioning */
|
|
--ped-details-prompt-x: 25%;
|
|
--ped-details-prompt-y: 50%;
|
|
|
|
/* Dual Steering Mode Prompt Positioning */
|
|
--dual-steering-mode-prompt-x: 20px;
|
|
--dual-steering-mode-prompt-y: 20px;
|
|
}
|
|
|
|
/* Microtext */
|
|
|
|
.microtext {
|
|
font-size: 12px;
|
|
}
|
|
|
|
.microtext-11 {
|
|
font-size: 11px;
|
|
}
|
|
|
|
/* Card adjustments */
|
|
.card:hover {
|
|
filter: brightness(1.2); /* Adjust brightness as desired */
|
|
transition: filter 0.3s ease;
|
|
}
|
|
|
|
.card-flash {
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.card-flash::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: -50%;
|
|
left: -150%;
|
|
width: 10px;
|
|
height: 200%;
|
|
background: linear-gradient(to right, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 1), rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.2)); /* Adjusted gradient for softer edges */
|
|
transform: rotate(45deg);
|
|
transition: left 1.5s ease-in-out, opacity 1.5s ease-in-out, box-shadow 0.5s ease-in-out; /* Fine-tuned transition durations */
|
|
opacity: 0;
|
|
box-shadow: 0 0 1px 1px rgba(255, 255, 255, 0); /* Adjusted initial box-shadow for a subtle glow effect */
|
|
}
|
|
|
|
.card-flash:hover::before {
|
|
left: 150%;
|
|
opacity: 1;
|
|
box-shadow: 0 0 10px 5px rgba(255, 255, 255, 0.8); /* Adjusted box-shadow properties for a stronger glow effect */
|
|
}
|
|
|
|
/* Prompts */
|
|
|
|
#ers-selection-menu {
|
|
position: absolute;
|
|
left: var(--menu-default-x, 50%);
|
|
top: var(--menu-default-y, 50%);
|
|
transform: translate(-50%, -50%);
|
|
z-index: 1;
|
|
opacity: 0;
|
|
animation: fadeIn 1s ease forwards;
|
|
}
|
|
|
|
.logo {
|
|
width: 36px;
|
|
height: 36px;
|
|
margin: 0 5px; /* Adjust spacing between logos if needed */
|
|
}
|
|
|
|
#hint-prompt-container {
|
|
position: absolute;
|
|
right: var(--hint-prompt-x, 20px);
|
|
top: var(--hint-prompt-y, 20px);
|
|
z-index: 1;
|
|
}
|
|
|
|
#callout-prompt-container {
|
|
position: absolute;
|
|
left: var(--callout-prompt-x, 50%);
|
|
top: var(--callout-prompt-y, 20px);
|
|
transform: translateX(-50%);
|
|
z-index: 1;
|
|
opacity: 0;
|
|
animation: fadeIn 0.25s ease forwards;
|
|
}
|
|
|
|
#callout-prompt-container.draggable {
|
|
user-select: none;
|
|
transition: none; /* Disable transitions during drag */
|
|
}
|
|
|
|
#callout-prompt-container.draggable:hover {
|
|
opacity: 0.9;
|
|
}
|
|
|
|
#callout-interface-container,
|
|
#callout-pre-interface-container {
|
|
position: absolute;
|
|
left: var(--callout-interface-x, 20px);
|
|
top: var(--callout-interface-y, 50%);
|
|
transform: translateY(-50%);
|
|
z-index: 1;
|
|
border-radius: 10px;
|
|
background-color: var(--interaction-bg-color);
|
|
box-shadow: var(--interaction-box-shadow);
|
|
padding: 15px;
|
|
transition: opacity 0.25s ease-out;
|
|
}
|
|
|
|
.hint {
|
|
position: absolute;
|
|
margin: 5px;
|
|
bottom: 5px; /* Position hint at the bottom of the container */
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
font-size: 0.70rem;
|
|
color: #afafafa2;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
#dispatch-message-prompt-container {
|
|
position: absolute;
|
|
right: var(--dispatch-message-prompt-x, 20px);
|
|
bottom: var(--dispatch-message-prompt-y, 20px);
|
|
z-index: 1;
|
|
}
|
|
|
|
@keyframes fadeIn {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
#unified-prompt {
|
|
position: absolute;
|
|
left: var(--prompt-default-x, 75%);
|
|
top: var(--prompt-default-y, 50%);
|
|
transform: translate(-50%, -50%);
|
|
z-index: 1;
|
|
opacity: 0;
|
|
animation: fadeIn 0.25s ease forwards;
|
|
background-color: var(--interaction-bg-color);
|
|
box-shadow: var(--interaction-box-shadow);
|
|
border-radius: 10px;
|
|
padding: 10px;
|
|
}
|
|
|
|
#ped-interaction-module {
|
|
position: absolute;
|
|
left: var(--module-default-x, 75%);
|
|
top: var(--module-default-y, 50%);
|
|
transform: translate(-50%, -50%);
|
|
z-index: 1;
|
|
opacity: 0;
|
|
animation: fadeIn 0.25s ease forwards;
|
|
background-color: var(--interaction-bg-color);
|
|
box-shadow: var(--interaction-box-shadow);
|
|
border-radius: 10px;
|
|
padding: 15px;
|
|
}
|
|
|
|
#ped-interaction-id-card, #ped-interaction-inventory, #vehicle-info {
|
|
position: absolute;
|
|
left: var(--ped-details-prompt-x, 25%);
|
|
top: var(--ped-details-prompt-y, 50%);
|
|
transform: translate(-50%, -50%);
|
|
z-index: 1;
|
|
opacity: 0;
|
|
animation: fadeIn 0.25s ease forwards;
|
|
}
|
|
|
|
.spinner-wrapper {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: center;
|
|
height: 100%;
|
|
text-align: center;
|
|
padding: 20px;
|
|
}
|
|
|
|
.spinner {
|
|
border: 4px solid rgba(255, 255, 255, 0.3);
|
|
border-radius: 50%;
|
|
border-top: 4px solid #ffc107;
|
|
width: 40px;
|
|
height: 40px;
|
|
animation: spin 1s linear infinite;
|
|
margin-bottom: 15px;
|
|
}
|
|
|
|
@keyframes spin {
|
|
0% { transform: rotate(0deg); }
|
|
100% { transform: rotate(360deg); }
|
|
}
|
|
|
|
/* Waypoint */
|
|
|
|
.waypoint {
|
|
top: -1000;
|
|
left: 0;
|
|
position: absolute;
|
|
display: flex;
|
|
row-gap: 5px;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 25px;
|
|
transition: 0.1s;
|
|
}
|
|
|
|
/* Zone change */
|
|
|
|
#zone-change-ui {
|
|
position: absolute;
|
|
left: var(--zone-change-x, 50%);
|
|
top: var(--zone-change-y, 25%);
|
|
transform: translate(-50%, -50%);
|
|
z-index: 1;
|
|
text-align: center;
|
|
font-family: inherit;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
transition: opacity 1s ease-in-out, visibility 1s ease-in-out;
|
|
}
|
|
|
|
#zone-change-ui.show {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
}
|
|
|
|
#zone-change-ui h3 {
|
|
font-size: 1.5em;
|
|
margin-bottom: 0.5em;
|
|
}
|
|
|
|
#zone-change-ui p {
|
|
font-size: 1.2em;
|
|
margin: 0;
|
|
}
|
|
|
|
.new-zone {
|
|
font-size: 2.5em;
|
|
font-weight: bold;
|
|
text-decoration: underline;
|
|
position: relative;
|
|
display: inline-block;
|
|
background: linear-gradient(to right, rgba(255,255,255,0.7), rgba(255,255,255,0.9));
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
color: transparent;
|
|
opacity: 0;
|
|
transform: translateY(20px);
|
|
transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
|
|
}
|
|
|
|
.new-zone.show {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.new-zone::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: -5px;
|
|
left: -5px;
|
|
right: -5px;
|
|
bottom: -5px;
|
|
background: radial-gradient(ellipse at center, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 70%);
|
|
filter: blur(8px);
|
|
z-index: -1;
|
|
}
|
|
|
|
.old-zone {
|
|
opacity: 0.7;
|
|
color: rgba(255,255,255,0.7);
|
|
font-size: 1.2em;
|
|
}
|
|
|
|
.zone-arrow {
|
|
margin: 0 0.5em;
|
|
font-size: 1.5em;
|
|
color:#ffbf00;
|
|
}
|
|
|
|
/* Unit waypoint */
|
|
|
|
.unit-waypoint-container {
|
|
position: absolute; /* Ensure the container is positioned absolutely */
|
|
transform: translate(-50%, -50%); /* Center the waypoint if needed */
|
|
}
|
|
|
|
.unit-waypoint-container.smooth-transition {
|
|
transition: left 0.5s ease, top 0.5s ease; /* Adjust the duration and easing as needed */
|
|
}
|
|
|
|
.unit-waypoint {
|
|
top: -1000;
|
|
left: 0;
|
|
position: absolute;
|
|
display: flex;
|
|
row-gap: 5px;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 25px;
|
|
}
|
|
|
|
.unit-waypoint-distance {
|
|
font-size: 13px;
|
|
color: rgb(72, 255, 0);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.unit-waypoint-distance-text {
|
|
font-size: 11px;
|
|
color: rgb(255, 255, 255);
|
|
font-weight: 700;
|
|
font-family: -apple-system,system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
|
|
}
|
|
|
|
/* Radial menu */
|
|
|
|
.circle-menu li {
|
|
list-style: none;
|
|
display: inline;
|
|
}
|
|
|
|
.circle-menu {
|
|
position: fixed;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
width: 24em;
|
|
height: 24em;
|
|
border-radius: 50%;
|
|
z-index: 999;
|
|
opacity: 0;
|
|
animation: fadeIn 0.25s ease forwards;
|
|
font-size: 16px !important;
|
|
}
|
|
|
|
.circle-menu a {
|
|
display: block;
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
width: 8em; height: 8em;
|
|
line-height:8em;
|
|
margin: -3.5em;
|
|
-moz-border-radius: 4em;
|
|
-webkit-border-radius: 4em;
|
|
border-radius: 4em;
|
|
text-align: center;
|
|
text-decoration: none;
|
|
color: white;
|
|
box-sizing: border-box;
|
|
border: inset rgba(0, 0, 0, 0.5) 1px;
|
|
background-color: rgba(0, 0, 0, 0.5);
|
|
opacity: 0.8;
|
|
transition: opacity 0.3s ease;
|
|
}
|
|
|
|
.circle-menu a i {
|
|
font-size: 20px;
|
|
}
|
|
|
|
.circle-menu a:hover i {
|
|
font-size: 30px; /* Adjust the size as needed */
|
|
transition: font-size 0.3s ease;
|
|
}
|
|
|
|
.circle-menu a:hover {
|
|
background-color: rgba(0, 0, 0, 0.9);
|
|
opacity: 0.9;
|
|
pointer-events: auto;
|
|
cursor: pointer;
|
|
transition: opacity 0.5s ease;
|
|
transition: background-color 0.5s ease;
|
|
animation: fillCircle 0.5s forwards;
|
|
}
|
|
|
|
@keyframes fillCircle {
|
|
0% {
|
|
box-shadow: 0 0 0px 0px rgba(255, 255, 255, 0.8);
|
|
}
|
|
100% {
|
|
box-shadow: 0 0 10px 5px rgba(255, 255, 255, 0.8);
|
|
}
|
|
}
|
|
|
|
.circle-menu a.animal-rescue-request:hover i {
|
|
color: #9bde00;
|
|
}
|
|
|
|
.circle-menu a.coroner-request:hover i {
|
|
color: #3D3D3D;
|
|
}
|
|
|
|
.circle-menu a.road-service-request:hover i {
|
|
color: #ffbf00;
|
|
}
|
|
|
|
.circle-menu a.taxi-request:hover i {
|
|
color: #FF9A18;
|
|
}
|
|
|
|
.circle-menu a.ambulance-request:hover i {
|
|
color: #ff0000;
|
|
}
|
|
|
|
.circle-menu a.tow-request:hover i {
|
|
color: #782323;
|
|
}
|
|
|
|
.circle-menu a.police-transport:hover i {
|
|
color: #0057b9;
|
|
}
|
|
|
|
.circle-menu a.mechanic-request:hover i {
|
|
color: #CFCFCF;
|
|
}
|
|
|
|
.circle-menu a.fire-request:hover i {
|
|
color: #3b0000;
|
|
}
|
|
|
|
.circle-menu .animal-rescue-request {
|
|
transform: rotate(calc(1 * var(--angle))) translate(var(--radius)) rotate(calc(-1 * var(--angle)));
|
|
-webkit-transform: rotate(calc(1 * var(--angle))) translate(var(--radius)) rotate(calc(-1 * var(--angle)));
|
|
-ms-transform: rotate(calc(1 * var(--angle))) translate(var(--radius)) rotate(calc(-1 * var(--angle)));
|
|
}
|
|
.circle-menu .coroner-request {
|
|
transform: rotate(calc(2 * var(--angle))) translate(var(--radius)) rotate(calc(-2 * var(--angle)));
|
|
-webkit-transform: rotate(calc(2 * var(--angle))) translate(var(--radius)) rotate(calc(-2 * var(--angle)));
|
|
-ms-transform: rotate(calc(2 * var(--angle))) translate(var(--radius)) rotate(calc(-2 * var(--angle)));
|
|
}
|
|
.circle-menu .road-service-request {
|
|
transform: rotate(calc(3 * var(--angle))) translate(var(--radius)) rotate(calc(-3 * var(--angle)));
|
|
-webkit-transform: rotate(calc(3 * var(--angle))) translate(var(--radius)) rotate(calc(-3 * var(--angle)));
|
|
-ms-transform: rotate(calc(3 * var(--angle))) translate(var(--radius)) rotate(calc(-3 * var(--angle)));
|
|
}
|
|
.circle-menu .taxi-request {
|
|
transform: rotate(calc(4 * var(--angle))) translate(var(--radius)) rotate(calc(-4 * var(--angle)));
|
|
-webkit-transform: rotate(calc(4 * var(--angle))) translate(var(--radius)) rotate(calc(-4 * var(--angle)));
|
|
-ms-transform: rotate(calc(4 * var(--angle))) translate(var(--radius)) rotate(calc(-4 * var(--angle)));
|
|
}
|
|
.circle-menu .ambulance-request {
|
|
transform: rotate(calc(5 * var(--angle))) translate(var(--radius)) rotate(calc(-5 * var(--angle)));
|
|
-webkit-transform: rotate(calc(5 * var(--angle))) translate(var(--radius)) rotate(calc(-5 * var(--angle)));
|
|
-ms-transform: rotate(calc(5 * var(--angle))) translate(var(--radius)) rotate(calc(-5 * var(--angle)));
|
|
}
|
|
.circle-menu .tow-request {
|
|
transform: rotate(calc(6 * var(--angle))) translate(var(--radius)) rotate(calc(-6 * var(--angle)));
|
|
-webkit-transform: rotate(calc(6 * var(--angle))) translate(var(--radius)) rotate(calc(-6 * var(--angle)));
|
|
-ms-transform: rotate(calc(6 * var(--angle))) translate(var(--radius)) rotate(calc(-6 * var(--angle)));
|
|
}
|
|
.circle-menu .police-transport {
|
|
transform: rotate(calc(7 * var(--angle))) translate(var(--radius)) rotate(calc(-7 * var(--angle)));
|
|
-webkit-transform: rotate(calc(7 * var(--angle))) translate(var(--radius)) rotate(calc(-7 * var(--angle)));
|
|
-ms-transform: rotate(calc(7 * var(--angle))) translate(var(--radius)) rotate(calc(-7 * var(--angle)));
|
|
}
|
|
|
|
.circle-menu .mechanic-request {
|
|
transform: rotate(calc(8 * var(--angle))) translate(var(--radius)) rotate(calc(-8 * var(--angle)));
|
|
-webkit-transform: rotate(calc(8 * var(--angle))) translate(var(--radius)) rotate(calc(-8 * var(--angle)));
|
|
-ms-transform: rotate(calc(8 * var(--angle))) translate(var(--radius)) rotate(calc(-8 * var(--angle)));
|
|
}
|
|
|
|
.circle-menu .fire-request {
|
|
transform: rotate(calc(9 * var(--angle))) translate(var(--radius)) rotate(calc(-9 * var(--angle)));
|
|
-webkit-transform: rotate(calc(9 * var(--angle))) translate(var(--radius)) rotate(calc(-9 * var(--angle)));
|
|
-ms-transform: rotate(calc(9 * var(--angle))) translate(var(--radius)) rotate(calc(-9 * var(--angle)));
|
|
}
|
|
|
|
/*
|
|
TO ADD NEW BACKUP, SIMPLY COPY THE LAST 5 LINES OF ABOVES CODE AND INCREASE THE NUMBER!
|
|
MAKE SURE TO ALSO ADD THE ON HOVER COLOR AND ALSO INCREASE THE NUMBER OF ITEMS IN :ROOT
|
|
*/
|
|
|
|
.middle-x, .pursuit-middle-x {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 52%;
|
|
width: 4em;
|
|
height: 4em;
|
|
transform: translate(-50%, -50%);
|
|
border: inset rgba(255, 255, 255, 0.3) 1px;
|
|
background-color: rgba(255, 255, 255, 0.3);
|
|
border-radius: 50%;
|
|
z-index: 1;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
cursor: pointer;
|
|
transition: background-color 0.3s ease;
|
|
box-sizing: border-box; /* Add this to include border in the width and height */
|
|
}
|
|
|
|
.middle-x:hover, .pursuit-middle-x:hover {
|
|
background-color: rgba(255, 255, 255, 0.5);
|
|
box-shadow: 0 0 10px 5px rgba(0, 0, 0, 0.8);
|
|
transition: background-color 0.3s ease;
|
|
}
|
|
|
|
.middle-x::before,
|
|
.pursuit-middle-x::before,
|
|
.middle-x::after,
|
|
.pursuit-middle-x::after {
|
|
content: '';
|
|
position: absolute;
|
|
width: 50%;
|
|
height: 2px;
|
|
background-color: #000;
|
|
transition: background-color 0.3s ease;
|
|
}
|
|
|
|
.middle-x::before,
|
|
.pursuit-middle-x::before {
|
|
transform: rotate(45deg);
|
|
}
|
|
|
|
.middle-x::after,
|
|
.pursuit-middle-x::after {
|
|
transform: rotate(-45deg);
|
|
}
|
|
|
|
.instruction-title {
|
|
position: fixed;
|
|
top: 170px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
padding: 10px;
|
|
z-index: 998;
|
|
}
|
|
|
|
.instruction-text {
|
|
position: fixed;
|
|
bottom: 170px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
font-size: 16px;
|
|
padding: 10px;
|
|
z-index: 998;
|
|
}
|
|
|
|
/* Pursuit Backup Radial Menu */
|
|
|
|
.circle-menu a.pursuit-backup-light:hover i {
|
|
color: #0080f8;
|
|
}
|
|
|
|
.circle-menu a.pursuit-backup-medium:hover i {
|
|
color: #014b8f;
|
|
}
|
|
|
|
.circle-menu a.pursuit-backup-heavy:hover i {
|
|
color: #001e39;
|
|
}
|
|
|
|
.circle-menu a.pursuit-backup-air:hover i {
|
|
color: #00a2dd;
|
|
}
|
|
|
|
.circle-menu a.pursuit-backup-army:hover i {
|
|
color: #647b32;
|
|
}
|
|
|
|
.circle-menu .pursuit-backup-light {
|
|
transform: rotate(calc(1 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-1 * var(--pursuit-angle)));
|
|
-webkit-transform: rotate(calc(1 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-1 * var(--pursuit-angle)));
|
|
-ms-transform: rotate(calc(1 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-1 * var(--pursuit-angle)));
|
|
}
|
|
|
|
.circle-menu .pursuit-backup-medium {
|
|
transform: rotate(calc(2 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-2 * var(--pursuit-angle)));
|
|
-webkit-transform: rotate(calc(2 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-2 * var(--pursuit-angle)));
|
|
-ms-transform: rotate(calc(2 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-2 * var(--pursuit-angle)));
|
|
}
|
|
|
|
.circle-menu .pursuit-backup-heavy {
|
|
transform: rotate(calc(3 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-3 * var(--pursuit-angle)));
|
|
-webkit-transform: rotate(calc(3 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-3 * var(--pursuit-angle)));
|
|
-ms-transform: rotate(calc(3 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-3 * var(--pursuit-angle)));
|
|
}
|
|
|
|
.circle-menu .pursuit-backup-air {
|
|
transform: rotate(calc(4 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-4 * var(--pursuit-angle)));
|
|
-webkit-transform: rotate(calc(4 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-4 * var(--pursuit-angle)));
|
|
-ms-transform: rotate(calc(4 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-4 * var(--pursuit-angle)));
|
|
}
|
|
|
|
.circle-menu .pursuit-backup-army {
|
|
transform: rotate(calc(5 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-5 * var(--pursuit-angle)));
|
|
-webkit-transform: rotate(calc(5 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-5 * var(--pursuit-angle)));
|
|
-ms-transform: rotate(calc(5 * var(--pursuit-angle))) translate(var(--pursuit-radius)) rotate(calc(-5 * var(--pursuit-angle)));
|
|
}
|
|
|
|
/* Pursuit Mode UI */
|
|
|
|
.pursuit-container {
|
|
position: fixed;
|
|
top: 115px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
z-index: 1000;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
width: 300px; /* Match lightbar width */
|
|
}
|
|
|
|
.lightbar-container {
|
|
position: relative;
|
|
}
|
|
|
|
.lightbar {
|
|
width: 300px;
|
|
height: 40px;
|
|
background: linear-gradient(90deg, rgba(0,0,0,0.2), rgba(0,0,0,0.3), rgba(0,0,0,0.2));
|
|
border-radius: 10px;
|
|
position: relative;
|
|
overflow: hidden;
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
|
|
}
|
|
|
|
/* Animated gradient background */
|
|
.lightbar::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: linear-gradient(90deg,
|
|
rgba(24, 116, 255, 0.3),
|
|
rgba(255, 43, 43, 0.3));
|
|
animation: gradientMove 2s infinite;
|
|
z-index: 0;
|
|
}
|
|
|
|
@keyframes gradientMove {
|
|
0% {
|
|
opacity: 0;
|
|
background: linear-gradient(90deg,
|
|
rgba(24, 116, 255, 0.3),
|
|
rgba(255, 43, 43, 0.3));
|
|
}
|
|
50% {
|
|
opacity: 1;
|
|
background: linear-gradient(90deg,
|
|
rgba(255, 43, 43, 0.3),
|
|
rgba(24, 116, 255, 0.3));
|
|
}
|
|
100% {
|
|
opacity: 0;
|
|
background: linear-gradient(90deg,
|
|
rgba(24, 116, 255, 0.3),
|
|
rgba(255, 43, 43, 0.3));
|
|
}
|
|
}
|
|
|
|
.pursuit-text {
|
|
position: absolute;
|
|
width: 100%;
|
|
text-align: center;
|
|
left: 50%;
|
|
top: 50%;
|
|
transform: translate(-50%, -50%);
|
|
color: #fff;
|
|
font-weight: 800;
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
|
|
text-transform: uppercase;
|
|
letter-spacing: 2px;
|
|
font-size: 16px;
|
|
text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
|
|
animation: pulseText 2s infinite;
|
|
z-index: 1;
|
|
}
|
|
|
|
.pursuit-text::before {
|
|
content: '»»»';
|
|
margin-right: 10px;
|
|
animation: arrowPulse 1s infinite;
|
|
}
|
|
|
|
.pursuit-text::after {
|
|
content: '«««';
|
|
margin-left: 10px;
|
|
animation: arrowPulse 1s infinite;
|
|
}
|
|
|
|
@keyframes pulseText {
|
|
0%, 100% {
|
|
opacity: 1;
|
|
}
|
|
50% {
|
|
opacity: 0.7;
|
|
}
|
|
}
|
|
|
|
@keyframes arrowPulse {
|
|
0%, 100% {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
50% {
|
|
opacity: 0.5;
|
|
transform: scale(0.95);
|
|
}
|
|
}
|
|
|
|
.pursuit-hotkey-hint-container {
|
|
width: 100%;
|
|
text-align: center;
|
|
}
|
|
|
|
.pursuit-hotkey-hint {
|
|
font-size: 11px;
|
|
font-style: italic;
|
|
color: rgba(255, 255, 255, 0.7);
|
|
text-align: center;
|
|
text-shadow: 0 0 5px rgba(255, 255, 255, 0.5);
|
|
font-family: inherit;
|
|
margin-top: 2px;
|
|
width: 100%;
|
|
display: inline-block;
|
|
}
|
|
|
|
/* Screen Flash */
|
|
|
|
.screen-flash-left {
|
|
position: fixed;
|
|
left: 0;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 500px;
|
|
background: linear-gradient(90deg, rgba(255,0,0,0.2) 0%, rgba(255,0,0,0) 100%);
|
|
animation: screenFlashLeft 2s infinite;
|
|
pointer-events: none;
|
|
z-index: 9999;
|
|
}
|
|
|
|
.screen-flash-right {
|
|
position: fixed;
|
|
right: 0;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 500px;
|
|
background: linear-gradient(-90deg, rgba(0,0,255,0.2) 0%, rgba(0,0,255,0) 100%);
|
|
animation: screenFlashRight 2s infinite;
|
|
pointer-events: none;
|
|
z-index: 9999;
|
|
}
|
|
|
|
@keyframes screenFlashLeft {
|
|
0%, 100% { opacity: 0; }
|
|
12.5% { opacity: 1; }
|
|
25% { opacity: 0; }
|
|
37.5% { opacity: 1; }
|
|
50% { opacity: 0; }
|
|
}
|
|
|
|
@keyframes screenFlashRight {
|
|
50%, 100% { opacity: 0; }
|
|
62.5% { opacity: 1; }
|
|
75% { opacity: 0; }
|
|
87.5% { opacity: 1; }
|
|
100% { opacity: 0; }
|
|
}
|
|
|
|
/* BLUR / GRADIENT */
|
|
|
|
.blur-overlay {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: radial-gradient(ellipse at center, rgba(255,255,255,0) 0%,rgba(0,0,0,0.8) 100%);
|
|
pointer-events: none;
|
|
z-index: 0;
|
|
}
|
|
|
|
/* Dispatch message icon */
|
|
|
|
.dispatchmessageicon {
|
|
position: fixed;
|
|
right: var(--dispatch-icon-right);
|
|
bottom: var(--dispatch-icon-bottom);
|
|
z-index: 1;
|
|
border-radius: 10px;
|
|
background-color: var(--interaction-bg-color);
|
|
box-shadow: var(--interaction-box-shadow);
|
|
padding: 15px;
|
|
animation: fadeIn 0.3s ease-in-out;
|
|
}
|
|
|
|
/* ID card display */
|
|
|
|
.profile-picture {
|
|
background: #2c2c2c; /* Fallback color */
|
|
}
|
|
|
|
.profile-picture[src=""] {
|
|
display: none;
|
|
}
|
|
|
|
.license-item {
|
|
padding: 5px;
|
|
margin: 5px 0;
|
|
border-radius: 4px;
|
|
background: rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.license-item i {
|
|
margin-right: 5px;
|
|
}
|
|
|
|
.license-status {
|
|
padding: 5px;
|
|
margin: 5px 0;
|
|
border-radius: 4px;
|
|
background: rgba(255, 255, 255, 0.05);
|
|
}
|
|
|
|
.license-status i {
|
|
margin-right: 5px;
|
|
}
|
|
|
|
.license-badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
padding: 0.25rem 0.75rem;
|
|
border-radius: 4px;
|
|
background: rgba(0, 0, 0, 0.3);
|
|
font-size: 0.875rem;
|
|
}
|
|
|
|
.license-badge i {
|
|
font-size: 1rem;
|
|
}
|
|
|
|
/* Questioning */
|
|
|
|
#ped-interaction-questioning {
|
|
position: fixed;
|
|
right: 10px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
z-index: 1000;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 1.5vh;
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
|
}
|
|
|
|
/* QUESTION BUTTONS */
|
|
|
|
.gold-dot {
|
|
display: inline-block;
|
|
width: 7px;
|
|
height: 7px;
|
|
border-radius: 50%;
|
|
background: gold;
|
|
box-shadow: 0 0 6px 2px rgba(255, 215, 0, 0.5);
|
|
margin-right: 1rem;
|
|
}
|
|
|
|
.btn-glass {
|
|
position: relative;
|
|
background: transparent;
|
|
border: none;
|
|
background: linear-gradient(90deg, rgba(0, 0, 0, 0.0) 0%, rgba(0, 0, 0, 0.85) 100%);
|
|
/* box-shadow: 0 4px 24px rgba(0,0,0,0.10); */
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
|
transition: transform 0.3s ease;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.question-btn {
|
|
text-align: left;
|
|
white-space: normal;
|
|
height: auto;
|
|
min-height: 48px;
|
|
}
|
|
|
|
.question-text {
|
|
line-height: 1.4;
|
|
text-align: left;
|
|
white-space: pre-line;
|
|
}
|
|
|
|
/* The sliding background element */
|
|
.btn-glass::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
right: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: linear-gradient(90deg, rgba(0, 0, 0, 0.0) 0%, rgba(0, 0, 0, 0.85) 100%);
|
|
transform: translateX(100%);
|
|
transition: transform 0.3s ease;
|
|
z-index: -1;
|
|
}
|
|
|
|
.btn-glass:hover {
|
|
transform: scale(1.03);
|
|
}
|
|
|
|
.btn-glass:hover::before {
|
|
transform: translateX(0);
|
|
}
|
|
|
|
/* Questioning Answers */
|
|
|
|
#question-answers-list {
|
|
position: fixed;
|
|
left: 15%;
|
|
top: 15%;
|
|
z-index: 1000;
|
|
display: block;
|
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
|
max-width: 400px;
|
|
}
|
|
|
|
.chat-history::-webkit-scrollbar {
|
|
width: 6px;
|
|
}
|
|
.chat-history::-webkit-scrollbar-track {
|
|
background: rgba(0, 0, 0, 0.1);
|
|
border-radius: 3px;
|
|
}
|
|
.chat-history::-webkit-scrollbar-thumb {
|
|
background: rgba(255, 255, 255, 0.2);
|
|
border-radius: 3px;
|
|
}
|
|
.chat-history::-webkit-scrollbar-thumb:hover {
|
|
background: rgba(255, 255, 255, 0.3);
|
|
}
|
|
|
|
/* Dual steering mode */
|
|
#dual-steering-mode {
|
|
position: absolute;
|
|
bottom: var(--dual-steering-mode-prompt-y, 20px);
|
|
right: var(--dual-steering-mode-prompt-x, 20px);
|
|
z-index: 1200;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
padding: 14px 16px;
|
|
border-radius: 10px;
|
|
background: rgba(0, 0, 0, 0.15);
|
|
box-shadow: 0 6px 24px rgba(0,0,0,0.35);
|
|
color: #fff;
|
|
min-width: 260px;
|
|
}
|
|
|
|
.dual-steering-mode-title {
|
|
font-weight: 700;
|
|
font-size: 13px;
|
|
letter-spacing: .04em;
|
|
text-transform: uppercase;
|
|
opacity: .9;
|
|
}
|
|
|
|
.dual-steering-mode-hint-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.dual-steering-mode-key {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: 28px;
|
|
height: 28px;
|
|
padding: 0 8px;
|
|
border-radius: 6px;
|
|
background: linear-gradient(180deg, rgba(255,255,255,0.12), rgba(255,255,255,0.05));
|
|
border: 1px solid rgba(255,255,255,0.15);
|
|
box-shadow: inset 0 1px 0 rgba(255,255,255,0.15);
|
|
font-weight: 700;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.dual-steering-mode-action {
|
|
font-size: 13px;
|
|
opacity: .9;
|
|
}
|
|
|
|
.dual-steering-mode-sep {
|
|
height: 1px;
|
|
background: rgba(255,255,255,0.5);
|
|
margin: 4px 0 6px 0;
|
|
}
|
|
|
|
/* Layout Mode */
|
|
|
|
.layout-mode-element {
|
|
border: 2px dashed #ffc107 !important;
|
|
box-shadow: 0 0 10px rgba(255, 193, 7, 0.5) !important;
|
|
transition: all 0.2s ease !important;
|
|
animation: none !important;
|
|
animation-play-state: paused !important;
|
|
}
|
|
|
|
.layout-mode-element.card {
|
|
transition: all 0.2s ease !important;
|
|
}
|
|
|
|
.layout-mode-element.card:hover {
|
|
filter: brightness(1.2) !important;
|
|
transform: none !important;
|
|
}
|
|
|
|
.layout-mode-element * {
|
|
pointer-events: none !important;
|
|
}
|
|
|
|
.layout-mode-element {
|
|
pointer-events: auto !important;
|
|
}
|
|
|
|
.layout-mode-element:hover {
|
|
border-color: #ff6b35 !important;
|
|
box-shadow: 0 0 15px rgba(255, 107, 53, 0.7) !important;
|
|
}
|
|
|
|
.layout-mode-element.dragging {
|
|
border-color: #28a745 !important;
|
|
box-shadow: 0 0 20px rgba(40, 167, 69, 0.8) !important;
|
|
opacity: 0.9 !important;
|
|
transform-origin: center !important;
|
|
animation: none !important;
|
|
transition: none !important;
|
|
z-index: 9999 !important;
|
|
}
|
|
|
|
.layout-mode-element.dragging.card:hover {
|
|
filter: none !important;
|
|
transform: none !important;
|
|
transition: none !important;
|
|
}
|
|
|
|
.layout-mode-element .btn,
|
|
.layout-mode-element .card-header,
|
|
.layout-mode-element .card-body,
|
|
.layout-mode-element .card-footer {
|
|
pointer-events: none !important;
|
|
}
|
|
|
|
.layout-mode-element[class*="fade"],
|
|
.layout-mode-element[class*="slide"],
|
|
.layout-mode-element[class*="collapse"] {
|
|
animation: none !important;
|
|
transition: none !important;
|
|
}
|
|
|
|
.layout-mode-element::before {
|
|
content: '🖱️';
|
|
position: absolute;
|
|
top: -15px;
|
|
right: -15px;
|
|
background: #ffc107;
|
|
color: #000;
|
|
width: 20px;
|
|
height: 20px;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 10px;
|
|
z-index: 1000;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.layout-mode-element:hover::before {
|
|
background: #ff6b35;
|
|
transform: scale(1.1);
|
|
}
|
|
|
|
.layout-mode-element.dragging::before {
|
|
content: '✋';
|
|
background: #28a745;
|
|
transform: scale(1.2);
|
|
}
|
|
|
|
.layout-control-panel {
|
|
scrollbar-width: thin;
|
|
scrollbar-color: #ffc107 rgba(255, 255, 255, 0.1);
|
|
}
|
|
|
|
.layout-control-panel::-webkit-scrollbar {
|
|
width: 6px;
|
|
}
|
|
|
|
.layout-control-panel::-webkit-scrollbar-track {
|
|
background: rgba(255, 255, 255, 0.1);
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.layout-control-panel::-webkit-scrollbar-thumb {
|
|
background: #ffc107;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.layout-control-panel::-webkit-scrollbar-thumb:hover {
|
|
background: #ff6b35;
|
|
}
|
|
|
|
@keyframes fadeOut {
|
|
from {
|
|
opacity: 1;
|
|
}
|
|
to {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
@keyframes fadeInOut {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translate(-50%, -50%) scale(0.8);
|
|
}
|
|
20% {
|
|
opacity: 1;
|
|
transform: translate(-50%, -50%) scale(1);
|
|
}
|
|
80% {
|
|
opacity: 1;
|
|
transform: translate(-50%, -50%) scale(1);
|
|
}
|
|
100% {
|
|
opacity: 0;
|
|
transform: translate(-50%, -50%) scale(0.8);
|
|
}
|
|
} |