Files
Nitro-V3/src/css/index.css
T
2026-05-07 21:19:15 +02:00

2159 lines
51 KiB
CSS

@import 'tailwindcss';
@import url('https://fonts.googleapis.com/css2?family=Cherry+Bomb+One&family=Pixelify+Sans:wght@400..700&family=Vampiro+One&display=swap');
@config "../../tailwind.config.js";
@theme {
--animate-pulse-glow: pulseGlow 1.2s ease-in-out infinite;
--animate-pulse-glow-red: pulseGlowRed 1.2s ease-in-out infinite;
--animate-drop-settle: dropSettle 0.3s ease-out;
--animate-pulse-glow-gold: pulseGlowGold 1.5s ease-in-out infinite;
}
@keyframes pulseGlow {
0%, 100% { box-shadow: 0 0 6px rgba(59, 130, 246, 0.3); }
50% { box-shadow: 0 0 14px rgba(59, 130, 246, 0.6); }
}
@keyframes pulseGlowRed {
0%, 100% { box-shadow: 0 0 6px rgba(239, 68, 68, 0.3); }
50% { box-shadow: 0 0 14px rgba(239, 68, 68, 0.6); }
}
@keyframes dropSettle {
0% { transform: scale(1.15); }
100% { transform: scale(1); }
}
@keyframes pulseGlowGold {
0%, 100% { box-shadow: 0 0 6px rgba(255, 193, 7, 0.4); }
50% { box-shadow: 0 0 14px rgba(255, 193, 7, 0.7); }
}
@font-face {
font-family: Ubuntu;
src: url("@/assets/webfonts/Ubuntu-C.ttf");
}
@font-face {
font-family: UbuntuCondensed;
src: local("Ubuntu Condensed"), local("Ubuntu");
}
html,
body {
padding: 0;
width: 100%;
height: 100%;
min-height: 100%;
overflow: hidden;
background-color: #000;
-webkit-user-select: none;
user-select: none;
overscroll-behavior: none;
scrollbar-width: thin;
scrollbar-color: #6d7b84 #c8d0d4;
}
#root {
width: var(--nitro-app-width, 100vw);
height: var(--nitro-app-height, 100vh);
min-height: var(--nitro-app-height, 100vh);
overflow: hidden;
}
.nitro-app-root {
position: fixed;
inset: 0;
width: var(--nitro-app-width, 100vw) !important;
height: var(--nitro-app-height, 100vh) !important;
min-height: var(--nitro-app-height, 100vh) !important;
overflow: hidden !important;
overscroll-behavior: none;
}
@supports (height: 100dvh) {
html,
body,
#root,
.nitro-app-root {
height: var(--nitro-app-height, 100dvh) !important;
min-height: var(--nitro-app-height, 100dvh) !important;
}
}
.image-rendering-pixelated {
image-rendering: pixelated;
}
.nitro-room-touch-feedback {
position: fixed;
z-index: 35;
width: 34px;
height: 18px;
margin-left: -17px;
margin-top: -9px;
border-radius: 50%;
pointer-events: none;
border: 2px solid rgba(255, 255, 255, 0.9);
background: rgba(255, 255, 255, 0.18);
transform: scale(0.35);
opacity: 0.9;
animation: nitroRoomTouchFeedback 0.42s ease-out forwards;
}
@keyframes nitroRoomTouchFeedback {
to {
transform: scale(1.15);
opacity: 0;
}
}
*,
*:focus,
*:hover {
@apply outline-0;
}
::-webkit-scrollbar {
width: .875rem;
}
::-webkit-scrollbar:horizontal {
height: .875rem;
}
::-webkit-scrollbar:not(:horizontal) {
width: .875rem;
}
::-webkit-scrollbar-track {
background: linear-gradient(180deg, #dfe5e8 0%, #c9d1d5 100%);
border-left: 1px solid #7a858b;
border-right: 1px solid #eef3f5;
border-radius: 0;
}
::-webkit-scrollbar-thumb {
background: linear-gradient(180deg, #8fb5c7 0%, #5d8ea5 100%);
border: 1px solid #446879;
border-radius: 2px;
box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.28);
}
::-webkit-scrollbar-thumb:hover {
background: linear-gradient(180deg, #99c2d5 0%, #689ab0 100%);
}
::-webkit-scrollbar-thumb:active {
background: linear-gradient(180deg, #5c889d 0%, #436977 100%);
}
::-webkit-scrollbar-corner {
background: #c9d1d5;
}
::-webkit-scrollbar-button:single-button {
display: block;
width: .875rem;
height: .875rem;
background-color: #d8dfe3;
background-repeat: no-repeat;
background-position: center;
border-left: 1px solid #7a858b;
border-right: 1px solid #eef3f5;
}
::-webkit-scrollbar-button:single-button:vertical:decrement {
background-image: linear-gradient(135deg, transparent 50%, #35586a 50%), linear-gradient(225deg, transparent 50%, #35586a 50%);
background-size: 6px 6px;
background-position: calc(50% - 3px) 55%, calc(50% + 3px) 55%;
}
::-webkit-scrollbar-button:single-button:vertical:increment {
background-image: linear-gradient(315deg, transparent 50%, #35586a 50%), linear-gradient(45deg, transparent 50%, #35586a 50%);
background-size: 6px 6px;
background-position: calc(50% - 3px) 45%, calc(50% + 3px) 45%;
}
::-webkit-scrollbar-button:single-button:horizontal:decrement {
background-image: linear-gradient(45deg, transparent 50%, #35586a 50%), linear-gradient(135deg, transparent 50%, #35586a 50%);
background-size: 6px 6px;
background-position: 58% calc(50% - 3px), 58% calc(50% + 3px);
}
::-webkit-scrollbar-button:single-button:horizontal:increment {
background-image: linear-gradient(225deg, transparent 50%, #35586a 50%), linear-gradient(315deg, transparent 50%, #35586a 50%);
background-size: 6px 6px;
background-position: 42% calc(50% - 3px), 42% calc(50% + 3px);
}
@layer components {
@keyframes blink {
0%,
100% {
opacity: 1;
}
50% {
opacity: 0;
}
}
@keyframes scale {
0%,
100% {
transform: scale(1);
}
50% {
transform: scale(1.5);
}
}
.dot {
position: absolute;
width: 2px;
height: 2px;
background-color: white;
animation: blink 2s infinite;
}
.star {
position: absolute;
width: 10px;
height: 10px;
color: #ffffff;
&:after {
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: currentColor;
width: 5px;
height: 5px;
-webkit-animation: blink 1s linear infinite;
animation: blink 1s linear infinite;
}
.star-part {
position: absolute;
background-color: currentColor;
&:nth-child(1) {
top: 0;
left: 50%;
width: 1px;
height: 100%;
transform: translateX(-50%);
}
&:nth-child(2) {
top: 50%;
left: 0;
width: 100%;
height: 1px;
transform: translateY(-50%);
}
}
}
.toolbar {
@apply relative;
background: rgb(33, 33, 33);
background: linear-gradient(0deg, rgba(33, 33, 33, 0.9) 0%, rgba(51, 51, 51, 0.9) 100%);
&::before {
content: "";
display: block;
position: absolute;
top: 1px;
left: 0;
right: 0;
height: 2px;
background-color: rgba(255, 255, 255, 0.05);
}
&::after {
content: "";
display: block;
position: absolute;
bottom: 2px;
left: 0;
right: 0;
height: 2px;
background-color: rgba(0, 0, 0, 0.1);
}
}
.avatar-image {
@apply pointer-events-none relative h-[130px] w-[90px] bg-position-[center_-8px] bg-no-repeat;
}
.nitro-card-shell:not(.nitro-wired) {
border: 2px solid #000 !important;
border-radius: 10px;
background: #f2f2eb;
box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28);
overflow: hidden;
max-width: min(calc(100vw - 16px), 100%);
max-height: calc(100vh - 16px);
}
.nitro-card-shell:not(.nitro-wired) .nitro-card-header-shell {
border: 2px solid #3c88a6;
border-bottom-color: #000;
border-radius: 8px 8px 0 0;
background: #30728c;
padding: 5px;
}
.nitro-card-shell:not(.nitro-wired) .nitro-card-header-shell.builders-club-card-header {
border-color: #d79d2e;
border-bottom-color: #000;
background: linear-gradient(180deg, #d89f2d 0%, #c68515 100%);
}
.nitro-card-title {
margin: 0 auto;
font-family: UbuntuCondensed, Ubuntu, sans-serif;
font-weight: 400;
line-height: 1;
}
.builders-club-status-shell {
border-top: 1px solid rgba(255, 255, 255, 0.14);
border-bottom: 2px solid #000;
background:
linear-gradient(180deg, rgba(84, 62, 46, 0.95) 0%, rgba(50, 38, 29, 0.97) 100%);
}
.builders-club-status-icon-shell {
background: rgba(255, 193, 70, 0.12);
border: 1px solid rgba(255, 193, 70, 0.26);
}
.nitro-card-close-button,
.ubuntu-close-button {
width: 20px;
height: 20px;
min-width: 20px;
border: 2px solid #000;
border-radius: 4px;
background: #bf2c2c;
position: relative;
transition: border-color .2s ease, filter .2s ease, transform .15s ease;
}
.nitro-card-close-button::before,
.nitro-card-close-button::after,
.ubuntu-close-button::before,
.ubuntu-close-button::after {
content: '';
position: absolute;
left: 50%;
top: 50%;
width: 10px;
height: 2px;
border-radius: 2px;
background: #fff;
transform-origin: center;
}
.nitro-card-close-button::before,
.ubuntu-close-button::before {
transform: translate(-50%, -50%) rotate(45deg);
}
.nitro-card-close-button::after,
.ubuntu-close-button::after {
transform: translate(-50%, -50%) rotate(-45deg);
}
.nitro-card-close-button:hover,
.ubuntu-close-button:hover {
border-color: #fff;
filter: brightness(1.08);
}
.nitro-card-close-button:active,
.ubuntu-close-button:active {
transform: translateY(1px);
filter: brightness(0.96);
}
.nitro-card-shell:not(.nitro-wired) .nitro-card-content-shell {
border: 0;
border-top: 0;
border-radius: 0 0 8px 8px;
background: #f2f2eb;
font-family: Ubuntu, sans-serif;
color: #000;
}
.nitro-card-shell:not(.nitro-wired),
.nitro-card-shell:not(.nitro-wired) .nitro-card-content-shell {
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: UbuntuCondensed, Ubuntu, sans-serif;
font-weight: 400;
line-height: 1.1;
color: #111;
font-size: 16px;
}
p,
span,
label,
li,
td,
th,
input,
textarea,
select,
button {
font-family: Ubuntu, sans-serif;
color: #111;
}
p,
label,
li,
td,
th,
input,
textarea,
select,
button {
font-size: 12px;
line-height: 1.25;
}
}
.nitro-card-tabs-shell {
background: #d9ded7;
border-top: 0;
border-bottom: 2px solid #c4cabf;
}
.nitro-card-tab-item {
background: #d2d7cf;
border: 2px solid #000;
border-bottom: 0;
color: #000;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}
.nitro-card-tab-item-active {
background: #f2f2eb;
}
.nitro-card-panel {
background: rgba(0, 0, 0, 0.045) !important;
border: 1px solid #c4cabf !important;
border-radius: 6px !important;
box-shadow: none !important;
}
.nitro-card-row {
background: rgba(0, 0, 0, 0.035) !important;
border: 1px solid #c4cabf !important;
border-radius: 6px !important;
box-shadow: none !important;
transition: background-color .15s ease, border-color .15s ease;
}
.nitro-card-row:hover {
background: rgba(0, 0, 0, 0.07) !important;
border-color: #aeb7aa !important;
}
.nitro-card-divider {
border-color: #c4cabf !important;
box-shadow: none !important;
}
.nitro-card-shell :where(.bg-muted, .bg-light, .bg-light-dark, .bg-white, .bg-white\/50, .bg-white\/80) {
background: rgba(0, 0, 0, 0.045) !important;
box-shadow: none !important;
}
.nitro-card-shell :where(.border, .border-muted, .border-card-grid-item-border, .border-card-grid-item-border-active, .border-white, .border-white\/10, .border-white\/20, .border-white\/30) {
border-color: #c4cabf !important;
box-shadow: none !important;
}
.nitro-card-shell :where(.shadow, .shadow-md, .shadow-lg, .shadow-inner, .shadow-inner1px) {
box-shadow: none !important;
}
}
@media (max-width: 991.98px) {
.nitro-card-shell:not(.nitro-wired) {
width: min(calc(100vw - 16px), 100%) !important;
max-width: calc(100vw - 16px) !important;
max-height: calc(100vh - 16px) !important;
}
.nitro-card-shell:not(.nitro-wired) .nitro-card-header-shell {
padding: 4px;
}
.builders-club-status-shell {
padding: 10px 12px;
}
.nitro-card-title {
font-size: 17px;
}
.nitro-card-shell:not(.nitro-wired) .nitro-card-content-shell {
padding: 8px !important;
}
.nitro-card-tabs-shell {
flex-wrap: wrap;
gap: 3px;
padding: 4px 6px 0;
}
.nitro-card-tab-item {
padding: 4px 9px;
}
.nitro-card-shell:not(.nitro-wired),
.nitro-card-shell:not(.nitro-wired) .nitro-card-content-shell {
p,
label,
li,
td,
th,
input,
textarea,
select,
button {
font-size: 11.5px;
}
}
}
.unique-item {
.unique-bg-override {
@apply z-2 bg-center bg-no-repeat;
}
&:before {
@apply absolute z-1 size-full bg-center bg-no-repeat [content:""];
background-image: url("@/assets/images/unique/grid-bg.png");
}
&:after {
@apply absolute bottom-0 z-4 size-full bg-center bg-no-repeat [content:""];
background-image: url("@/assets/images/unique/grid-bg-glass.png");
}
&.sold-out:after {
@apply bg-center bg-no-repeat;
background-image: url("@/assets/images/unique/grid-bg-sold-out.png"),
url("@/assets/images/unique/grid-bg-glass.png");
}
.unique-item-counter {
background-image: url("@/assets/images/unique/grid-count-bg.png");
@apply bottom-px z-3 mx-auto my-0 flex h-[9px] w-full items-center justify-center bg-center bg-no-repeat;
}
}
.unique-sold-out-blocker {
width: 364px;
height: 30px;
background: url("@/assets/images/unique/catalog-info-sold-out.png");
div {
float: right;
width: 140px;
text-align: center;
font-weight: bold;
margin-top: 5px;
margin-right: 17px;
color: #000;
}
}
.unique-compact-plate {
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: center;
right: 16px;
width: 34px;
height: 37px;
background: url("@/assets/images/unique/inventory-info-amount-bg.png");
div {
display: flex;
justify-content: center;
align-items: center;
height: 9.5px;
}
}
.unique-complete-plate {
width: 170px;
height: 29px;
background: url("@/assets/images/unique/catalog-info-amount-bg.png") no-repeat center;
z-index: 1;
padding-top: 3px;
.plate-container {
margin-left: 45px;
width: 100px;
font-size: 10px;
color: black;
> :first-child {
margin-bottom: 2px;
}
}
}
.limited-edition-number {
display: inline-block;
outline: 0;
height: 5px;
margin-right: 1px;
background-image: url("@/assets/images/unique/numbers.png");
background-repeat: no-repeat;
&:last-child {
margin-right: 0px;
}
&.n-0 {
width: 4px;
baseackground-position: -1px 0px;
}
&.n-1 {
width: 2px;
background-position: -6px 0px;
}
&.n-2 {
width: 4px;
background-position: -9px 0px;
}
&.n-3 {
width: 4px;
background-position: -14px 0px;
}
&.n-4 {
width: 4px;
background-position: -19px 0px;
}
&.n-5 {
width: 4px;
background-position: -24px 0px;
}
&.n-6 {
width: 4px;
background-position: -29px 0px;
}
&.n-7 {
width: 4px;
background-position: -34px 0px;
}
&.n-8 {
width: 4px;
background-position: -39px 0px;
}
&.n-9 {
width: 4px;
background-position: -44px 0px;
}
}
.layout-grid-item {
height: var(--nitro-grid-column-min-height, unset);
background-position: center;
background-repeat: no-repeat;
background-color: #cdd3d9;
}
.nitro-friends-spritesheet {
background: url('@/assets/images/friends/friends-spritesheet.png') transparent no-repeat;
&.icon-friendbar-visit {
width: 21px;
height: 21px;
background-position: -38px -5px;
}
&.icon-heart {
width: 16px;
height: 14px;
background-position: -5px -67px;
}
&.icon-new-message {
width: 14px;
height: 14px;
background-position: -96px -53px;
}
&.icon-none {
width: 16px;
height: 14px;
background-position: -31px -67px;
}
&.icon-profile {
width: 21px;
height: 21px;
background-position: -5px -36px;
}
&.icon-profile-sm {
width: 13px;
height: 11px;
background-position: -51px -91px;
&:hover {
width: 13px;
height: 11px;
background-position: -74px -91px;
}
}
&.icon-smile {
width: 16px;
height: 14px;
background-position: -57px -67px;
}
&.icon-warning {
width: 23px;
height: 21px;
background-position: -5px -5px;
}
&.icon-accept {
width: 13px;
height: 14px;
background-position: -5px -91px;
}
&.icon-add {
width: 16px;
height: 15px;
background-position: -69px -31px;
}
&.icon-bobba {
width: 16px;
height: 14px;
background-position: -96px -5px;
}
&.icon-chat {
width: 17px;
height: 16px;
background-position: -69px -5px;
}
&.icon-deny {
width: 13px;
height: 14px;
background-position: -28px -91px;
}
&.icon-follow {
width: 16px;
height: 14px;
background-position: -96px -29px;
}
&.icon-friendbar-chat {
width: 20px;
height: 21px;
background-position: -36px -36px;
}
}
/* Avatar editor icons are now rendered as <img> tags via AvatarEditorIcon.tsx */
.nitro-avatar-editor-wardrobe-figure-preview {
background-color: #677181;
overflow: hidden;
z-index: 1;
.avatar-image {
position: absolute;
bottom: 15px;
margin: 0 auto;
z-index: 4;
}
.avatar-shadow {
position: absolute;
left: 0;
right: 0;
bottom: 25px;
width: 40px;
height: 20px;
margin: 0 auto;
border-radius: 100%;
background-color: rgba(0, 0, 0, 0.20);
z-index: 2;
}
&:after {
position: absolute;
content: '';
top: 75%;
bottom: 0;
left: 0;
right: 0;
border-radius: 50%;
background-color: #677181;
box-shadow: 0 0 8px 2px rgba(255, 255, 255, 0.6);
transform: scale(2);
}
.button-container {
position: absolute;
bottom: 0;
z-index: 5;
}
}
.nitro-avatar-editor {
.category-item {
height: 32px;
}
.figure-preview-container {
position: relative;
height: 100%;
background-color: #677181;
overflow: hidden;
z-index: 1;
.arrow-container {
position: absolute;
width: 100%;
margin: 0 auto;
padding: 0 10px;
display: flex;
justify-content: space-between;
bottom: 12px;
z-index: 5;
.icon {
cursor: pointer;
}
}
.avatar-image {
position: absolute;
left: 0;
right: 0;
bottom: 50px;
margin: 0 auto;
z-index: 4;
}
.avatar-spotlight {
position: absolute;
top: -10px;
left: 0;
right: 0;
margin: 0 auto;
opacity: 0.3;
pointer-events: none;
z-index: 3;
}
.avatar-shadow {
position: absolute;
left: 0;
right: 0;
bottom: 15px;
width: 70px;
height: 30px;
margin: 0 auto;
border-radius: 100%;
background-color: rgba(0, 0, 0, 0.20);
z-index: 2;
}
&:after {
position: absolute;
content: '';
top: 75%;
bottom: 0;
left: 0;
right: 0;
border-radius: 50%;
background-color: #677181;
box-shadow: 0 0 8px 2px rgba(255, 255, 255, 0.6);
transform: scale(2);
}
}
}
/* Font Size */
.fs-custom {
font-size: var(--font-size, 16px); /* Fallback to 16px if not set */
}
.nitro-wired {
background: #efefef;
border: 1px solid #8d8d8d !important;
border-radius: 6px !important;
box-shadow: inset 0 0 0 1px #fff !important;
color: #000;
outline: none !important;
overflow: hidden;
.nitro-wired__header {
min-height: 21px !important;
max-height: 21px !important;
position: absolute !important;
inset: 0 0 auto 0;
z-index: 3;
border: 0 !important;
border-radius: 0 !important;
background: transparent !important;
box-shadow: none !important;
padding: 0 !important;
pointer-events: auto;
.nitro-card-title {
display: block;
color: #000 !important;
font-size: 11px !important;
font-weight: 700 !important;
line-height: 21px;
text-align: center;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.75);
pointer-events: none;
}
> .flex::before {
content: none;
}
> .flex::after {
content: none;
}
.nitro-card-close-button {
right: 6px !important;
width: 18px;
height: 18px;
min-width: 18px;
border: 1px solid #777;
border-radius: 5px;
background: linear-gradient(180deg, #f9f9f9 0%, #cacaca 100%);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.nitro-card-close-button::before,
.nitro-card-close-button::after {
left: 50%;
top: 50%;
width: 10px;
height: 2px;
background: #6a6a6a;
margin: 0;
}
}
.nitro-wired__content {
position: relative;
background: #efefef !important;
border: 0 !important;
box-shadow: none !important;
padding: 0 !important;
gap: 0 !important;
overflow: visible !important;
}
.nitro-wired__body {
display: flex;
flex-direction: column;
padding: 8px 10px 10px;
gap: 6px;
font-size: 12px;
line-height: 1.2;
}
.nitro-wired__section {
display: flex;
flex-direction: column;
gap: 5px;
}
.nitro-wired__summary {
position: relative;
min-height: 56px;
flex-direction: row;
align-items: center;
gap: 10px;
padding: 22px 10px 7px 12px;
background: linear-gradient(180deg, #e5e5e5 0%, #d7d7d7 100%);
overflow: hidden;
color: #000;
}
.nitro-wired__summary-bg {
position: absolute;
width: auto;
height: auto;
top: 50%;
z-index: 0;
pointer-events: none;
user-select: none;
-webkit-user-drag: none;
}
.nitro-wired__summary-bg--left {
left: 50%;
transform: translate(-150%, -50%);
opacity: 0.45;
}
.nitro-wired__summary-bg--right {
left: 50%;
top: 72%;
transform: translate(-46%, -50%);
opacity: 0.24;
}
.nitro-wired__summary-copy {
position: relative;
z-index: 1;
}
.nitro-wired__summary-copy {
display: flex;
flex-direction: column;
min-width: 0;
gap: 1px;
}
.nitro-wired__summary-kind {
color: #000;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.08em;
line-height: 1;
text-transform: uppercase;
}
.nitro-wired__summary-title {
color: #4a4a4a !important;
font-size: 15px !important;
font-weight: 700 !important;
line-height: 1.02;
text-align: left !important;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.75);
word-break: break-word;
}
.nitro-wired__section--body {
overflow: visible !important;
}
.nitro-wired__section .font-bold:not(.nitro-wired__summary-title) {
width: 100%;
font-size: 13px !important;
font-weight: 700 !important;
text-align: left;
}
.nitro-wired__summary-description,
.nitro-wired__furni-selector-description,
.nitro-wired__picker-label {
font-size: 12px;
line-height: 1.15;
}
.nitro-wired__source-row,
.nitro-wired__give-var-section-title,
.nitro-wired__advanced-toggle {
font-size: 12px;
}
.nitro-wired__divider,
hr {
height: 1px;
border: 0;
background: #bababa;
box-shadow: 0 1px 0 #fff;
margin: 0 !important;
}
.form-check-input,
input[type='checkbox'],
input[type='radio'] {
width: 18px;
height: 18px;
min-width: 18px;
appearance: none;
-webkit-appearance: none;
border: 1px solid #8e8e8e;
border-radius: 5px;
background: linear-gradient(180deg, #fcfcfc 0%, #ececec 100%);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
cursor: pointer;
position: relative;
}
input[type='radio'] {
border-radius: 50%;
}
.form-check-input:focus,
input[type='checkbox']:focus,
input[type='radio']:focus {
outline: 1px solid #4b7ea1;
outline-offset: 1px;
}
.form-check-input[type='radio']:checked,
input[type='radio']:checked {
background:
radial-gradient(circle at center, #4a4a4a 0 34%, transparent 38%),
linear-gradient(180deg, #fcfcfc 0%, #ececec 100%);
border-color: #767676;
}
.form-check-input[type='checkbox']:checked,
input[type='checkbox']:checked {
background: linear-gradient(180deg, #d9d9d9 0%, #c8c8c8 100%);
border-color: #767676;
}
.form-check-input[type='checkbox']:checked::before,
.form-check-input[type='checkbox']:checked::after,
input[type='checkbox']:checked::before,
input[type='checkbox']:checked::after {
content: '';
position: absolute;
left: 50%;
top: 50%;
width: 12px;
height: 2px;
border-radius: 2px;
background: #111111;
transform-origin: center;
}
.form-check-input[type='checkbox']:checked::before,
input[type='checkbox']:checked::before {
transform: translate(-50%, -50%) rotate(45deg);
}
.form-check-input[type='checkbox']:checked::after,
input[type='checkbox']:checked::after {
transform: translate(-50%, -50%) rotate(-45deg);
}
.form-check {
display: flex;
align-items: center;
gap: 4px;
}
.form-check-label {
margin-left: 1px;
}
.form-control,
.form-select,
input[type='text'],
input[type='number'],
textarea {
min-height: 24px;
border: 1px solid #8d8d8d !important;
border-radius: 4px !important;
background: #f6f6f6 !important;
color: #000 !important;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.95);
font-size: 12px;
padding: 3px 6px;
}
.nitro-wired__button,
.nitro-wired__picker-button,
.nitro-slider-button {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
min-height: 22px !important;
border: 1px solid #8e8e8e !important;
border-radius: 6px !important;
background: linear-gradient(180deg, #fcfcfc 0%, #e8e8e8 46%, #d5d5d5 47%, #efefef 100%) !important;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92) !important;
color: #000 !important;
padding-top: 0 !important;
padding-bottom: 0 !important;
}
.nitro-wired__button:hover,
.nitro-wired__picker-button:hover,
.nitro-slider-button:hover {
filter: brightness(0.98);
}
.nitro-wired__button--primary,
.nitro-wired__button--secondary {
font-weight: 700;
}
&.nitro-card-shell {
resize: none !important;
}
.nitro-wired__actions {
padding-top: 2px;
}
.nitro-slider-wrapper {
align-items: center;
gap: 4px;
}
.nitro-wired__advanced-toggle {
width: 100%;
padding: 0 !important;
border: 0;
background: transparent;
color: #000;
font: inherit;
text-align: center;
text-decoration: underline;
}
.nitro-wired__advanced-body,
.nitro-wired__source-detail {
display: flex;
flex-direction: column;
gap: 4px;
}
.nitro-wired__source-row {
display: flex;
flex-direction: column;
gap: 3px;
}
.nitro-wired__selection-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
width: 18px;
height: 18px;
padding: 0;
border: 1px solid #8e8e8e;
border-radius: 4px;
background: linear-gradient(180deg, #f6f6f6 0%, #e4e4e4 49%, #d0d0d0 50%, #ececec 100%);
color: #7b7b7b;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92);
}
.nitro-wired__selection-toggle.is-active.nitro-wired__selection-toggle--primary {
border-color: #66793c;
background: linear-gradient(180deg, #a5b56e 0%, #8ea25a 100%);
color: #fff;
}
.nitro-wired__selection-toggle.is-active.nitro-wired__selection-toggle--secondary {
border-color: #6172b7;
background: linear-gradient(180deg, #8d9bdd 0%, #7383cb 100%);
color: #fff;
}
.nitro-wired__selection-toggle:disabled {
opacity: 0.55;
}
.nitro-wired__selection-toggle svg {
font-size: 10px;
margin: 0;
}
.nitro-wired__actions {
gap: 4px !important;
}
.nitro-wired__picker-button,
.nitro-slider-button {
width: 22px;
min-width: 22px !important;
flex: 0 0 22px;
padding-left: 0 !important;
padding-right: 0 !important;
}
.nitro-wired__picker-button svg,
.nitro-slider-button svg {
margin: 0;
}
.nitro-wired__picker-label {
min-width: 0;
text-align: center;
word-break: break-word;
}
.nitro-wired__give-var {
display: flex;
flex-direction: column;
gap: 4px;
}
.nitro-wired__give-var-heading {
display: flex;
align-items: center;
justify-content: space-between;
gap: 4px;
}
.nitro-wired__give-var-targets {
display: inline-flex;
align-items: center;
gap: 2px;
}
.nitro-wired__give-var-target {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 18px;
min-height: 18px;
padding: 0;
border: 1px solid #8e8e8e;
border-radius: 4px;
background: transparent;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
transition: filter 0.12s ease-in-out;
}
.nitro-wired__give-var-target:hover {
filter: brightness(0.98);
}
.nitro-wired__give-var-target img {
width: auto;
height: auto;
max-width: 12px;
max-height: 12px;
image-rendering: pixelated;
}
.nitro-wired__give-var-target--furni.is-active {
background: linear-gradient(180deg, #f7db6d 0%, #ddb948 100%);
}
.nitro-wired__give-var-target--user.is-active {
background: linear-gradient(180deg, #74be68 0%, #4f9644 100%);
}
.nitro-wired__give-var-target--global.is-active {
background: linear-gradient(180deg, #7bc4f0 0%, #5497d2 100%);
}
.nitro-wired__give-var-target--context.is-active {
background: linear-gradient(180deg, #f0ad65 0%, #d68739 100%);
}
.nitro-wired__give-var-target.is-active {
border-color: #4d4d4d;
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.72), inset 0 1px 0 rgba(255, 255, 255, 0.92);
}
.nitro-wired__give-var-target:disabled {
opacity: 0.72;
cursor: default;
}
.nitro-wired__give-var-select {
min-height: 23px;
}
.nitro-wired__variable-picker {
position: relative;
width: 100%;
}
.nitro-wired__variable-picker-trigger {
display: flex;
align-items: center;
width: 100%;
min-height: 23px;
padding: 0 22px 0 8px;
border: 1px solid #8e8e8e;
border-radius: 4px;
background: linear-gradient(180deg, #ffffff 0%, #ededed 100%);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
font-size: 11px;
text-align: left;
position: relative;
}
.nitro-wired__variable-picker-trigger::after {
content: '';
position: absolute;
top: 50%;
right: 8px;
width: 0;
height: 0;
margin-top: -2px;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-top: 5px solid #555;
}
.nitro-wired__variable-picker-placeholder {
color: #7a7a7a;
}
.nitro-wired__variable-picker-panel {
position: absolute;
top: calc(100% + 2px);
left: 0;
z-index: 30;
width: 202px;
padding: 4px;
border: 1px solid #8e8e8e;
border-radius: 4px;
background: #f5f5f5;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
overflow: visible;
}
.nitro-wired__variable-picker-panel.is-portal {
position: fixed;
top: 0;
left: 0;
z-index: 5001;
margin: 0;
pointer-events: auto;
}
.nitro-wired__variable-picker-toolbar {
display: flex;
align-items: center;
gap: 4px;
padding-bottom: 4px;
border-bottom: 1px solid #d0d0d0;
}
.nitro-wired__variable-picker-mode {
display: inline-flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
padding: 0;
border: 1px solid transparent;
border-radius: 3px;
background: transparent;
}
.nitro-wired__variable-picker-mode.is-active {
border-color: #8e8e8e;
background: linear-gradient(180deg, #f3cc58 0%, #d2a93a 100%);
}
.nitro-wired__variable-picker-mode img {
width: auto;
height: auto;
max-width: 13px;
max-height: 13px;
image-rendering: pixelated;
}
.nitro-wired__variable-picker-search {
display: flex;
align-items: center;
gap: 4px;
min-height: 24px;
padding: 0 4px;
margin-top: 4px;
border: 1px solid #c4c4c4;
border-radius: 3px;
background: #fff;
}
.nitro-wired__variable-picker-search-icon {
width: auto;
height: auto;
max-width: 10px;
max-height: 10px;
opacity: 0.75;
image-rendering: pixelated;
}
.nitro-wired__variable-picker-search-input {
flex: 1 1 auto;
min-width: 0;
border: 0;
background: transparent;
font-size: 11px;
line-height: 1;
outline: none;
}
.nitro-wired__variable-picker-clear {
display: inline-flex;
align-items: center;
justify-content: center;
width: 14px;
height: 14px;
padding: 0;
border: 0;
background: transparent;
}
.nitro-wired__variable-picker-clear img {
width: auto;
height: auto;
max-width: 10px;
max-height: 10px;
image-rendering: pixelated;
}
.nitro-wired__variable-picker-list,
.nitro-wired__variable-picker-submenu {
display: flex;
flex-direction: column;
max-height: 140px;
margin-top: 4px;
overflow-y: auto;
border: 1px solid #c8c8c8;
border-radius: 3px;
background: #fff;
}
.nitro-wired__variable-picker-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 6px;
min-height: 20px;
padding: 0 6px;
border: 0;
background: transparent;
font-size: 11px;
text-align: left;
}
.nitro-wired__variable-picker-row:nth-child(even) {
background: #f3f3f3;
}
.nitro-wired__variable-picker-row:hover {
background: #dfe8f6;
}
.nitro-wired__variable-picker-row.is-selected {
background: #d7dfea;
}
.nitro-wired__variable-picker-row.is-disabled {
color: #7b7b7b;
}
.nitro-wired__variable-picker-row-label {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.nitro-wired__variable-picker-row-arrow {
flex: 0 0 auto;
font-size: 9px;
}
.nitro-wired__variable-picker-empty {
display: flex;
align-items: center;
justify-content: center;
min-height: 86px;
color: #8a8a8a;
}
.nitro-wired__variable-picker-submenu {
position: fixed;
width: 120px;
margin-top: 0;
z-index: 5000;
pointer-events: auto;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.18);
}
.nitro-wired__give-var-checkbox {
display: flex;
align-items: center;
gap: 4px;
cursor: pointer;
white-space: nowrap;
font-size: 13px;
line-height: 1;
}
.nitro-wired__give-var-section {
display: flex;
flex-direction: column;
gap: 4px;
}
.nitro-wired__give-var-section-title {
font-size: 11px;
font-weight: 700;
line-height: 1.1;
}
.nitro-wired__give-var-input-row {
display: flex;
align-items: center;
gap: 6px;
}
.nitro-wired__give-var-number {
width: 48px;
min-width: 48px;
min-height: 18px !important;
height: 18px;
padding: 0 4px !important;
line-height: 18px;
text-align: center;
}
.nitro-wired__give-var-number--blurred {
filter: blur(0.8px) !important;
opacity: 0.78;
pointer-events: none;
}
.nitro-wired__resizable-textarea {
min-height: 140px !important;
resize: vertical !important;
overflow: auto;
}
.nitro-wired__levelup {
display: flex;
flex-direction: column;
gap: 6px;
}
.nitro-wired__levelup-section {
display: flex;
flex-direction: column;
gap: 4px;
}
.nitro-wired__levelup-section-header {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
padding: 0;
border: 0;
background: transparent;
text-align: left;
}
.nitro-wired__levelup-chevron {
font-size: 12px;
line-height: 1;
transform: rotate(180deg);
transition: transform 0.12s ease;
}
.nitro-wired__levelup-chevron.is-open {
transform: rotate(0deg);
}
.nitro-wired__levelup-section-body {
display: flex;
flex-direction: column;
gap: 8px;
}
.nitro-wired__levelup-mode-block {
display: flex;
flex-direction: column;
gap: 4px;
}
.nitro-wired__levelup-mode-block.is-inactive {
opacity: 0.72;
}
.nitro-wired__levelup-mode-label {
display: flex;
align-items: center;
gap: 4px;
cursor: pointer;
}
.nitro-wired__levelup-fields {
display: flex;
flex-direction: column;
gap: 4px;
padding-left: 22px;
}
.nitro-wired__levelup-field-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
min-height: 20px;
}
.nitro-wired__levelup-number {
width: 74px;
min-width: 74px;
min-height: 20px !important;
height: 20px;
padding: 0 6px !important;
line-height: 20px;
text-align: center;
}
.nitro-wired__levelup-textarea {
min-height: 88px !important;
resize: vertical !important;
overflow: auto;
}
.nitro-wired__levelup-preview {
max-height: 120px;
overflow-y: auto;
padding-right: 2px;
}
.nitro-wired__levelup-preview-entry {
padding: 1px 0;
font-size: 11px;
line-height: 1.25;
}
.nitro-wired__levelup-subvariables {
display: flex;
flex-direction: column;
gap: 4px;
}
.nitro-wired__levelup-subvariable-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.nitro-wired__levelup-subvariable-label {
display: flex;
align-items: center;
gap: 4px;
min-width: 0;
flex: 1 1 auto;
cursor: pointer;
}
.nitro-wired__levelup-subvariable-token {
width: 96px;
min-width: 96px;
height: 20px;
padding: 0 6px;
border: 1px solid #cfcfcf;
border-radius: 6px;
background: #f3f3f3;
color: #9a9a9a;
font-size: 11px;
line-height: 20px;
}
.nitro-wired__placeholder-preview {
display: flex;
width: 100%;
align-items: flex-start;
padding: 6px 8px;
border: 1px solid #b7b7b7;
border-radius: 5px;
background: linear-gradient(180deg, #fbfbfb 0%, #efefef 100%);
text-align: left;
cursor: pointer;
transition: background 0.12s ease, border-color 0.12s ease;
}
.nitro-wired__placeholder-preview:hover {
background: linear-gradient(180deg, #ffffff 0%, #f4f4f4 100%);
border-color: #909090;
}
.nitro-wired__placeholder-preview.is-copied {
border-color: #73a753;
background: linear-gradient(180deg, #f8fff2 0%, #eef9e2 100%);
}
.nitro-wired__change-var-radio {
display: flex;
align-items: center;
gap: 4px;
}
.nitro-wired__change-var-reference-block {
display: flex;
flex-direction: column;
gap: 4px;
}
.nitro-slider {
height: 16px;
}
.nitro-slider .track {
height: 4px;
border-radius: 999px;
border: 1px solid #9a9a9a;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.95);
&.track-0 {
background: linear-gradient(180deg, #7f9fb1 0%, #64889e 100%);
}
&.track-1 {
background: linear-gradient(180deg, #e9e9e9 0%, #d5d5d5 100%);
}
}
.nitro-slider .thumb {
width: 12px;
height: 12px;
margin-top: 3px;
border-radius: 50%;
border: 1px solid #7f7f7f;
background: linear-gradient(180deg, #fefefe 0%, #dadada 100%);
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
}
.nitro-card-shell.nitro-wired {
border: 1px solid #8d8d8d !important;
border-color: #8d8d8d !important;
box-shadow: inset 0 0 0 1px #fff !important;
outline: none !important;
}
.nitro-card-shell.nitro-wired .nitro-card-header-shell,
.nitro-card-shell.nitro-wired .nitro-card-content-shell {
border: 0 !important;
box-shadow: none !important;
}
/* ── Avatar Editor ─────────────────────────────────────────────────────── */
.color-picker-frame {
border-image-source: url('@/assets/images/avatareditor/color_frame.png');
border-image-slice: 6 6 6 6 fill;
border-image-width: 6px 6px 6px 6px;
width: 14px;
height: 21px;
border-radius: 4px;
&.active,
&:hover {
border-image-source: url('@/assets/images/avatareditor/color_frame_active.png');
height: 21px;
margin-top: -2px;
}
}
.hc-icon {
background-image: url('@/assets/images/avatareditor/hc_icon.png');
height: 9px;
width: 10px;
bottom: 2px;
left: 2px;
}
.avatar-parts {
border: 1px solid #c5c3c0 !important;
position: relative;
aspect-ratio: 1;
width: 100%;
max-width: 64px;
border-radius: 0.3rem !important;
overflow: hidden !important;
background-color: #e9e8e4;
&:hover {
box-shadow: inset 0 0 0 3px #dbdad5 !important;
background-color: #cecdc8 !important;
}
&:active,
&.part-selected {
box-shadow: inset 0 0 0 3px #c5c3c0 !important;
background-color: #b1b1b1 !important;
}
}
.avatar-container {
padding: 3px;
height: 50px;
border-radius: 0.3rem;
background-color: #a7a6a2;
width: 48px;
}
.avatar-parts-container {
height: 70%;
}
.avatar-color-palette-container {
height: 30%;
width: 100% !important;
}
.dual-palette {
display: flex !important;
flex-direction: row !important;
}
.avatar-editor-palette-set-view {
padding-right: 15px !important;
flex-grow: 1;
}
.action-buttons {
gap: 5px;
}
/* ── Avatar Editor tab icons ───────────────────────────────────────────── */
.avatar-editor-tabs {
position: relative;
.tab {
background-position-x: center;
background-position-y: center;
background-repeat: no-repeat;
width: 34px;
height: 22px;
}
.hd { background-image: url('@/assets/images/wardrobe/hd.png'); }
.head { background-image: url('@/assets/images/wardrobe/head.png'); }
.torso { background-image: url('@/assets/images/wardrobe/torso.png'); }
.legs { background-image: url('@/assets/images/wardrobe/legs.png'); }
.tab-wardrobe {
width: 40px;
height: 28px;
background-size: 38px 28px;
background-image: url('@/assets/images/wardrobe/wardrobe.png');
background-repeat: no-repeat;
background-position: center;
filter: contrast(1.2) brightness(1.05);
}
.tab-pets {
width: 34px;
height: 22px;
background-image: url('@/assets/images/wardrobe/pets.png');
background-repeat: no-repeat;
background-position: center;
background-size: 22px 22px;
}
.tab-nft {
width: 34px;
height: 22px;
background-image: url('@/assets/images/wardrobe/nft.png');
background-repeat: no-repeat;
background-position: center;
background-size: 22px 22px;
}
.tab-misc {
width: 34px;
height: 22px;
background-image: url('@/assets/images/wardrobe/misc.png');
background-repeat: no-repeat;
background-position: center;
background-size: 24px 22px;
}
}
.nitro-wired__variable-picker-portal {
position: fixed;
inset: 0;
z-index: 5000;
pointer-events: none;
overflow: visible !important;
background: transparent !important;
border: 0 !important;
border-radius: 0 !important;
box-shadow: none !important;
}
/* ── Avatar Editor misc ─────────────────────────────────────────────────── */
/* ── Pet Companion ─────────────────────────────────────────────────────── */
.pet-equipped-bar {
display: flex;
align-items: center;
gap: 10px;
padding: 6px 10px;
background-color: rgba(0, 0, 0, 0.25);
border-radius: 0.3rem;
margin: 0 2px;
min-height: 48px;
}
.pet-equipped-preview {
width: 42px;
height: 42px;
border-radius: 4px;
background-color: rgba(255, 255, 255, 0.1);
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
flex-shrink: 0;
}
.pet-equipped-thumb {
width: 100%;
height: 100%;
background-repeat: no-repeat;
background-position: center;
background-size: contain;
}
.pet-paw-icon {
width: 24px;
height: 24px;
background-image: url('@/assets/images/wardrobe/pets.png');
background-repeat: no-repeat;
background-position: center;
background-size: contain;
}
.pet-grid-container .avatar-parts {
background-size: contain;
overflow: hidden !important;
}
.pet-sellable-locked {
opacity: 0.5;
cursor: not-allowed !important;
position: relative;
}
.pet-sellable-badge {
position: absolute;
bottom: 2px;
right: 2px;
display: flex;
align-items: center;
gap: 1px;
background-color: rgba(0, 0, 0, 0.6);
border-radius: 3px;
padding: 1px 3px;
font-size: 9px;
color: #ffd700;
font-weight: bold;
}
.pet-remove-btn {
background: none;
border: none;
color: #e57373;
font-size: 11px;
cursor: pointer;
padding: 0;
text-align: left;
width: fit-content;
&:hover {
color: #ff5252;
text-decoration: underline;
}
}
.saved-outfits-title {
color: #a7a6a2;
font-weight: bold;
}
.nitro-avatar-editor-wardrobe-container {
background-color: #cacaca;
border-radius: 0.3rem;
border: solid 1px #000;
width: 100%;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 10px;
padding: 10px 12px 10px 0;
overflow-y: auto;
}
.nitro-avatar-editor-wardrobe-figure-preview {
border-image-source: url('@/assets/images/avatareditor/wardrobe_user_bg.png');
border-image-slice: 4 4 4 4 fill;
border-image-width: 4px 4px 4px 4px;
background-color: transparent;
overflow: hidden;
position: relative;
.avatar-shadow {
position: absolute;
left: 0;
right: 0;
bottom: 25px;
width: 40px;
height: 20px;
margin: 0 auto;
border-radius: 100%;
background-color: rgba(0, 0, 0, 0.20);
z-index: 2;
}
.button-container {
position: absolute;
bottom: 0;
z-index: 5;
width: 100%;
}
}