* {
box-sizing: border-box;
margin: 0;
padding: 0;
user-select: none;
-webkit-user-select: none;
-webkit-tap-highlight-color:
transparent;
}

html,
body {
width: 100%;
height: 100dvh;
overflow: hidden;
background: #03060c;
color: #f8fafc;
font-family:
system-ui,
-apple-system,
sans-serif;
touch-action: manipulation;
}

.app-shell {
width: 100%;
max-width: 460px;
height: 100dvh;
margin: 0 auto;
display: flex;
flex-direction: column;
justify-content: space-between;
background:
radial-gradient(
circle at 50% 42%,
#0c1a36 0%,
#060b16 58%,
#03060c 100%
);
border-left: 1px solid
rgba(56, 189, 248, 0.16);
border-right: 1px solid
rgba(56, 189, 248, 0.16);
position: relative;
overflow: hidden;
}

.top-cyber-panel {
display: flex;
flex-direction: column;
background:
linear-gradient(
180deg,
#0f182d 0%,
#070c18 100%
);
border-bottom: 1px solid
rgba(0, 240, 255, 0.28);
box-shadow:
0 6px 20px rgba(0, 0, 0, 0.6);
flex-shrink: 0;
z-index: 5;
}

.hud-top-row {
display: flex;
align-items: center;
justify-content: space-between;
padding: 6px 10px;
gap: 6px;
}

.hud-stat-group {
display: flex;
align-items: center;
gap: 8px;
font-size: 13px;
font-variant-numeric: tabular-nums;
white-space: nowrap;
}

.hud-level-txt {
font-weight: 900;
color: #00f0ff;
letter-spacing: 0.05em;
background:
rgba(0, 240, 255, 0.1);
border: 1px solid
rgba(0, 240, 255, 0.32);
padding: 3px 8px;
border-radius: 6px;
text-shadow:
0 0 8px rgba(0, 240, 255, 0.4);
}

.hud-bonus-txt {
color: #f472b6;
font-weight: 800;
font-size: 11px;
background:
rgba(244, 114, 182, 0.14);
border: 1px solid
rgba(244, 114, 182, 0.45);
padding: 2px 6px;
border-radius: 5px;
}

.hud-coins-txt {
color: #38bdf8;
font-weight: 800;
background:
rgba(15, 23, 42, 0.78);
border: 1px solid
rgba(56, 189, 248, 0.3);
padding: 3px 9px;
border-radius: 6px;
}

.top-right-btns {
display: flex;
align-items: center;
gap: 6px;
}

.btn-gear {
min-width: 36px;
min-height: 34px;
border-radius: 8px;
border: 1px solid
rgba(56, 189, 248, 0.35);
background:
linear-gradient(
180deg,
#1e293b 0%,
#0f172a 100%
);
color: #f8fafc;
font-size: 16px;
font-weight: 700;
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
box-shadow:
inset 0 1px 0
rgba(255, 255, 255, 0.12);
}

.btn-gear:active {
transform: scale(0.95);
}

.fox-window-wrap {
position: relative;
width: 100%;
height: 92px;
border-top: 1px solid
rgba(56, 189, 248, 0.15);
overflow: hidden;
}

#fox-canvas {
width: 100%;
height: 100%;
display: block;
}

.fox-hud-overlay {
position: absolute;
inset: 0;
pointer-events: none;
display: flex;
flex-direction: column;
justify-content: space-between;
padding: 5px 10px;
}

.fox-score-row {
display: flex;
align-items: baseline;
gap: 12px;
font-variant-numeric: tabular-nums;
text-shadow: 0 1px 4px #000000;
}

.score-main {
font-size: 22px;
font-weight: 900;
color: #ffffff;
text-shadow:
0 0 10px rgba(0, 240, 255, 0.55);
}

.score-sub {
font-size: 12px;
color: #94a3b8;
font-weight: 700;
}

.fox-goal-row {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 12px;
font-weight: 800;
color: #e2e8f0;
font-variant-numeric: tabular-nums;
text-shadow: 0 1px 3px #000000;
}

.goal-color-dots {
display: inline-flex;
align-items: center;
gap: 6px;
}

.color-goal-item {
display: inline-flex;
align-items: center;
gap: 3px;
}

.color-dot {
width: 10px;
height: 10px;
border-radius: 50%;
display: inline-block;
border: 1px solid #ffffff;
}

.stage-wrap {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: relative;
padding: 4px 8px;
min-height: 0;
}

.board-container {
width: 100%;
max-width: 420px;
aspect-ratio: 1 / 1;
max-height: 100%;
position: relative;
display: flex;
align-items: center;
justify-content: center;
padding: 3px;
}

.hud-corner {
position: absolute;
width: 14px;
height: 14px;
border-color: #00f0ff;
border-style: solid;
opacity: 0.65;
pointer-events: none;
}

.hud-corner.tl {
top: 0;
left: 0;
border-width: 2px 0 0 2px;
}

.hud-corner.tr {
top: 0;
right: 0;
border-width: 2px 2px 0 0;
}

.hud-corner.bl {
bottom: 0;
left: 0;
border-width: 0 0 2px 2px;
}

.hud-corner.br {
bottom: 0;
right: 0;
border-width: 0 2px 2px 0;
}

#board-canvas {
width: 100%;
height: 100%;
display: block;
touch-action: none;
cursor: pointer;
filter:
drop-shadow(
0 10px 26px rgba(0, 0, 0, 0.85)
);
}

.booster-hint-bar {
position: absolute;
top: 8px;
left: 50%;
transform: translateX(-50%);
background:
rgba(8, 15, 30, 0.96);
border: 1px solid #00f0ff;
color: #00f0ff;
font-size: 12px;
font-weight: 800;
padding: 4px 12px;
border-radius: 6px;
z-index: 10;
white-space: nowrap;
box-shadow:
0 4px 14px rgba(0, 0, 0, 0.65);
}

.boosters-bar {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 8px;
padding: 6px 10px;
background:
linear-gradient(
180deg,
rgba(10, 17, 32, 0.92) 0%,
rgba(5, 9, 18, 0.98) 100%
);
border-top: 1px solid
rgba(56, 189, 248, 0.22);
flex-shrink: 0;
}

.booster-btn {
min-height: 50px;
border-radius: 10px;
border: 1px solid
rgba(56, 189, 248, 0.32);
border-bottom: 3px solid
rgba(14, 116, 144, 0.65);
background:
linear-gradient(
180deg,
#162238 0%,
#0b1222 100%
);
color: #f8fafc;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 2px;
padding: 4px 6px;
cursor: pointer;
font-variant-numeric: tabular-nums;
box-shadow:
inset 0 1px 0
rgba(255, 255, 255, 0.1),
0 4px 10px rgba(0, 0, 0, 0.45);
}

.booster-btn.active {
border-color: #00f0ff;
background:
linear-gradient(
180deg,
rgba(0, 240, 255, 0.28) 0%,
rgba(15, 23, 42, 0.95) 100%
);
box-shadow:
0 0 14px rgba(0, 240, 255, 0.45);
}

.booster-btn:active {
transform: translateY(1px);
}

.booster-top {
display: flex;
align-items: center;
gap: 4px;
font-size: 12px;
font-weight: 800;
white-space: nowrap;
}

.booster-price {
font-size: 11px;
font-weight: 800;
color: #38bdf8;
}

.bottom-ad-bar {
width: 100%;
height: 48px;
background: #070a12;
border-top: 1px solid #1e293b;
flex-shrink: 0;
overflow: hidden;
}

.bottom-ad-link {
display: block;
width: 100%;
height: 100%;
}

#bottom-ad-img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}

.overlay-backdrop {
position: absolute;
inset: 0;
background: rgba(3, 6, 14, 0.82);
backdrop-filter: blur(6px);
display: flex;
align-items: center;
justify-content: center;
padding: 14px;
z-index: 30;
}

.modal-card {
width: 100%;
max-width: 340px;
background:
linear-gradient(
180deg,
#131e36 0%,
#090f1d 100%
);
border: 1px solid
rgba(0, 240, 255, 0.42);
border-radius: 16px;
padding: 16px 14px;
display: flex;
flex-direction: column;
gap: 10px;
text-align: center;
box-shadow:
0 18px 44px rgba(0, 0, 0, 0.85),
inset 0 1px 0
rgba(255, 255, 255, 0.12);
}

.modal-header-row {
display: flex;
align-items: center;
justify-content: space-between;
}

.modal-title {
font-size: 20px;
font-weight: 900;
color: #00f0ff;
letter-spacing: 0.03em;
text-shadow:
0 0 12px rgba(0, 240, 255, 0.45);
}

.coins-wallet-line {
font-size: 14px;
font-weight: 800;
color: #38bdf8;
font-variant-numeric: tabular-nums;
}

.mode-tabs {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 6px;
background: #070b14;
padding: 4px;
border-radius: 10px;
border: 1px solid #1e293b;
}

.tab-btn {
min-height: 36px;
border: none;
border-radius: 7px;
background: transparent;
color: #94a3b8;
font-size: 12px;
font-weight: 800;
cursor: pointer;
white-space: nowrap;
}

.tab-btn.active {
background: #1e293b;
color: #00f0ff;
}

.free-net-opts {
display: flex;
flex-direction: column;
gap: 6px;
background: #070b14;
padding: 8px;
border-radius: 10px;
border: 1px solid #1e293b;
}

.opt-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 6px;
font-size: 12px;
font-weight: 700;
color: #cbd5e1;
}

.chip-row {
display: flex;
gap: 4px;
}

.chip-btn {
min-width: 32px;
min-height: 30px;
padding: 0 6px;
border-radius: 6px;
border: 1px solid #334155;
background: #162033;
color: #cbd5e1;
font-size: 12px;
font-weight: 800;
cursor: pointer;
}

.chip-btn.active {
border-color: #00f0ff;
background: #00f0ff;
color: #05070d;
}

.theme-picker {
display: flex;
align-items: center;
justify-content: space-between;
gap: 6px;
}

.arrow-btn {
min-width: 38px;
min-height: 68px;
border-radius: 8px;
border: 1px solid #334155;
background: #1e293b;
color: #f8fafc;
font-size: 16px;
cursor: pointer;
}

.arrow-btn:disabled {
opacity: 0.35;
cursor: default;
}

.theme-preview-canvas {
width: 200px;
height: 68px;
border-radius: 8px;
display: block;
}

.theme-meta-row {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 12px;
font-weight: 700;
color: #e2e8f0;
}

.btn-primary {
min-height: 44px;
border-radius: 10px;
border: 1px solid #67e8f9;
background:
linear-gradient(
90deg,
#00f0ff 0%,
#a855f7 100%
);
color: #05070d;
font-size: 15px;
font-weight: 900;
cursor: pointer;
padding: 8px 14px;
white-space: nowrap;
}

.btn-secondary {
min-height: 42px;
border-radius: 10px;
border: 1px solid #334155;
background: #1e293b;
color: #f8fafc;
font-size: 13px;
font-weight: 700;
cursor: pointer;
padding: 8px 12px;
white-space: nowrap;
}

.stack-col {
display: flex;
flex-direction: column;
gap: 8px;
}

.stats-box {
background: #070b14;
border: 1px solid #1e293b;
border-radius: 10px;
padding: 10px;
display: flex;
flex-direction: column;
gap: 6px;
font-size: 13px;
font-variant-numeric: tabular-nums;
}

.stats-line {
display: flex;
align-items: center;
justify-content: space-between;
}

.drawer-panel {
position: absolute;
inset: 0;
background: #070b14;
z-index: 40;
padding: 12px;
display: flex;
flex-direction: column;
gap: 10px;
overflow-y: auto;
}

.row-between {
display: flex;
align-items: center;
justify-content: space-between;
}

.field-group {
display: flex;
flex-direction: column;
gap: 4px;
font-size: 12px;
color: #cbd5e1;
text-align: left;
}

.field-group input[type='number'],
.field-group input[type='text'] {
min-height: 36px;
border-radius: 8px;
border: 1px solid #334155;
background: #111827;
color: #ffffff;
padding: 4px 8px;
font-size: 13px;
}

.lang-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 6px;
}

.lang-btn {
min-height: 34px;
border-radius: 6px;
border: 1px solid #334155;
background: #162033;
color: #e2e8f0;
font-size: 11px;
font-weight: 800;
cursor: pointer;
text-transform: uppercase;
}

.lang-btn.active {
border-color: #00f0ff;
background: #00f0ff;
color: #05070d;
}

.hidden {
display: none !important;
}
