11948 lines
234 KiB
CSS
11948 lines
234 KiB
CSS
/* ===== CSS Variables & Reset ===== */
|
|
:root {
|
|
--bg-primary: #0a0e17;
|
|
--bg-secondary: #111827;
|
|
--bg-card: rgba(17, 24, 39, 0.7);
|
|
--bg-glass: rgba(255, 255, 255, 0.05);
|
|
--text-primary: #f1f5f9;
|
|
--text-secondary: #94a3b8;
|
|
--text-muted: #64748b;
|
|
--accent-1: #FF6B6B;
|
|
--accent-2: #FFE66D;
|
|
--accent-3: #4ECDC4;
|
|
--accent-4: #A78BFA;
|
|
--gradient-main: linear-gradient(135deg, #FF6B6B, #FFE66D, #4ECDC4);
|
|
--gradient-text: linear-gradient(135deg, #FF6B6B 0%, #FFE66D 50%, #4ECDC4 100%);
|
|
--shadow-glow: 0 0 40px rgba(78, 205, 196, 0.15);
|
|
--shadow-card: 0 8px 32px rgba(0, 0, 0, 0.3);
|
|
--border-glass: 1px solid rgba(255, 255, 255, 0.08);
|
|
--radius-sm: 8px;
|
|
--radius-md: 16px;
|
|
--radius-lg: 24px;
|
|
--radius-xl: 32px;
|
|
--font-display: var(--font-outfit), "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;
|
|
--font-body: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", var(--font-outfit), sans-serif;
|
|
--nav-height: 72px;
|
|
--transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
[data-theme="light"] {
|
|
--bg-primary: #f8fafc;
|
|
--bg-secondary: #ffffff;
|
|
--bg-card: rgba(255, 255, 255, 0.85);
|
|
--bg-glass: rgba(0, 0, 0, 0.03);
|
|
--text-primary: #0f172a;
|
|
--text-secondary: #475569;
|
|
--text-muted: #94a3b8;
|
|
--shadow-glow: 0 0 40px rgba(78, 205, 196, 0.1);
|
|
--shadow-card: 0 8px 32px rgba(0, 0, 0, 0.08);
|
|
--border-glass: 1px solid rgba(0, 0, 0, 0.06);
|
|
}
|
|
|
|
/*
|
|
* MUST stay in @layer base. Unlayered * { padding:0; margin:0 } beats
|
|
* Tailwind @layer utilities (px-12 / mx-auto), which zeroed ebook paper
|
|
* padding and broke reader centering.
|
|
*/
|
|
@layer base {
|
|
*, *::before, *::after {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
}
|
|
|
|
html {
|
|
scroll-behavior: smooth;
|
|
scroll-padding-top: var(--nav-height);
|
|
}
|
|
|
|
/* Ebook routes: don't steal sticky chrome or pad for main nav */
|
|
html:has([data-ebook-root]) {
|
|
scroll-padding-top: 0;
|
|
}
|
|
|
|
body {
|
|
font-family: var(--font-body);
|
|
background: var(--bg-primary);
|
|
color: var(--text-primary);
|
|
line-height: 1.6;
|
|
overflow-x: hidden;
|
|
transition: background var(--transition), color var(--transition);
|
|
}
|
|
|
|
/*
|
|
* ?????? overflow-x: hidden|clip ???? sticky ??
|
|
*????????????????? ?? ??????????
|
|
* ebook ?? html/body ?? visible?
|
|
*/
|
|
html:has([data-ebook-root]) {
|
|
overflow-x: visible;
|
|
overflow-y: visible;
|
|
}
|
|
html:has([data-ebook-root]) body {
|
|
overflow-x: visible !important;
|
|
overflow-y: visible !important;
|
|
background: transparent;
|
|
color: inherit;
|
|
}
|
|
|
|
a {
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
|
|
img { max-width: 100%; display: block; }
|
|
|
|
.container {
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
padding: 0 24px;
|
|
}
|
|
|
|
/* ===== Particle Canvas ===== */
|
|
#particle-canvas {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: 0;
|
|
pointer-events: none;
|
|
}
|
|
|
|
/* ===== Navbar ===== */
|
|
.navbar {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: var(--nav-height);
|
|
z-index: 1000;
|
|
transition: all var(--transition);
|
|
background: transparent;
|
|
}
|
|
|
|
.navbar.scrolled {
|
|
background: rgba(10, 14, 23, 0.85);
|
|
backdrop-filter: blur(20px);
|
|
border-bottom: var(--border-glass);
|
|
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
[data-theme="light"] .navbar.scrolled {
|
|
background: rgba(248, 250, 252, 0.9);
|
|
}
|
|
|
|
.nav-container {
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
padding: 0 24px;
|
|
height: 100%;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
}
|
|
|
|
.nav-container > .logo {
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.nav-container > .nav-links {
|
|
flex: 1;
|
|
justify-content: center;
|
|
min-width: 0;
|
|
}
|
|
|
|
.nav-utils {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 8px;
|
|
margin-left: auto;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.nav-utils .nav-lang-btn,
|
|
.nav-utils .nav-cta,
|
|
.nav-utils .nav-notify {
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.nav-utils .nav-cta {
|
|
width: 36px;
|
|
height: 36px;
|
|
font-size: 1.05rem;
|
|
}
|
|
|
|
.nav-notify-guest {
|
|
opacity: 0.85;
|
|
}
|
|
|
|
.logo {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
font-family: var(--font-display);
|
|
font-weight: 800;
|
|
font-size: 1.35rem;
|
|
letter-spacing: -0.02em;
|
|
}
|
|
|
|
.logo span {
|
|
background: linear-gradient(135deg, #FF6B6B, #FFE66D, #4ECDC4);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
.logo-icon {
|
|
width: 36px;
|
|
height: 36px;
|
|
animation: logoSpin 20s linear infinite;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
@keyframes logoSpin {
|
|
from { transform: rotate(0deg); }
|
|
to { transform: rotate(360deg); }
|
|
}
|
|
|
|
.nav-links {
|
|
display: flex;
|
|
gap: 8px;
|
|
}
|
|
|
|
.nav-links a {
|
|
padding: 8px 16px;
|
|
border-radius: var(--radius-sm);
|
|
font-size: 0.9rem;
|
|
font-weight: 500;
|
|
color: var(--text-secondary);
|
|
transition: all var(--transition);
|
|
}
|
|
|
|
.nav-links a:hover {
|
|
color: var(--text-primary);
|
|
background: var(--bg-glass);
|
|
}
|
|
|
|
.nav-cta {
|
|
width: 44px;
|
|
height: 44px;
|
|
border-radius: 50%;
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
cursor: pointer;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 1.2rem;
|
|
transition: all var(--transition);
|
|
backdrop-filter: blur(10px);
|
|
}
|
|
|
|
.nav-cta:hover {
|
|
transform: scale(1.1);
|
|
box-shadow: var(--shadow-glow);
|
|
}
|
|
|
|
.mobile-menu-btn {
|
|
display: none;
|
|
flex-direction: column;
|
|
gap: 5px;
|
|
background: none;
|
|
border: none;
|
|
cursor: pointer;
|
|
padding: 8px;
|
|
}
|
|
|
|
.mobile-menu-btn span {
|
|
display: block;
|
|
width: 24px;
|
|
height: 2px;
|
|
background: var(--text-primary);
|
|
border-radius: 2px;
|
|
transition: all 0.3s ease;
|
|
transform-origin: center;
|
|
}
|
|
|
|
.mobile-menu-btn.open span:nth-child(1) {
|
|
transform: translateY(7px) rotate(45deg);
|
|
}
|
|
|
|
.mobile-menu-btn.open span:nth-child(2) {
|
|
opacity: 0;
|
|
transform: scaleX(0);
|
|
}
|
|
|
|
.mobile-menu-btn.open span:nth-child(3) {
|
|
transform: translateY(-7px) rotate(-45deg);
|
|
}
|
|
|
|
/* ===== Hero ===== */
|
|
.hero {
|
|
position: relative;
|
|
min-height: 100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
padding: calc(var(--nav-height) + 52px) 24px 80px;
|
|
z-index: 1;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.hero-bg-shapes {
|
|
position: absolute;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
z-index: 0;
|
|
}
|
|
|
|
.hero-inner {
|
|
position: relative;
|
|
z-index: 1;
|
|
width: 100%;
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.hero-top {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
align-items: center;
|
|
gap: 32px 48px;
|
|
}
|
|
|
|
.hero-content {
|
|
min-width: 0;
|
|
}
|
|
|
|
.hero-bottom {
|
|
margin-top: 40px;
|
|
}
|
|
|
|
.hero-visual {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
position: relative;
|
|
width: 100%;
|
|
overflow: visible;
|
|
}
|
|
|
|
.globe-container {
|
|
position: relative;
|
|
width: 100%;
|
|
max-width: 400px;
|
|
margin: 0 auto;
|
|
overflow: visible;
|
|
}
|
|
|
|
.hero-bg-shapes .shape {
|
|
position: absolute;
|
|
border-radius: 50%;
|
|
filter: blur(80px);
|
|
opacity: 0.4;
|
|
animation: floatShape 8s ease-in-out infinite;
|
|
}
|
|
|
|
.shape-1 {
|
|
width: 400px;
|
|
height: 400px;
|
|
background: var(--accent-1);
|
|
top: 10%;
|
|
left: -10%;
|
|
animation-delay: 0s;
|
|
}
|
|
|
|
.shape-2 {
|
|
width: 300px;
|
|
height: 300px;
|
|
background: var(--accent-3);
|
|
top: 50%;
|
|
right: -5%;
|
|
animation-delay: -3s;
|
|
}
|
|
|
|
.shape-3 {
|
|
width: 250px;
|
|
height: 250px;
|
|
background: var(--accent-2);
|
|
bottom: 10%;
|
|
left: 30%;
|
|
animation-delay: -5s;
|
|
}
|
|
|
|
@keyframes floatShape {
|
|
0%, 100% { transform: translate(0, 0) scale(1); }
|
|
33% { transform: translate(30px, -30px) scale(1.05); }
|
|
66% { transform: translate(-20px, 20px) scale(0.95); }
|
|
}
|
|
|
|
.hero-badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 8px 20px;
|
|
border-radius: 100px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 24px;
|
|
backdrop-filter: blur(10px);
|
|
}
|
|
|
|
.badge-dot {
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
background: #22c55e;
|
|
animation: pulse 2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes pulse {
|
|
0%, 100% { opacity: 1; transform: scale(1); }
|
|
50% { opacity: 0.5; transform: scale(1.5); }
|
|
}
|
|
|
|
.hero-title {
|
|
font-family: var(--font-display);
|
|
font-size: clamp(2.5rem, 5vw, 4rem);
|
|
font-weight: 800;
|
|
line-height: 1.15;
|
|
margin-bottom: 20px;
|
|
letter-spacing: -0.02em;
|
|
}
|
|
|
|
.gradient-text {
|
|
background: var(--gradient-text);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
background-size: 200% auto;
|
|
animation: gradientShift 4s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes gradientShift {
|
|
0%, 100% { background-position: 0% center; }
|
|
50% { background-position: 100% center; }
|
|
}
|
|
|
|
.hero-subtitle {
|
|
font-size: 1.1rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 0;
|
|
max-width: 480px;
|
|
line-height: 1.8;
|
|
}
|
|
|
|
.hero-actions {
|
|
display: flex;
|
|
gap: 16px;
|
|
margin-bottom: 32px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 14px 28px;
|
|
border-radius: var(--radius-md);
|
|
font-weight: 600;
|
|
font-size: 0.95rem;
|
|
cursor: pointer;
|
|
border: none;
|
|
transition: all var(--transition);
|
|
font-family: inherit;
|
|
}
|
|
|
|
.btn-primary {
|
|
background: var(--gradient-main);
|
|
color: #0a0e17;
|
|
box-shadow: 0 4px 20px rgba(255, 107, 107, 0.3);
|
|
}
|
|
|
|
.btn-primary:hover {
|
|
transform: translateY(-2px);
|
|
box-shadow: 0 8px 30px rgba(255, 107, 107, 0.4);
|
|
}
|
|
|
|
.btn-ghost {
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
color: var(--text-primary);
|
|
backdrop-filter: blur(10px);
|
|
}
|
|
|
|
.btn-ghost:hover {
|
|
background: rgba(255, 255, 255, 0.1);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.hero-stats {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 24px;
|
|
padding: 24px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.stat-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
}
|
|
|
|
.stat-number {
|
|
font-family: var(--font-display);
|
|
font-size: 2rem;
|
|
font-weight: 800;
|
|
background: var(--gradient-text);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
.stat-label {
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.stat-divider {
|
|
width: 1px;
|
|
height: 40px;
|
|
background: var(--border-glass);
|
|
}
|
|
|
|
/* Globe Visual */
|
|
.globe-svg {
|
|
width: 100%;
|
|
height: auto;
|
|
animation: globeFloat 6s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes globeFloat {
|
|
0%, 100% { transform: translateY(0); }
|
|
50% { transform: translateY(-15px); }
|
|
}
|
|
|
|
.orbit-ring {
|
|
animation: orbitSpin 20s linear infinite;
|
|
transform-origin: center;
|
|
}
|
|
|
|
.orbit-ring-2 {
|
|
animation-direction: reverse;
|
|
animation-duration: 15s;
|
|
}
|
|
|
|
@keyframes orbitSpin {
|
|
from { transform: rotate(0deg); }
|
|
to { transform: rotate(360deg); }
|
|
}
|
|
|
|
.continent {
|
|
animation: continentPulse 4s ease-in-out infinite;
|
|
}
|
|
|
|
.pulse-dot {
|
|
animation: dotPulse 2s ease-in-out infinite;
|
|
}
|
|
|
|
.pulse-dot:nth-child(2) { animation-delay: 0.5s; }
|
|
.pulse-dot:nth-child(3) { animation-delay: 1s; }
|
|
.pulse-dot:nth-child(4) { animation-delay: 1.5s; }
|
|
|
|
@keyframes dotPulse {
|
|
0%, 100% { r: 5; opacity: 1; }
|
|
50% { r: 8; opacity: 0.6; }
|
|
}
|
|
|
|
.flight-path {
|
|
animation: dashMove 3s linear infinite;
|
|
}
|
|
|
|
@keyframes dashMove {
|
|
to { stroke-dashoffset: -20; }
|
|
}
|
|
|
|
.floating-cards .float-card {
|
|
position: absolute;
|
|
padding: 10px 16px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
backdrop-filter: blur(20px);
|
|
box-shadow: var(--shadow-card);
|
|
animation: cardFloat 4s ease-in-out infinite;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.float-card small {
|
|
display: block;
|
|
font-weight: 400;
|
|
color: var(--text-muted);
|
|
font-size: 0.7rem;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.fc-1 { top: 5%; right: -8%; animation-delay: 0s; }
|
|
.fc-2 { top: 38%; left: -14%; animation-delay: -1.5s; }
|
|
.fc-3 { bottom: 10%; right: -2%; animation-delay: -3s; }
|
|
|
|
@keyframes cardFloat {
|
|
0%, 100% { transform: translateY(0); }
|
|
50% { transform: translateY(-10px); }
|
|
}
|
|
|
|
.scroll-indicator {
|
|
position: absolute;
|
|
bottom: 30px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 8px;
|
|
color: var(--text-muted);
|
|
font-size: 0.8rem;
|
|
animation: bounce 2s ease-in-out infinite;
|
|
}
|
|
|
|
.scroll-arrow svg {
|
|
opacity: 0.5;
|
|
}
|
|
|
|
@keyframes bounce {
|
|
0%, 100% { transform: translateX(-50%) translateY(0); }
|
|
50% { transform: translateX(-50%) translateY(8px); }
|
|
}
|
|
|
|
/* ===== Sections ===== */
|
|
.section {
|
|
position: relative;
|
|
padding: 100px 0;
|
|
z-index: 1;
|
|
content-visibility: auto;
|
|
contain-intrinsic-size: auto 480px;
|
|
}
|
|
|
|
.section-header {
|
|
text-align: center;
|
|
margin-bottom: 60px;
|
|
}
|
|
|
|
.section-tag {
|
|
display: inline-block;
|
|
padding: 6px 16px;
|
|
border-radius: 100px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
font-size: 0.75rem;
|
|
font-weight: 600;
|
|
letter-spacing: 0.1em;
|
|
color: var(--accent-3);
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.section-header h2 {
|
|
font-family: var(--font-display);
|
|
font-size: clamp(2rem, 4vw, 2.75rem);
|
|
font-weight: 800;
|
|
margin-bottom: 12px;
|
|
letter-spacing: -0.02em;
|
|
}
|
|
|
|
.section-header p {
|
|
color: var(--text-secondary);
|
|
font-size: 1.05rem;
|
|
max-width: 500px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
/* ===== Destinations ===== */
|
|
.dest-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 24px;
|
|
}
|
|
|
|
.dest-card {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
overflow: hidden;
|
|
transition: all var(--transition);
|
|
backdrop-filter: blur(20px);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.dest-card:hover {
|
|
transform: translateY(-8px);
|
|
box-shadow: var(--shadow-glow);
|
|
border-color: rgba(78, 205, 196, 0.3);
|
|
}
|
|
|
|
.dest-img {
|
|
position: relative;
|
|
height: 180px;
|
|
background: linear-gradient(
|
|
135deg,
|
|
hsl(var(--hue, 170), 60%, 20%),
|
|
hsl(calc(var(--hue, 170) + 40), 50%, 30%)
|
|
);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.dest-img::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: radial-gradient(circle at 30% 70%, rgba(255,255,255,0.1), transparent);
|
|
}
|
|
|
|
.dest-emoji {
|
|
font-size: 4rem;
|
|
animation: emojiBounce 3s ease-in-out infinite;
|
|
filter: drop-shadow(0 4px 12px rgba(0,0,0,0.3));
|
|
}
|
|
|
|
@keyframes emojiBounce {
|
|
0%, 100% { transform: scale(1) rotate(0deg); }
|
|
50% { transform: scale(1.1) rotate(5deg); }
|
|
}
|
|
|
|
.dest-overlay {
|
|
position: absolute;
|
|
bottom: 12px;
|
|
left: 12px;
|
|
}
|
|
|
|
.dest-tag {
|
|
padding: 4px 12px;
|
|
border-radius: 100px;
|
|
background: rgba(0, 0, 0, 0.5);
|
|
backdrop-filter: blur(10px);
|
|
font-size: 0.7rem;
|
|
color: #fff;
|
|
}
|
|
|
|
.dest-body {
|
|
padding: 20px;
|
|
}
|
|
|
|
.dest-body h3 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.15rem;
|
|
font-weight: 700;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.dest-body > p {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 16px;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.dest-meta {
|
|
display: flex;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.dest-meta span {
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
padding: 4px 8px;
|
|
background: var(--bg-glass);
|
|
border-radius: var(--radius-sm);
|
|
}
|
|
|
|
.dest-rating {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.stars { font-size: 0.75rem; }
|
|
|
|
/* ===== Timeline ===== */
|
|
.lifestyle {
|
|
background: linear-gradient(180deg, transparent, rgba(78, 205, 196, 0.03), transparent);
|
|
}
|
|
|
|
.timeline {
|
|
position: relative;
|
|
max-width: 700px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.timeline-line {
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 4px;
|
|
transform: translateX(-50%);
|
|
}
|
|
|
|
.timeline-svg-line {
|
|
animation: dashFlow 2s linear infinite;
|
|
}
|
|
|
|
@keyframes dashFlow {
|
|
to { stroke-dashoffset: -14; }
|
|
}
|
|
|
|
.timeline-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 24px;
|
|
margin-bottom: 40px;
|
|
position: relative;
|
|
}
|
|
|
|
.timeline-item:nth-child(even) {
|
|
flex-direction: row-reverse;
|
|
}
|
|
|
|
.timeline-item:nth-child(even) .timeline-card {
|
|
text-align: right;
|
|
}
|
|
|
|
.timeline-time {
|
|
flex: 0 0 100px;
|
|
text-align: center;
|
|
font-weight: 700;
|
|
font-size: 0.9rem;
|
|
color: var(--accent-2);
|
|
font-family: var(--font-display);
|
|
}
|
|
|
|
.timeline-card {
|
|
flex: 1;
|
|
padding: 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(20px);
|
|
transition: all var(--transition);
|
|
position: relative;
|
|
}
|
|
|
|
.timeline-card:hover {
|
|
transform: scale(1.02);
|
|
box-shadow: var(--shadow-glow);
|
|
}
|
|
|
|
.timeline-icon {
|
|
font-size: 2rem;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.timeline-card h3 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.1rem;
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
.timeline-card p {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
/* ===== Charts ===== */
|
|
.data-section {
|
|
background: linear-gradient(180deg, transparent, rgba(255, 107, 107, 0.02), transparent);
|
|
}
|
|
|
|
.charts-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, 1fr);
|
|
gap: 24px;
|
|
}
|
|
|
|
.chart-card {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
padding: 28px;
|
|
backdrop-filter: blur(20px);
|
|
transition: all var(--transition);
|
|
}
|
|
|
|
.chart-card:hover {
|
|
box-shadow: var(--shadow-glow);
|
|
}
|
|
|
|
.chart-card h3 {
|
|
font-family: var(--font-display);
|
|
font-size: 1rem;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.chart-wrap {
|
|
position: relative;
|
|
height: 280px;
|
|
}
|
|
|
|
.chart-radar {
|
|
height: 300px;
|
|
}
|
|
|
|
.chart-wide {
|
|
grid-column: span 2;
|
|
}
|
|
|
|
/* ===== Tools ===== */
|
|
.tools-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 24px;
|
|
}
|
|
|
|
.tool-card {
|
|
position: relative;
|
|
padding: 32px 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(20px);
|
|
transition: all var(--transition);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tool-card::before {
|
|
content: '';
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 3px;
|
|
background: var(--gradient-main);
|
|
transform: scaleX(0);
|
|
transition: transform var(--transition);
|
|
}
|
|
|
|
.tool-card:hover::before {
|
|
transform: scaleX(1);
|
|
}
|
|
|
|
.tool-card:hover {
|
|
transform: translateY(-6px);
|
|
box-shadow: var(--shadow-glow);
|
|
}
|
|
|
|
.tool-icon-wrap {
|
|
width: 48px;
|
|
height: 48px;
|
|
color: var(--accent-3);
|
|
margin-bottom: 12px;
|
|
opacity: 0.6;
|
|
}
|
|
|
|
.tool-emoji {
|
|
font-size: 2rem;
|
|
display: block;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.tool-card h3 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.1rem;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.tool-card > p {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.tool-tags {
|
|
display: flex;
|
|
gap: 6px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.tool-tags span {
|
|
padding: 3px 10px;
|
|
border-radius: 100px;
|
|
font-size: 0.7rem;
|
|
background: var(--bg-glass);
|
|
color: var(--text-muted);
|
|
border: var(--border-glass);
|
|
}
|
|
|
|
/* ===== Community ===== */
|
|
.testimonials {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 24px;
|
|
margin-bottom: 60px;
|
|
}
|
|
|
|
.testimonial-card {
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(20px);
|
|
transition: all var(--transition);
|
|
}
|
|
|
|
.testimonial-card:hover {
|
|
transform: translateY(-4px);
|
|
box-shadow: var(--shadow-glow);
|
|
}
|
|
|
|
.testimonial-avatar {
|
|
font-size: 2.5rem;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.testimonial-stars {
|
|
font-size: 0.8rem;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.testimonial-content p {
|
|
font-size: 0.9rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.7;
|
|
margin-bottom: 20px;
|
|
font-style: italic;
|
|
}
|
|
|
|
.testimonial-author strong {
|
|
display: block;
|
|
font-size: 0.9rem;
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.testimonial-author span {
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.cta-banner {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 40px;
|
|
padding: 48px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.cta-banner::before {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: var(--gradient-main);
|
|
opacity: 0.05;
|
|
}
|
|
|
|
.cta-content {
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.cta-content h2 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.5rem;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.cta-content p {
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.cta-form {
|
|
display: flex;
|
|
gap: 12px;
|
|
position: relative;
|
|
z-index: 1;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.cta-form input {
|
|
padding: 14px 20px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
font-family: inherit;
|
|
font-size: 0.9rem;
|
|
width: 280px;
|
|
outline: none;
|
|
transition: all var(--transition);
|
|
}
|
|
|
|
.cta-form input:focus {
|
|
border-color: var(--accent-3);
|
|
box-shadow: 0 0 0 3px rgba(78, 205, 196, 0.15);
|
|
}
|
|
|
|
.cta-form input::placeholder {
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* ===== Footer ===== */
|
|
.footer {
|
|
position: relative;
|
|
z-index: 1;
|
|
padding: 60px 0 30px;
|
|
border-top: var(--border-glass);
|
|
background: var(--bg-secondary);
|
|
}
|
|
|
|
.footer-grid {
|
|
display: grid;
|
|
grid-template-columns: 2fr 1fr 1fr 1fr;
|
|
gap: 40px;
|
|
margin-bottom: 40px;
|
|
}
|
|
|
|
.footer-brand p {
|
|
color: var(--text-secondary);
|
|
font-size: 0.85rem;
|
|
margin: 16px 0;
|
|
max-width: 280px;
|
|
}
|
|
|
|
.social-links {
|
|
display: flex;
|
|
gap: 12px;
|
|
}
|
|
|
|
.social-links a {
|
|
width: 40px;
|
|
height: 40px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 50%;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
font-size: 1rem;
|
|
transition: all var(--transition);
|
|
}
|
|
|
|
.social-links a:hover {
|
|
transform: translateY(-3px);
|
|
background: var(--accent-3);
|
|
color: #0a0e17;
|
|
}
|
|
|
|
.footer-links h4 {
|
|
font-family: var(--font-display);
|
|
font-size: 0.9rem;
|
|
margin-bottom: 16px;
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
.footer-links a {
|
|
display: block;
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
padding: 6px 0;
|
|
transition: color var(--transition);
|
|
}
|
|
|
|
.footer-links a:hover {
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.footer-bottom {
|
|
text-align: center;
|
|
padding-top: 30px;
|
|
border-top: var(--border-glass);
|
|
}
|
|
|
|
.footer-bottom p {
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.footer-emoji-bar {
|
|
margin-top: 12px;
|
|
font-size: 1.2rem;
|
|
letter-spacing: 8px;
|
|
animation: emojiScroll 10s linear infinite;
|
|
}
|
|
|
|
@keyframes emojiScroll {
|
|
0%, 100% { letter-spacing: 8px; }
|
|
50% { letter-spacing: 16px; }
|
|
}
|
|
|
|
/* ===== Toast ===== */
|
|
.toast {
|
|
position: fixed;
|
|
bottom: 30px;
|
|
right: 30px;
|
|
padding: 16px 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
backdrop-filter: blur(20px);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
box-shadow: var(--shadow-card);
|
|
transform: translateY(100px);
|
|
opacity: 0;
|
|
transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
|
|
z-index: 2000;
|
|
}
|
|
|
|
.toast.show {
|
|
transform: translateY(0);
|
|
opacity: 1;
|
|
}
|
|
|
|
/* ===== Reveal Animation ===== */
|
|
.reveal {
|
|
opacity: 0;
|
|
transform: translateY(30px);
|
|
transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
.reveal.visible {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
/* Sub-pages use SiteShell, not HomeClient ? ensure content is never stuck hidden */
|
|
:not(.home-flow) .reveal {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
:not(.home-flow) .reveal.visible {
|
|
transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
/* Deferred kits: once mounted, never stay invisible if JS timing races */
|
|
[data-deferred="ready"] .reveal {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.deferred-skeleton {
|
|
height: 120px;
|
|
margin: 24px auto;
|
|
max-width: 1200px;
|
|
border-radius: var(--radius-xl);
|
|
background: linear-gradient(90deg, rgba(255,255,255,0.03), rgba(255,255,255,0.07), rgba(255,255,255,0.03));
|
|
background-size: 200% 100%;
|
|
animation: deferredShimmer 1.2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes deferredShimmer {
|
|
0% { background-position: 100% 0; }
|
|
100% { background-position: -100% 0; }
|
|
}
|
|
|
|
.focus-streak {
|
|
text-align: center;
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
margin: -4px 0 12px;
|
|
}
|
|
|
|
.focus-streak b {
|
|
color: var(--accent-3);
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
@media (prefers-reduced-motion: reduce) {
|
|
.reveal {
|
|
opacity: 1;
|
|
transform: none;
|
|
transition: none;
|
|
}
|
|
.deferred-skeleton { animation: none; }
|
|
.loader-ring,
|
|
.loader-progress { animation: none !important; }
|
|
}
|
|
|
|
/* ===== Responsive ===== */
|
|
@media (max-width: 1024px) {
|
|
.hero-top {
|
|
grid-template-columns: 1fr;
|
|
text-align: center;
|
|
gap: 28px;
|
|
}
|
|
|
|
.hero-subtitle { margin: 0 auto; max-width: 100%; }
|
|
.hero-actions { justify-content: center; }
|
|
.hero-stats { justify-content: center; }
|
|
.hero-visual { order: -1; }
|
|
.globe-container { max-width: 280px; }
|
|
|
|
.dest-grid { grid-template-columns: repeat(2, 1fr); }
|
|
.tools-grid { grid-template-columns: repeat(2, 1fr); }
|
|
.testimonials { grid-template-columns: 1fr; }
|
|
.footer-grid { grid-template-columns: repeat(2, 1fr); }
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.nav-links {
|
|
display: none;
|
|
flex-direction: column;
|
|
position: absolute;
|
|
top: var(--nav-height);
|
|
left: 0;
|
|
right: 0;
|
|
background: var(--bg-secondary);
|
|
padding: 20px;
|
|
border-bottom: var(--border-glass);
|
|
opacity: 0;
|
|
transform: translateY(-8px);
|
|
pointer-events: none;
|
|
transition: all 0.3s ease;
|
|
}
|
|
.nav-links.open {
|
|
display: flex;
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.mobile-menu-btn { display: flex; }
|
|
|
|
.hero-stats {
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
}
|
|
|
|
.stat-divider {
|
|
width: 40px;
|
|
height: 1px;
|
|
}
|
|
|
|
.dest-grid { grid-template-columns: 1fr; }
|
|
.charts-grid { grid-template-columns: 1fr; }
|
|
.chart-wide { grid-column: span 1; }
|
|
.tools-grid { grid-template-columns: 1fr; }
|
|
|
|
.timeline-item,
|
|
.timeline-item:nth-child(even) {
|
|
flex-direction: column;
|
|
text-align: center;
|
|
}
|
|
|
|
.timeline-item:nth-child(even) .timeline-card {
|
|
text-align: center;
|
|
}
|
|
|
|
.timeline-line { display: none; }
|
|
.timeline-time { flex: none; }
|
|
|
|
.cta-banner {
|
|
flex-direction: column;
|
|
text-align: center;
|
|
padding: 32px 24px;
|
|
}
|
|
|
|
.cta-form {
|
|
flex-direction: column;
|
|
width: 100%;
|
|
}
|
|
|
|
.cta-form input { width: 100%; }
|
|
|
|
.footer-grid { grid-template-columns: 1fr; }
|
|
}
|
|
|
|
/* ===== Loader ===== */
|
|
.loader {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 9999;
|
|
background: var(--bg-primary);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: opacity 0.6s ease, visibility 0.6s ease;
|
|
}
|
|
|
|
.loader.hidden,
|
|
.loader.loader-done {
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.loader-inner {
|
|
text-align: center;
|
|
}
|
|
|
|
.loader-globe {
|
|
width: 80px;
|
|
height: 80px;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.loader-ring {
|
|
animation: loaderSpin 1.5s linear infinite;
|
|
transform-origin: center;
|
|
}
|
|
|
|
@keyframes loaderSpin {
|
|
to { transform: rotate(360deg); }
|
|
}
|
|
|
|
.loader-text {
|
|
font-family: var(--font-display);
|
|
font-size: 1.5rem;
|
|
font-weight: 800;
|
|
background: var(--gradient-text);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.loader-bar {
|
|
width: 200px;
|
|
height: 3px;
|
|
background: var(--bg-glass);
|
|
border-radius: 3px;
|
|
overflow: hidden;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.loader-progress {
|
|
height: 100%;
|
|
background: var(--gradient-main);
|
|
border-radius: 3px;
|
|
animation: loaderProgress 1.8s ease-in-out forwards;
|
|
}
|
|
|
|
@keyframes loaderProgress {
|
|
from { width: 0; }
|
|
to { width: 100%; }
|
|
}
|
|
|
|
/* ===== Ticker ===== */
|
|
.ticker-bar {
|
|
position: fixed;
|
|
top: var(--nav-height);
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 999;
|
|
background: rgba(10, 14, 23, 0.9);
|
|
backdrop-filter: blur(10px);
|
|
border-bottom: var(--border-glass);
|
|
overflow: hidden;
|
|
height: 32px;
|
|
}
|
|
|
|
[data-theme="light"] .ticker-bar {
|
|
background: rgba(248, 250, 252, 0.95);
|
|
}
|
|
|
|
.ticker-track {
|
|
display: flex;
|
|
gap: 60px;
|
|
animation: tickerScroll 30s linear infinite;
|
|
white-space: nowrap;
|
|
padding: 6px 0;
|
|
}
|
|
|
|
.ticker-track span {
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
@keyframes tickerScroll {
|
|
from { transform: translateX(0); }
|
|
to { transform: translateX(-50%); }
|
|
}
|
|
|
|
/* Adjust hero for ticker */
|
|
.hero {
|
|
padding-top: calc(var(--nav-height) + 52px);
|
|
}
|
|
|
|
/* ===== Typewriter ===== */
|
|
.typewriter-cursor {
|
|
color: var(--accent-3);
|
|
animation: blink 1s step-end infinite;
|
|
font-weight: 300;
|
|
}
|
|
|
|
@keyframes blink {
|
|
50% { opacity: 0; }
|
|
}
|
|
|
|
/* ===== Map Section ===== */
|
|
.map-section {
|
|
background: linear-gradient(180deg, transparent, rgba(78, 205, 196, 0.02), transparent);
|
|
}
|
|
|
|
.map-wrapper {
|
|
display: grid;
|
|
grid-template-columns: 1.4fr 1fr;
|
|
gap: 32px;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.map-svg-container {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 24px;
|
|
backdrop-filter: blur(20px);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.world-map {
|
|
width: 100%;
|
|
height: auto;
|
|
}
|
|
|
|
.map-pin {
|
|
cursor: pointer;
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.map-pin:hover {
|
|
transform: scale(1.3);
|
|
}
|
|
|
|
.map-pin.active circle:nth-child(2) {
|
|
fill: #fff;
|
|
}
|
|
|
|
.pin-pulse {
|
|
animation: pinPulse 2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes pinPulse {
|
|
0%, 100% { r: 20; opacity: 0.3; }
|
|
50% { r: 28; opacity: 0.1; }
|
|
}
|
|
|
|
.map-info-panel {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 32px;
|
|
backdrop-filter: blur(20px);
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
min-height: 300px;
|
|
transition: all var(--transition);
|
|
}
|
|
|
|
.map-info-default {
|
|
text-align: center;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.map-info-icon {
|
|
font-size: 3rem;
|
|
display: block;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.map-info-default h3 {
|
|
font-family: var(--font-display);
|
|
color: var(--text-primary);
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.map-info-city {
|
|
animation: fadeInUp 0.4s ease;
|
|
}
|
|
|
|
.map-info-city .city-emoji {
|
|
font-size: 3.5rem;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.map-info-city h3 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.5rem;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.map-info-city .city-desc {
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
margin-bottom: 20px;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
.map-info-stats {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 12px;
|
|
}
|
|
|
|
.map-stat {
|
|
padding: 12px;
|
|
background: var(--bg-glass);
|
|
border-radius: var(--radius-md);
|
|
text-align: center;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.map-stat strong {
|
|
display: block;
|
|
font-size: 1.1rem;
|
|
color: var(--accent-3);
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
@keyframes fadeInUp {
|
|
from { opacity: 0; transform: translateY(15px); }
|
|
to { opacity: 1; transform: translateY(0); }
|
|
}
|
|
|
|
/* ===== Destination Filters ===== */
|
|
.dest-filters {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
margin-bottom: 32px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.filter-search {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 10px 16px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
flex: 1;
|
|
min-width: 200px;
|
|
max-width: 280px;
|
|
}
|
|
|
|
.filter-search svg {
|
|
color: var(--text-muted);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.filter-search input {
|
|
background: none;
|
|
border: none;
|
|
outline: none;
|
|
color: var(--text-primary);
|
|
font-family: inherit;
|
|
font-size: 0.9rem;
|
|
width: 100%;
|
|
}
|
|
|
|
.filter-search input::placeholder {
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.filter-tags {
|
|
display: flex;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.filter-btn {
|
|
padding: 8px 16px;
|
|
border-radius: 100px;
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-secondary);
|
|
font-family: inherit;
|
|
font-size: 0.8rem;
|
|
cursor: pointer;
|
|
transition: all var(--transition);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.filter-btn:hover,
|
|
.filter-btn.active {
|
|
background: var(--accent-3);
|
|
color: #0a0e17;
|
|
border-color: var(--accent-3);
|
|
}
|
|
|
|
.filter-sort select {
|
|
padding: 10px 16px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
font-family: inherit;
|
|
font-size: 0.85rem;
|
|
cursor: pointer;
|
|
outline: none;
|
|
}
|
|
|
|
.dest-card.hidden-card {
|
|
display: none;
|
|
}
|
|
|
|
.dest-empty {
|
|
text-align: center;
|
|
padding: 60px 20px;
|
|
color: var(--text-muted);
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
/* ===== Visa Section ===== */
|
|
.visa-section {
|
|
background: linear-gradient(180deg, transparent, rgba(255, 230, 109, 0.02), transparent);
|
|
}
|
|
|
|
.visa-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 24px;
|
|
}
|
|
|
|
.visa-card {
|
|
position: relative;
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(20px);
|
|
transition: all var(--transition);
|
|
}
|
|
|
|
.visa-card:hover {
|
|
transform: translateY(-6px);
|
|
box-shadow: var(--shadow-glow);
|
|
border-color: rgba(255, 230, 109, 0.3);
|
|
}
|
|
|
|
.visa-flag {
|
|
font-size: 2.5rem;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.visa-card h3 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.1rem;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.visa-badge {
|
|
display: inline-block;
|
|
padding: 4px 12px;
|
|
border-radius: 100px;
|
|
font-size: 0.7rem;
|
|
font-weight: 600;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.visa-badge.easy { background: rgba(78, 205, 196, 0.2); color: var(--accent-3); }
|
|
.visa-badge.hot { background: rgba(255, 107, 107, 0.2); color: var(--accent-1); }
|
|
.visa-badge.budget { background: rgba(255, 230, 109, 0.2); color: var(--accent-2); }
|
|
.visa-badge.new { background: rgba(167, 139, 250, 0.2); color: var(--accent-4); }
|
|
.visa-badge.pioneer { background: rgba(96, 165, 250, 0.2); color: #60A5FA; }
|
|
|
|
.visa-details {
|
|
list-style: none;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.visa-details li {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
padding: 6px 0;
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.04);
|
|
}
|
|
|
|
.visa-progress {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.progress-bar {
|
|
flex: 1;
|
|
height: 6px;
|
|
background: var(--bg-glass);
|
|
border-radius: 3px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.progress-fill {
|
|
height: 100%;
|
|
background: var(--gradient-main);
|
|
border-radius: 3px;
|
|
transition: width 1s ease;
|
|
}
|
|
|
|
.progress-label {
|
|
white-space: nowrap;
|
|
font-weight: 600;
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
/* ===== FAQ ===== */
|
|
.faq-section {
|
|
background: linear-gradient(180deg, transparent, rgba(167, 139, 250, 0.02), transparent);
|
|
}
|
|
|
|
.faq-list {
|
|
max-width: 800px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.faq-item {
|
|
margin-bottom: 12px;
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
overflow: hidden;
|
|
background: var(--bg-card);
|
|
backdrop-filter: blur(20px);
|
|
transition: all var(--transition);
|
|
}
|
|
|
|
.faq-item.active {
|
|
border-color: rgba(78, 205, 196, 0.3);
|
|
box-shadow: var(--shadow-glow);
|
|
}
|
|
|
|
.faq-question {
|
|
width: 100%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 20px 24px;
|
|
background: none;
|
|
border: none;
|
|
color: var(--text-primary);
|
|
font-family: inherit;
|
|
font-size: 0.95rem;
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
text-align: left;
|
|
transition: color var(--transition);
|
|
}
|
|
|
|
.faq-question:hover {
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.faq-chevron {
|
|
flex-shrink: 0;
|
|
transition: transform 0.3s ease;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.faq-item.active .faq-chevron {
|
|
transform: rotate(180deg);
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.faq-answer {
|
|
max-height: 0;
|
|
overflow: hidden;
|
|
transition: max-height 0.4s ease, padding 0.4s ease;
|
|
}
|
|
|
|
.faq-item.active .faq-answer {
|
|
max-height: 300px;
|
|
}
|
|
|
|
.faq-answer p {
|
|
padding: 0 24px 20px;
|
|
font-size: 0.9rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.7;
|
|
}
|
|
|
|
/* ===== Modal ===== */
|
|
.modal-overlay {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 3000;
|
|
background: rgba(0, 0, 0, 0.6);
|
|
backdrop-filter: blur(8px);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 24px;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.modal-overlay.open {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
}
|
|
|
|
.modal {
|
|
background: var(--bg-secondary);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
max-width: 560px;
|
|
width: 100%;
|
|
max-height: 85vh;
|
|
overflow-y: auto;
|
|
position: relative;
|
|
transform: scale(0.9) translateY(20px);
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.modal-overlay.open .modal {
|
|
transform: scale(1) translateY(0);
|
|
}
|
|
|
|
.modal-close {
|
|
position: absolute;
|
|
top: 16px;
|
|
right: 16px;
|
|
width: 36px;
|
|
height: 36px;
|
|
border-radius: 50%;
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
cursor: pointer;
|
|
font-size: 1rem;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: all var(--transition);
|
|
z-index: 1;
|
|
}
|
|
|
|
.modal-close:hover {
|
|
background: var(--accent-1);
|
|
color: #fff;
|
|
}
|
|
|
|
.modal-hero {
|
|
height: 200px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 5rem;
|
|
position: relative;
|
|
}
|
|
|
|
.modal-hero::after {
|
|
content: '';
|
|
position: absolute;
|
|
inset: 0;
|
|
background: linear-gradient(transparent 50%, var(--bg-secondary));
|
|
}
|
|
|
|
.modal-body {
|
|
padding: 24px 32px 32px;
|
|
}
|
|
|
|
.modal-body h2 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.5rem;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.modal-body .modal-tag {
|
|
display: inline-block;
|
|
padding: 4px 12px;
|
|
border-radius: 100px;
|
|
background: var(--bg-glass);
|
|
font-size: 0.75rem;
|
|
color: var(--accent-3);
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.modal-body p {
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
line-height: 1.7;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.modal-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 12px;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.modal-stat {
|
|
text-align: center;
|
|
padding: 16px 8px;
|
|
background: var(--bg-glass);
|
|
border-radius: var(--radius-md);
|
|
}
|
|
|
|
.modal-stat .stat-emoji {
|
|
font-size: 1.5rem;
|
|
display: block;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.modal-stat strong {
|
|
display: block;
|
|
font-size: 1rem;
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.modal-stat span {
|
|
font-size: 0.7rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.modal-highlights h4 {
|
|
font-size: 0.9rem;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.modal-highlights ul {
|
|
list-style: none;
|
|
}
|
|
|
|
.modal-highlights li {
|
|
padding: 8px 0;
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.04);
|
|
}
|
|
|
|
/* ===== Back to Top ===== */
|
|
.back-to-top {
|
|
position: fixed;
|
|
bottom: 30px;
|
|
left: 30px;
|
|
width: 48px;
|
|
height: 48px;
|
|
border-radius: 50%;
|
|
border: var(--border-glass);
|
|
background: var(--bg-card);
|
|
backdrop-filter: blur(20px);
|
|
color: var(--text-primary);
|
|
cursor: pointer;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
transform: translateY(20px);
|
|
transition: all var(--transition);
|
|
z-index: 1000;
|
|
box-shadow: var(--shadow-card);
|
|
}
|
|
|
|
.back-to-top.visible {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
transform: translateY(0);
|
|
}
|
|
|
|
.back-to-top:hover {
|
|
background: var(--accent-3);
|
|
color: #0a0e17;
|
|
transform: translateY(-4px);
|
|
}
|
|
|
|
/* ===== Nav Active ===== */
|
|
.nav-links a.active {
|
|
color: var(--accent-3);
|
|
background: rgba(78, 205, 196, 0.1);
|
|
}
|
|
|
|
/* ===== Responsive additions ===== */
|
|
@media (max-width: 1024px) {
|
|
.map-wrapper { grid-template-columns: 1fr; }
|
|
.visa-grid { grid-template-columns: repeat(2, 1fr); }
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.ticker-bar { display: none; }
|
|
.hero { padding-top: calc(var(--nav-height) + 20px); }
|
|
.dest-filters { flex-direction: column; align-items: stretch; }
|
|
.filter-search { max-width: none; }
|
|
.filter-tags { justify-content: center; }
|
|
.visa-grid { grid-template-columns: 1fr; }
|
|
.modal-stats { grid-template-columns: 1fr; }
|
|
.back-to-top { bottom: 20px; left: 20px; }
|
|
}
|
|
|
|
/* ===== Calculator ===== */
|
|
.calculator-section {
|
|
background: linear-gradient(180deg, transparent, rgba(167, 139, 250, 0.02), transparent);
|
|
}
|
|
|
|
.calculator-wrapper {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 32px;
|
|
align-items: start;
|
|
}
|
|
|
|
.calculator-form {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 32px;
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.calc-field {
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.calc-field label {
|
|
display: block;
|
|
font-weight: 600;
|
|
font-size: 0.9rem;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.calc-field select,
|
|
.calc-field input[type="range"] {
|
|
width: 100%;
|
|
padding: 12px 16px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
font-family: inherit;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.calc-options {
|
|
display: flex;
|
|
gap: 8px;
|
|
}
|
|
|
|
.calc-option {
|
|
flex: 1;
|
|
padding: 10px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-secondary);
|
|
font-family: inherit;
|
|
font-size: 0.85rem;
|
|
cursor: pointer;
|
|
transition: all var(--transition);
|
|
}
|
|
|
|
.calc-option.active,
|
|
.calc-option:hover {
|
|
background: var(--accent-3);
|
|
color: #0a0e17;
|
|
border-color: var(--accent-3);
|
|
}
|
|
|
|
.calculator-result {
|
|
min-height: 400px;
|
|
}
|
|
|
|
.result-card {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 32px;
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.result-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.result-header h3 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.3rem;
|
|
}
|
|
|
|
.result-header p {
|
|
color: var(--text-muted);
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.breakdown-item {
|
|
display: grid;
|
|
grid-template-columns: 100px 1fr 80px;
|
|
align-items: center;
|
|
gap: 12px;
|
|
margin-bottom: 12px;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.breakdown-bar {
|
|
height: 8px;
|
|
background: var(--bg-glass);
|
|
border-radius: 4px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.breakdown-fill {
|
|
height: 100%;
|
|
background: var(--gradient-main);
|
|
border-radius: 4px;
|
|
transition: width 0.8s ease;
|
|
}
|
|
|
|
.result-total {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
margin-top: 24px;
|
|
padding-top: 24px;
|
|
border-top: var(--border-glass);
|
|
}
|
|
|
|
.result-total strong {
|
|
display: block;
|
|
font-size: 1.5rem;
|
|
font-family: var(--font-display);
|
|
}
|
|
|
|
.result-total span {
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.result-placeholder {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
height: 400px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
color: var(--text-muted);
|
|
text-align: center;
|
|
gap: 16px;
|
|
}
|
|
|
|
/* ===== Blog ===== */
|
|
.blog-section {
|
|
background: linear-gradient(180deg, transparent, rgba(78, 205, 196, 0.02), transparent);
|
|
}
|
|
|
|
.blog-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 24px;
|
|
}
|
|
|
|
.blog-card {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
padding: 28px;
|
|
backdrop-filter: blur(20px);
|
|
transition: all var(--transition);
|
|
}
|
|
|
|
.blog-card:hover {
|
|
transform: translateY(-6px);
|
|
box-shadow: var(--shadow-glow);
|
|
}
|
|
|
|
.blog-emoji {
|
|
font-size: 2.5rem;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.blog-meta {
|
|
display: flex;
|
|
gap: 16px;
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.blog-card h3 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.1rem;
|
|
margin-bottom: 10px;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
.blog-card p {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.6;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.blog-tags {
|
|
display: flex;
|
|
gap: 6px;
|
|
flex-wrap: wrap;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.blog-tag {
|
|
padding: 3px 10px;
|
|
border-radius: 100px;
|
|
font-size: 0.7rem;
|
|
background: var(--bg-glass);
|
|
color: var(--accent-3);
|
|
border: var(--border-glass);
|
|
}
|
|
|
|
.blog-read-more {
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
color: var(--accent-3);
|
|
transition: color var(--transition);
|
|
}
|
|
|
|
.blog-read-more:hover {
|
|
color: var(--accent-1);
|
|
}
|
|
|
|
/* ===== Compare Bar ===== */
|
|
.compare-bar {
|
|
position: fixed;
|
|
bottom: 30px;
|
|
right: 30px;
|
|
z-index: 1500;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
padding: 16px 24px;
|
|
backdrop-filter: blur(20px);
|
|
box-shadow: var(--shadow-card);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
}
|
|
|
|
.compare-table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.compare-table th,
|
|
.compare-table td {
|
|
padding: 12px;
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.06);
|
|
}
|
|
|
|
.compare-table th {
|
|
text-align: center;
|
|
}
|
|
|
|
.compare-table td:first-child {
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.compare-table td:not(:first-child) {
|
|
text-align: center;
|
|
}
|
|
|
|
@media (max-width: 1024px) {
|
|
.calculator-wrapper { grid-template-columns: 1fr; }
|
|
.blog-grid { grid-template-columns: repeat(2, 1fr); }
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.blog-grid { grid-template-columns: 1fr; }
|
|
.compare-bar { left: 16px; right: 16px; bottom: 16px; flex-wrap: wrap; justify-content: center; }
|
|
}
|
|
|
|
/* ===== Auth Page ===== */
|
|
.auth-page {
|
|
min-height: 100vh;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 40px 24px;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.auth-card {
|
|
width: 100%;
|
|
max-width: 420px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 40px;
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.auth-back {
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
margin-bottom: 24px;
|
|
display: inline-block;
|
|
}
|
|
|
|
.auth-header {
|
|
text-align: center;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.auth-header h1 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.5rem;
|
|
margin: 12px 0 6px;
|
|
}
|
|
|
|
.auth-header p {
|
|
color: var(--text-muted);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.auth-tabs {
|
|
display: flex;
|
|
gap: 8px;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.auth-tabs button {
|
|
flex: 1;
|
|
padding: 10px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-secondary);
|
|
font-family: inherit;
|
|
cursor: pointer;
|
|
transition: all var(--transition);
|
|
}
|
|
|
|
.auth-tabs button.active {
|
|
background: var(--accent-3);
|
|
color: #0a0e17;
|
|
border-color: var(--accent-3);
|
|
}
|
|
|
|
.auth-form .calc-field input {
|
|
width: 100%;
|
|
padding: 12px 16px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
font-family: inherit;
|
|
font-size: 0.9rem;
|
|
outline: none;
|
|
}
|
|
|
|
.auth-error {
|
|
color: var(--accent-1);
|
|
font-size: 0.85rem;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.auth-divider {
|
|
text-align: center;
|
|
margin: 20px 0;
|
|
color: var(--text-muted);
|
|
font-size: 0.8rem;
|
|
position: relative;
|
|
}
|
|
|
|
.auth-divider::before,
|
|
.auth-divider::after {
|
|
content: '';
|
|
position: absolute;
|
|
top: 50%;
|
|
width: 40%;
|
|
height: 1px;
|
|
background: var(--border-glass);
|
|
}
|
|
|
|
.auth-divider::before { left: 0; }
|
|
.auth-divider::after { right: 0; }
|
|
|
|
.auth-hint {
|
|
text-align: center;
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
margin-top: 16px;
|
|
}
|
|
|
|
/* ===== Detail Pages ===== */
|
|
.detail-page {
|
|
min-height: 100vh;
|
|
padding: calc(var(--nav-height) + 40px) 24px 80px;
|
|
max-width: 800px;
|
|
margin: 0 auto;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.detail-nav {
|
|
margin-bottom: 32px;
|
|
}
|
|
|
|
.detail-nav a {
|
|
color: var(--accent-3);
|
|
font-size: 0.9rem;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.blog-detail-header {
|
|
margin-bottom: 40px;
|
|
}
|
|
|
|
.blog-detail-emoji {
|
|
font-size: 4rem;
|
|
margin-bottom: 16px;
|
|
display: block;
|
|
}
|
|
|
|
.blog-detail-header h1 {
|
|
font-family: var(--font-display);
|
|
font-size: clamp(1.75rem, 4vw, 2.5rem);
|
|
line-height: 1.3;
|
|
margin: 16px 0;
|
|
}
|
|
|
|
.blog-detail-content {
|
|
line-height: 1.8;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.blog-detail-content h2 {
|
|
font-family: var(--font-display);
|
|
color: var(--text-primary);
|
|
font-size: 1.3rem;
|
|
margin: 32px 0 12px;
|
|
}
|
|
|
|
.blog-detail-content h3 {
|
|
color: var(--text-primary);
|
|
font-size: 1.1rem;
|
|
margin: 24px 0 8px;
|
|
}
|
|
|
|
.blog-detail-content p {
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.blog-detail-content li {
|
|
margin-left: 20px;
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
.dest-detail-hero {
|
|
height: 240px;
|
|
border-radius: var(--radius-xl);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin-bottom: 32px;
|
|
}
|
|
|
|
.dest-detail-emoji {
|
|
font-size: 6rem;
|
|
}
|
|
|
|
.dest-detail-top {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.dest-detail-top h1 {
|
|
font-family: var(--font-display);
|
|
font-size: 2rem;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.dest-detail-desc {
|
|
color: var(--text-secondary);
|
|
line-height: 1.7;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
/* ===== Nav User ===== */
|
|
.nav-notify {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 36px;
|
|
height: 36px;
|
|
border-radius: 50%;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
font-size: 1rem;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.nav-user {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 6px 12px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: 100px;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.nav-user-name {
|
|
max-width: 80px;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.nav-user-avatar-img {
|
|
width: 28px;
|
|
height: 28px;
|
|
border-radius: 50%;
|
|
object-fit: cover;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.nav-logout {
|
|
background: none;
|
|
border: none;
|
|
color: var(--text-muted);
|
|
cursor: pointer;
|
|
font-size: 0.75rem;
|
|
padding: 2px 4px;
|
|
}
|
|
|
|
.nav-logout:hover { color: var(--accent-1); }
|
|
|
|
.nav-login-btn {
|
|
padding: 8px 20px;
|
|
border-radius: 100px;
|
|
background: var(--gradient-main);
|
|
color: #0a0e17;
|
|
font-weight: 600;
|
|
font-size: 0.85rem;
|
|
transition: transform var(--transition);
|
|
}
|
|
|
|
.nav-login-btn:hover { transform: scale(1.05); }
|
|
|
|
.blog-card {
|
|
text-decoration: none;
|
|
color: inherit;
|
|
display: block;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.nav-user-name { display: none; }
|
|
}
|
|
|
|
/* ===== Profile Page ===== */
|
|
.profile-page {
|
|
max-width: 900px;
|
|
margin: 0 auto;
|
|
padding: calc(var(--nav-height) + 40px) 24px 80px;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.profile-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 20px;
|
|
margin-bottom: 40px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.profile-avatar {
|
|
font-size: 4rem;
|
|
width: 80px;
|
|
height: 80px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--bg-glass);
|
|
border-radius: 50%;
|
|
border: var(--border-glass);
|
|
}
|
|
|
|
.profile-avatar-wrap {
|
|
position: relative;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 8px;
|
|
}
|
|
|
|
.profile-avatar-img {
|
|
width: 80px;
|
|
height: 80px;
|
|
border-radius: 50%;
|
|
object-fit: cover;
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
}
|
|
|
|
.profile-avatar-upload {
|
|
font-size: 0.75rem;
|
|
color: var(--accent-3);
|
|
cursor: pointer;
|
|
opacity: 0.9;
|
|
}
|
|
|
|
.profile-avatar-upload:hover {
|
|
opacity: 1;
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.profile-info { flex: 1; }
|
|
.profile-info h1 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.75rem;
|
|
margin-bottom: 4px;
|
|
}
|
|
.profile-info p { color: var(--text-muted); font-size: 0.9rem; }
|
|
|
|
.profile-level {
|
|
display: inline-block;
|
|
margin-top: 8px;
|
|
padding: 4px 14px;
|
|
border-radius: 100px;
|
|
background: rgba(78, 205, 196, 0.15);
|
|
color: var(--accent-3);
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.profile-badges-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin-top: 8px;
|
|
align-items: center;
|
|
}
|
|
|
|
.profile-badges-row .profile-level {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.profile-vip-badge {
|
|
display: inline-block;
|
|
padding: 4px 12px;
|
|
border-radius: 100px;
|
|
background: rgba(255, 193, 7, 0.18);
|
|
color: #e6b800;
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.profile-stats-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 16px;
|
|
margin-bottom: 48px;
|
|
}
|
|
|
|
.profile-connect-block {
|
|
margin-bottom: 48px;
|
|
}
|
|
|
|
.profile-connect-title {
|
|
font-size: 0.95rem;
|
|
font-weight: 600;
|
|
margin: 0 0 12px;
|
|
color: var(--text-muted);
|
|
letter-spacing: 0.02em;
|
|
}
|
|
|
|
.profile-connect-stats {
|
|
margin-bottom: 0;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
}
|
|
|
|
.profile-stat-card {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
padding: 24px 16px;
|
|
text-align: center;
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
a.profile-stat-link {
|
|
display: block;
|
|
color: inherit;
|
|
text-decoration: none;
|
|
transition: border-color 0.2s ease, transform 0.2s ease;
|
|
}
|
|
|
|
a.profile-stat-link:hover {
|
|
border-color: var(--accent, #e8a87c);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.profile-stat-card strong {
|
|
display: block;
|
|
font-size: 1.75rem;
|
|
font-family: var(--font-display);
|
|
margin: 8px 0 4px;
|
|
}
|
|
|
|
.profile-stat-card span:last-child {
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.profile-link {
|
|
color: var(--accent-3);
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.profile-favorites h2,
|
|
.profile-quick h2 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.25rem;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.profile-fav-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, 1fr);
|
|
gap: 16px;
|
|
margin-bottom: 48px;
|
|
}
|
|
|
|
.profile-fav-card {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
padding: 20px;
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
backdrop-filter: blur(20px);
|
|
transition: all var(--transition);
|
|
}
|
|
|
|
.profile-fav-card:hover {
|
|
border-color: rgba(78, 205, 196, 0.3);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.profile-fav-card a { text-decoration: none; color: inherit; }
|
|
.fav-emoji { font-size: 2rem; display: block; margin-bottom: 8px; }
|
|
.profile-fav-card h3 { font-size: 1rem; margin-bottom: 4px; }
|
|
.profile-fav-card p { font-size: 0.8rem; color: var(--text-muted); }
|
|
|
|
.profile-empty {
|
|
text-align: center;
|
|
padding: 60px 20px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
margin-bottom: 48px;
|
|
}
|
|
|
|
.profile-empty p { color: var(--text-muted); margin: 12px 0 20px; }
|
|
.profile-loading { color: var(--text-muted); padding: 40px; text-align: center; }
|
|
|
|
.profile-quick-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 12px;
|
|
}
|
|
|
|
.quick-card {
|
|
padding: 20px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
text-align: center;
|
|
font-size: 0.9rem;
|
|
font-weight: 500;
|
|
transition: all var(--transition);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
|
|
.quick-card:hover {
|
|
background: var(--accent-3);
|
|
color: #0a0e17;
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
/* ===== Not Found & Loading ===== */
|
|
.not-found-page,
|
|
.page-loading {
|
|
min-height: 80vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
text-align: center;
|
|
position: relative;
|
|
z-index: 1;
|
|
gap: 16px;
|
|
}
|
|
|
|
.not-found-emoji { font-size: 5rem; }
|
|
.not-found-page h1 {
|
|
font-family: var(--font-display);
|
|
font-size: 4rem;
|
|
background: var(--gradient-text);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
.not-found-page p { color: var(--text-muted); }
|
|
|
|
.page-loading-spinner {
|
|
width: 48px;
|
|
height: 48px;
|
|
border: 3px solid var(--bg-glass);
|
|
border-top-color: var(--accent-3);
|
|
border-radius: 50%;
|
|
animation: spin 0.8s linear infinite;
|
|
}
|
|
|
|
@keyframes spin { to { transform: rotate(360deg); } }
|
|
.page-loading p { color: var(--text-muted); }
|
|
|
|
@media (max-width: 768px) {
|
|
.profile-stats-grid { grid-template-columns: repeat(2, 1fr); }
|
|
.profile-fav-grid { grid-template-columns: 1fr; }
|
|
.profile-quick-grid { grid-template-columns: repeat(2, 1fr); }
|
|
}
|
|
|
|
/* ===== Global Search ===== */
|
|
.search-trigger {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 8px 14px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
color: var(--text-muted);
|
|
font-size: 0.8rem;
|
|
cursor: pointer;
|
|
transition: all var(--transition);
|
|
position: fixed;
|
|
top: calc(var(--nav-height) + 44px);
|
|
right: 24px;
|
|
z-index: 998;
|
|
backdrop-filter: blur(10px);
|
|
}
|
|
|
|
.search-trigger:hover {
|
|
border-color: var(--accent-3);
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
.search-trigger kbd {
|
|
padding: 2px 6px;
|
|
border-radius: 4px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
font-size: 0.7rem;
|
|
font-family: inherit;
|
|
}
|
|
|
|
.search-overlay {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 5000;
|
|
background: rgba(0, 0, 0, 0.6);
|
|
backdrop-filter: blur(8px);
|
|
display: flex;
|
|
align-items: flex-start;
|
|
justify-content: center;
|
|
padding-top: 15vh;
|
|
}
|
|
|
|
.search-modal {
|
|
width: 100%;
|
|
max-width: 560px;
|
|
background: var(--bg-secondary);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
overflow: hidden;
|
|
box-shadow: var(--shadow-card);
|
|
animation: searchIn 0.2s ease;
|
|
}
|
|
|
|
@keyframes searchIn {
|
|
from { opacity: 0; transform: scale(0.95) translateY(-10px); }
|
|
to { opacity: 1; transform: scale(1) translateY(0); }
|
|
}
|
|
|
|
.search-input-wrap {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 16px 20px;
|
|
border-bottom: var(--border-glass);
|
|
}
|
|
|
|
.search-input-wrap input {
|
|
flex: 1;
|
|
background: none;
|
|
border: none;
|
|
outline: none;
|
|
color: var(--text-primary);
|
|
font-size: 1rem;
|
|
font-family: inherit;
|
|
}
|
|
|
|
.search-input-wrap button {
|
|
padding: 4px 8px;
|
|
border-radius: 4px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
color: var(--text-muted);
|
|
font-size: 0.7rem;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.search-results {
|
|
max-height: 360px;
|
|
overflow-y: auto;
|
|
padding: 8px;
|
|
}
|
|
|
|
.search-result {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
width: 100%;
|
|
padding: 12px 16px;
|
|
border: none;
|
|
background: none;
|
|
border-radius: var(--radius-md);
|
|
cursor: pointer;
|
|
text-align: left;
|
|
color: inherit;
|
|
font-family: inherit;
|
|
transition: background var(--transition);
|
|
}
|
|
|
|
.search-result:hover,
|
|
.search-result.active {
|
|
background: var(--bg-glass);
|
|
}
|
|
|
|
.search-result-emoji { font-size: 1.5rem; flex-shrink: 0; }
|
|
|
|
.search-result-text {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.search-result-text strong {
|
|
display: block;
|
|
font-size: 0.9rem;
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.search-result-text span {
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
display: block;
|
|
}
|
|
|
|
.search-result-type {
|
|
font-size: 0.7rem;
|
|
padding: 3px 8px;
|
|
border-radius: 100px;
|
|
background: rgba(78, 205, 196, 0.15);
|
|
color: var(--accent-3);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.search-empty {
|
|
padding: 32px;
|
|
text-align: center;
|
|
color: var(--text-muted);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.search-hints {
|
|
padding: 24px;
|
|
text-align: center;
|
|
color: var(--text-muted);
|
|
font-size: 0.8rem;
|
|
line-height: 2;
|
|
}
|
|
|
|
/* ===== Trip Planner ===== */
|
|
.trip-section {
|
|
background: linear-gradient(180deg, transparent, rgba(255, 107, 107, 0.02), transparent);
|
|
}
|
|
|
|
.trip-wrapper {
|
|
display: grid;
|
|
grid-template-columns: 320px 1fr;
|
|
gap: 32px;
|
|
align-items: start;
|
|
}
|
|
|
|
.trip-form {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 28px;
|
|
backdrop-filter: blur(20px);
|
|
position: sticky;
|
|
top: calc(var(--nav-height) + 20px);
|
|
}
|
|
|
|
.trip-form h3 {
|
|
font-family: var(--font-display);
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.trip-timeline {
|
|
min-height: 300px;
|
|
}
|
|
|
|
.trip-empty {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
height: 300px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
color: var(--text-muted);
|
|
gap: 12px;
|
|
}
|
|
|
|
.trip-route {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.trip-stop {
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 16px;
|
|
position: relative;
|
|
}
|
|
|
|
.trip-stop-dot {
|
|
font-size: 1.5rem;
|
|
width: 48px;
|
|
height: 48px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: 50%;
|
|
flex-shrink: 0;
|
|
z-index: 1;
|
|
}
|
|
|
|
.trip-stop-line {
|
|
position: absolute;
|
|
left: 23px;
|
|
top: 48px;
|
|
width: 2px;
|
|
height: calc(100% - 16px);
|
|
background: linear-gradient(to bottom, var(--accent-3), var(--accent-1));
|
|
opacity: 0.3;
|
|
}
|
|
|
|
.trip-stop-card {
|
|
flex: 1;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
padding: 16px 20px;
|
|
margin-bottom: 16px;
|
|
backdrop-filter: blur(20px);
|
|
transition: all var(--transition);
|
|
}
|
|
|
|
.trip-stop-card:hover {
|
|
border-color: rgba(78, 205, 196, 0.3);
|
|
}
|
|
|
|
.trip-stop-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.trip-remove {
|
|
background: none;
|
|
border: none;
|
|
color: var(--text-muted);
|
|
cursor: pointer;
|
|
font-size: 0.8rem;
|
|
padding: 4px;
|
|
}
|
|
|
|
.trip-remove:hover { color: var(--accent-1); }
|
|
|
|
.trip-stop-controls {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.trip-stop-controls input {
|
|
width: 50px;
|
|
padding: 4px 8px;
|
|
border-radius: var(--radius-sm);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
font-family: inherit;
|
|
text-align: center;
|
|
}
|
|
|
|
.trip-stop-cost {
|
|
margin-left: auto;
|
|
font-weight: 700;
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.trip-summary {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 24px;
|
|
padding: 20px 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(20px);
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.trip-summary-stat {
|
|
text-align: center;
|
|
}
|
|
|
|
.trip-summary-stat span {
|
|
display: block;
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.trip-summary-stat strong {
|
|
font-family: var(--font-display);
|
|
font-size: 1.25rem;
|
|
}
|
|
|
|
@media (max-width: 1024px) {
|
|
.trip-wrapper { grid-template-columns: 1fr; }
|
|
.trip-form { position: static; }
|
|
.search-trigger { top: auto; bottom: 80px; right: 16px; }
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.search-trigger span,
|
|
.search-trigger kbd { display: none; }
|
|
}
|
|
|
|
/* ===== Scroll Progress ===== */
|
|
.scroll-progress {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 3px;
|
|
z-index: 9999;
|
|
background: rgba(255, 255, 255, 0.04);
|
|
}
|
|
|
|
.scroll-progress-bar {
|
|
height: 100%;
|
|
background: linear-gradient(90deg, #FF6B6B, #FFE66D, #4ECDC4);
|
|
transition: width 0.1s linear;
|
|
box-shadow: 0 0 12px rgba(78, 205, 196, 0.5);
|
|
}
|
|
|
|
/* ===== Toast Stack ===== */
|
|
.toast-stack {
|
|
position: fixed;
|
|
bottom: 30px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
z-index: 10000;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.toast-stack .toast {
|
|
position: relative;
|
|
bottom: auto;
|
|
left: auto;
|
|
transform: translateY(20px);
|
|
opacity: 0;
|
|
animation: toastIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.toast-stack .toast.show { opacity: 1; transform: translateY(0); }
|
|
|
|
.toast-action {
|
|
margin-left: 0.35rem;
|
|
padding: 0.25rem 0.55rem;
|
|
border-radius: var(--radius-sm, 6px);
|
|
background: rgba(255, 255, 255, 0.08);
|
|
color: var(--accent, #4ecdc4);
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
text-decoration: none;
|
|
white-space: nowrap;
|
|
}
|
|
.toast-action:hover {
|
|
background: rgba(255, 255, 255, 0.14);
|
|
}
|
|
|
|
@keyframes toastIn {
|
|
from { opacity: 0; transform: translateY(20px) scale(0.95); }
|
|
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
}
|
|
|
|
.toast-info { border-color: rgba(78, 205, 196, 0.3); }
|
|
.toast-error { border-color: rgba(255, 107, 107, 0.3); }
|
|
|
|
/* ===== Destination Matcher ===== */
|
|
.matcher-fab {
|
|
position: fixed;
|
|
bottom: 30px;
|
|
left: 30px;
|
|
z-index: 1400;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
padding: 12px 20px;
|
|
background: linear-gradient(135deg, rgba(255, 107, 107, 0.9), rgba(78, 205, 196, 0.9));
|
|
border: none;
|
|
border-radius: 50px;
|
|
color: #fff;
|
|
font-family: inherit;
|
|
font-weight: 600;
|
|
font-size: 0.9rem;
|
|
cursor: pointer;
|
|
box-shadow: 0 8px 32px rgba(255, 107, 107, 0.3);
|
|
transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
backdrop-filter: blur(10px);
|
|
}
|
|
|
|
.matcher-fab:hover {
|
|
transform: translateY(-3px) scale(1.03);
|
|
box-shadow: 0 12px 40px rgba(255, 107, 107, 0.4);
|
|
}
|
|
|
|
.matcher-fab-icon { font-size: 1.2rem; }
|
|
|
|
.matcher-modal {
|
|
max-width: 560px;
|
|
width: 95%;
|
|
overflow: hidden;
|
|
padding: 0;
|
|
}
|
|
|
|
.matcher-progress {
|
|
height: 4px;
|
|
background: rgba(255, 255, 255, 0.06);
|
|
}
|
|
|
|
.matcher-progress-bar {
|
|
height: 100%;
|
|
background: linear-gradient(90deg, #FF6B6B, #FFE66D, #4ECDC4);
|
|
transition: width 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
}
|
|
|
|
.matcher-body {
|
|
padding: 36px 32px 28px;
|
|
min-height: 420px;
|
|
}
|
|
|
|
.matcher-step-meta {
|
|
text-align: center;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.matcher-step-meta h2 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.5rem;
|
|
margin: 12px 0 8px;
|
|
}
|
|
|
|
.matcher-step-meta p {
|
|
color: var(--text-muted);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.matcher-options {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.matcher-option {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
padding: 16px 20px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
cursor: pointer;
|
|
transition: all 0.25s ease;
|
|
font-family: inherit;
|
|
color: var(--text-primary);
|
|
text-align: left;
|
|
}
|
|
|
|
.matcher-option:hover {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
background: rgba(78, 205, 196, 0.08);
|
|
transform: translateX(6px);
|
|
}
|
|
|
|
.matcher-option-emoji { font-size: 1.8rem; flex-shrink: 0; }
|
|
|
|
.matcher-option strong {
|
|
display: block;
|
|
font-size: 1rem;
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.matcher-option span {
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.matcher-option-arrow {
|
|
margin-left: auto;
|
|
opacity: 0.3;
|
|
transition: all 0.2s;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.matcher-option:hover .matcher-option-arrow {
|
|
opacity: 1;
|
|
transform: translateX(4px);
|
|
}
|
|
|
|
.matcher-back {
|
|
margin-top: 20px;
|
|
background: none;
|
|
border: none;
|
|
color: var(--text-muted);
|
|
font-family: inherit;
|
|
cursor: pointer;
|
|
font-size: 0.85rem;
|
|
padding: 8px 0;
|
|
}
|
|
|
|
.matcher-back:hover { color: var(--text-primary); }
|
|
|
|
.matcher-step,
|
|
.matcher-results {
|
|
animation: matcherSlide 0.35s ease forwards;
|
|
}
|
|
|
|
.matcher-forward { animation-name: matcherSlide; }
|
|
.matcher-back { animation-name: matcherSlideBack; }
|
|
|
|
@keyframes matcherSlide {
|
|
from { opacity: 0; transform: translateX(30px); }
|
|
to { opacity: 1; transform: translateX(0); }
|
|
}
|
|
|
|
@keyframes matcherSlideBack {
|
|
from { opacity: 0; transform: translateX(-30px); }
|
|
to { opacity: 1; transform: translateX(0); }
|
|
}
|
|
|
|
.matcher-result-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.matcher-result-card {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
gap: 10px;
|
|
padding: 12px 12px 12px 16px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
color: inherit;
|
|
transition: all 0.25s ease;
|
|
align-items: center;
|
|
}
|
|
|
|
.matcher-result-main {
|
|
display: grid;
|
|
grid-template-columns: auto auto 1fr auto;
|
|
grid-template-rows: auto auto;
|
|
gap: 4px 12px;
|
|
align-items: center;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
min-width: 0;
|
|
}
|
|
|
|
.matcher-add-btn {
|
|
flex-shrink: 0;
|
|
padding: 8px 12px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: transparent;
|
|
color: var(--accent-2);
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
white-space: nowrap;
|
|
}
|
|
.matcher-add-btn:hover {
|
|
border-color: var(--accent-2);
|
|
background: color-mix(in srgb, var(--accent-2) 12%, transparent);
|
|
}
|
|
|
|
.matcher-option.selected {
|
|
border-color: rgba(78, 205, 196, 0.55);
|
|
box-shadow: 0 0 0 1px rgba(78, 205, 196, 0.25);
|
|
}
|
|
|
|
.matcher-result-card:hover {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
transform: translateY(-2px);
|
|
box-shadow: var(--shadow-card);
|
|
}
|
|
|
|
.matcher-result-card.top {
|
|
border-color: rgba(255, 230, 109, 0.4);
|
|
background: linear-gradient(135deg, rgba(255, 107, 107, 0.06), rgba(78, 205, 196, 0.06));
|
|
}
|
|
|
|
.matcher-result-rank { font-size: 1.2rem; grid-row: span 2; }
|
|
.matcher-result-emoji { font-size: 2rem; grid-row: span 2; }
|
|
|
|
.matcher-result-info strong {
|
|
display: block;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.matcher-result-info span {
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.matcher-result-score {
|
|
grid-column: 4;
|
|
grid-row: 1;
|
|
text-align: right;
|
|
font-size: 0.75rem;
|
|
color: var(--accent-3);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.matcher-score-bar {
|
|
width: 80px;
|
|
height: 4px;
|
|
background: rgba(255, 255, 255, 0.08);
|
|
border-radius: 2px;
|
|
margin-bottom: 4px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.matcher-score-fill {
|
|
height: 100%;
|
|
background: linear-gradient(90deg, #FF6B6B, #4ECDC4);
|
|
border-radius: 2px;
|
|
transition: width 0.8s ease;
|
|
}
|
|
|
|
.matcher-result-tags {
|
|
grid-column: 3 / -1;
|
|
display: flex;
|
|
gap: 12px;
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.matcher-actions {
|
|
display: flex;
|
|
gap: 12px;
|
|
justify-content: center;
|
|
}
|
|
|
|
.dest-matcher-btn {
|
|
margin-top: 16px;
|
|
}
|
|
|
|
.hero-matcher-btn {
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* ===== Compare Modal Enhanced ===== */
|
|
.compare-modal {
|
|
max-width: 900px;
|
|
width: 95%;
|
|
}
|
|
|
|
.compare-modal-body { padding: 36px 32px; }
|
|
|
|
.compare-modal-header {
|
|
text-align: center;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.compare-modal-header h2 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.5rem;
|
|
margin: 8px 0;
|
|
}
|
|
|
|
.compare-cards {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
|
|
gap: 16px;
|
|
margin-bottom: 32px;
|
|
}
|
|
|
|
.compare-city-card {
|
|
text-align: center;
|
|
padding: 24px 16px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
position: relative;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.compare-city-card.winner {
|
|
border-color: rgba(255, 230, 109, 0.5);
|
|
background: linear-gradient(180deg, rgba(255, 230, 109, 0.08), transparent);
|
|
}
|
|
|
|
.compare-winner-badge {
|
|
position: absolute;
|
|
top: -10px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
background: linear-gradient(135deg, #FF6B6B, #FFE66D);
|
|
color: #0a0e17;
|
|
font-size: 0.7rem;
|
|
font-weight: 700;
|
|
padding: 4px 12px;
|
|
border-radius: 20px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.compare-city-emoji { font-size: 2.5rem; display: block; margin-bottom: 8px; }
|
|
|
|
.compare-city-card h3 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.1rem;
|
|
}
|
|
|
|
.compare-city-country {
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.compare-score-ring {
|
|
position: relative;
|
|
width: 80px;
|
|
height: 80px;
|
|
margin: 16px auto;
|
|
}
|
|
|
|
.compare-score-ring svg { width: 100%; height: 100%; }
|
|
|
|
.compare-score-num {
|
|
position: absolute;
|
|
inset: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-family: var(--font-display);
|
|
font-weight: 700;
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
.compare-city-link {
|
|
font-size: 0.8rem;
|
|
color: var(--accent-3);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.compare-city-link:hover { text-decoration: underline; }
|
|
|
|
.compare-metrics { display: flex; flex-direction: column; gap: 20px; }
|
|
|
|
.compare-metric-row {
|
|
display: grid;
|
|
grid-template-columns: 100px 1fr;
|
|
gap: 16px;
|
|
align-items: start;
|
|
}
|
|
|
|
.compare-metric-label {
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
padding-top: 4px;
|
|
}
|
|
|
|
.compare-metric-bars { display: flex; flex-direction: column; gap: 8px; }
|
|
|
|
.compare-bar-item { flex: 1; }
|
|
|
|
.compare-bar-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
font-size: 0.8rem;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.compare-best { color: var(--accent-3); font-weight: 600; }
|
|
|
|
.compare-bar-track {
|
|
height: 8px;
|
|
background: rgba(255, 255, 255, 0.06);
|
|
border-radius: 4px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.compare-bar-fill {
|
|
height: 100%;
|
|
background: rgba(255, 255, 255, 0.15);
|
|
border-radius: 4px;
|
|
transition: width 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
animation: barGrow 0.8s ease forwards;
|
|
}
|
|
|
|
.compare-bar-fill.best {
|
|
background: linear-gradient(90deg, #FF6B6B, #4ECDC4);
|
|
}
|
|
|
|
@keyframes barGrow {
|
|
from { width: 0 !important; }
|
|
}
|
|
|
|
/* ===== Timezone Board ===== */
|
|
.timezone-section {
|
|
background: linear-gradient(180deg, transparent, rgba(78, 205, 196, 0.03), transparent);
|
|
}
|
|
|
|
.tz-home-clock {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 32px;
|
|
padding: 28px 32px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
margin-bottom: 28px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.tz-home-time { display: flex; align-items: center; gap: 16px; }
|
|
|
|
.tz-live-dot {
|
|
width: 10px;
|
|
height: 10px;
|
|
background: #4ECDC4;
|
|
border-radius: 50%;
|
|
animation: pulse 2s infinite;
|
|
}
|
|
|
|
@keyframes pulse {
|
|
0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(78, 205, 196, 0.4); }
|
|
50% { opacity: 0.8; box-shadow: 0 0 0 8px rgba(78, 205, 196, 0); }
|
|
}
|
|
|
|
.tz-home-label { font-size: 0.9rem; color: var(--text-muted); }
|
|
|
|
.tz-home-digits {
|
|
font-family: var(--font-display);
|
|
font-size: 2rem;
|
|
font-weight: 700;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.tz-seconds {
|
|
font-size: 1rem;
|
|
color: var(--text-muted);
|
|
font-weight: 400;
|
|
}
|
|
|
|
.tz-work-slider {
|
|
flex: 1;
|
|
min-width: 240px;
|
|
}
|
|
|
|
.tz-work-slider label {
|
|
display: block;
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.tz-slider-row {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.tz-slider-row input[type="range"] {
|
|
flex: 1;
|
|
accent-color: var(--accent-3);
|
|
}
|
|
|
|
.tz-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
|
|
gap: 16px;
|
|
}
|
|
|
|
.tz-card {
|
|
padding: 20px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(20px);
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.tz-card:hover {
|
|
border-color: rgba(78, 205, 196, 0.3);
|
|
transform: translateY(-3px);
|
|
}
|
|
|
|
.tz-card.working {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
box-shadow: 0 0 20px rgba(78, 205, 196, 0.1);
|
|
}
|
|
|
|
.tz-card-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.tz-card-emoji { font-size: 1.5rem; }
|
|
|
|
.tz-card-header strong {
|
|
display: block;
|
|
font-size: 0.95rem;
|
|
}
|
|
|
|
.tz-card-header span {
|
|
font-size: 0.7rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.tz-overlap-badge {
|
|
margin-left: auto;
|
|
font-size: 0.7rem;
|
|
font-weight: 600;
|
|
padding: 3px 10px;
|
|
border-radius: 20px;
|
|
}
|
|
|
|
.tz-overlap-badge.excellent { background: rgba(78, 205, 196, 0.2); color: #4ECDC4; }
|
|
.tz-overlap-badge.good { background: rgba(255, 230, 109, 0.2); color: #FFE66D; }
|
|
.tz-overlap-badge.fair { background: rgba(255, 165, 0, 0.2); color: #ffa500; }
|
|
.tz-overlap-badge.poor { background: rgba(255, 107, 107, 0.2); color: #FF6B6B; }
|
|
|
|
.tz-analog {
|
|
position: relative;
|
|
width: 100px;
|
|
height: 100px;
|
|
margin: 0 auto 12px;
|
|
}
|
|
|
|
.tz-analog svg { width: 100%; height: 100%; }
|
|
|
|
.tz-digital {
|
|
position: absolute;
|
|
bottom: -4px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
font-family: var(--font-display);
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.tz-overlap-bar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.tz-overlap-track {
|
|
flex: 1;
|
|
height: 6px;
|
|
background: rgba(255, 255, 255, 0.06);
|
|
border-radius: 3px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.tz-overlap-fill {
|
|
height: 100%;
|
|
border-radius: 3px;
|
|
transition: width 0.6s ease;
|
|
}
|
|
|
|
.tz-overlap-fill.excellent { background: #4ECDC4; }
|
|
.tz-overlap-fill.good { background: #FFE66D; }
|
|
.tz-overlap-fill.fair { background: #ffa500; }
|
|
.tz-overlap-fill.poor { background: #FF6B6B; }
|
|
|
|
.tz-status {
|
|
text-align: center;
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* ===== Keyboard Shortcuts ===== */
|
|
.shortcuts-modal {
|
|
max-width: 480px;
|
|
width: 95%;
|
|
}
|
|
|
|
.shortcuts-body {
|
|
padding: 36px 32px;
|
|
text-align: center;
|
|
}
|
|
|
|
.shortcuts-body h2 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.5rem;
|
|
margin: 8px 0;
|
|
}
|
|
|
|
.shortcuts-body p {
|
|
color: var(--text-muted);
|
|
font-size: 0.9rem;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.shortcuts-grid {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
text-align: left;
|
|
}
|
|
|
|
.shortcut-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 12px 16px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
}
|
|
|
|
.shortcut-icon { font-size: 1.2rem; }
|
|
.shortcut-label { flex: 1; font-size: 0.9rem; }
|
|
|
|
.shortcut-keys {
|
|
display: flex;
|
|
gap: 4px;
|
|
}
|
|
|
|
.shortcut-keys kbd,
|
|
.shortcuts-body kbd {
|
|
display: inline-block;
|
|
padding: 3px 8px;
|
|
background: rgba(255, 255, 255, 0.08);
|
|
border: 1px solid rgba(255, 255, 255, 0.12);
|
|
border-radius: 6px;
|
|
font-family: inherit;
|
|
font-size: 0.75rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.matcher-fab .matcher-fab-text { display: none; }
|
|
.matcher-fab { padding: 14px; border-radius: 50%; bottom: 90px; left: 16px; }
|
|
.compare-metric-row { grid-template-columns: 1fr; }
|
|
.tz-home-clock { flex-direction: column; text-align: center; }
|
|
.matcher-result-card { grid-template-columns: 1fr; }
|
|
.matcher-result-main { grid-template-columns: auto 1fr; }
|
|
.matcher-result-score { grid-column: 2; grid-row: 2; }
|
|
.matcher-result-tags { grid-column: 1 / -1; }
|
|
.matcher-add-btn { width: 100%; }
|
|
}
|
|
|
|
/* ===== Visa Filters Enhancement ===== */
|
|
.visa-filters {
|
|
display: flex;
|
|
gap: 8px;
|
|
justify-content: center;
|
|
flex-wrap: wrap;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.visa-card {
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.visa-card:hover {
|
|
transform: translateY(-4px);
|
|
border-color: rgba(255, 230, 109, 0.3);
|
|
}
|
|
|
|
.tool-card {
|
|
transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
}
|
|
|
|
.tool-card:hover {
|
|
transform: translateY(-6px);
|
|
border-color: rgba(78, 205, 196, 0.3);
|
|
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
/* ===== Section Nav ===== */
|
|
.section-nav {
|
|
position: fixed;
|
|
right: 20px;
|
|
top: 50%;
|
|
transform: translateY(-50%) translateX(60px);
|
|
z-index: 1300;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
opacity: 0;
|
|
transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
pointer-events: none;
|
|
}
|
|
|
|
.section-nav.visible {
|
|
opacity: 1;
|
|
transform: translateY(-50%) translateX(0);
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.section-nav-dot {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 8px 12px 8px 10px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: 50px;
|
|
cursor: pointer;
|
|
transition: all 0.25s ease;
|
|
font-family: inherit;
|
|
color: var(--text-muted);
|
|
backdrop-filter: blur(16px);
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.section-nav-dot:hover,
|
|
.section-nav-dot.active {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
color: var(--text-primary);
|
|
background: rgba(78, 205, 196, 0.1);
|
|
transform: translateX(-4px);
|
|
}
|
|
|
|
.section-nav-dot.active {
|
|
box-shadow: 0 0 16px rgba(78, 205, 196, 0.2);
|
|
}
|
|
|
|
.section-nav-emoji { font-size: 1rem; }
|
|
|
|
.section-nav-label {
|
|
font-size: 0.75rem;
|
|
font-weight: 500;
|
|
max-width: 0;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
transition: max-width 0.3s ease;
|
|
}
|
|
|
|
.section-nav-dot:hover .section-nav-label,
|
|
.section-nav-dot.active .section-nav-label {
|
|
max-width: 60px;
|
|
}
|
|
|
|
/* ===== Currency Converter ===== */
|
|
.currency-section {
|
|
background: linear-gradient(180deg, transparent, rgba(255, 230, 109, 0.02), transparent);
|
|
}
|
|
|
|
.currency-wrapper {
|
|
display: grid;
|
|
grid-template-columns: 1.2fr 1fr;
|
|
gap: 24px;
|
|
align-items: start;
|
|
}
|
|
|
|
.currency-card {
|
|
padding: 32px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.currency-input-group label,
|
|
.currency-result label,
|
|
.currency-to-select label {
|
|
display: block;
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.currency-input-row {
|
|
display: flex;
|
|
gap: 12px;
|
|
}
|
|
|
|
.currency-input-row input {
|
|
flex: 1;
|
|
padding: 14px 18px;
|
|
font-size: 1.5rem;
|
|
font-family: var(--font-display);
|
|
font-weight: 700;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
.currency-input-row select {
|
|
padding: 12px 16px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
font-family: inherit;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.currency-swap {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 48px;
|
|
height: 48px;
|
|
margin: 20px auto;
|
|
border-radius: 50%;
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--accent-3);
|
|
cursor: pointer;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.currency-swap:hover {
|
|
background: rgba(78, 205, 196, 0.15);
|
|
transform: rotate(180deg);
|
|
}
|
|
|
|
.currency-swap.swapping {
|
|
transform: rotate(360deg);
|
|
}
|
|
|
|
.currency-result {
|
|
text-align: center;
|
|
padding: 24px;
|
|
background: rgba(78, 205, 196, 0.06);
|
|
border-radius: var(--radius-lg);
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.currency-result-display {
|
|
display: flex;
|
|
align-items: baseline;
|
|
justify-content: center;
|
|
gap: 10px;
|
|
margin: 12px 0 8px;
|
|
}
|
|
|
|
.currency-result-flag { font-size: 2rem; }
|
|
|
|
.currency-result-amount {
|
|
font-family: var(--font-display);
|
|
font-size: 2.5rem;
|
|
font-weight: 800;
|
|
background: linear-gradient(135deg, #FF6B6B, #4ECDC4);
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
.currency-result-code {
|
|
font-size: 1rem;
|
|
color: var(--text-muted);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.currency-rate-hint {
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.currency-chips {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.currency-chip {
|
|
padding: 8px 14px;
|
|
border-radius: 50px;
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-secondary);
|
|
font-family: inherit;
|
|
font-size: 0.8rem;
|
|
cursor: pointer;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.currency-chip:hover,
|
|
.currency-chip.active {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
background: rgba(78, 205, 196, 0.12);
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.currency-presets {
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.currency-presets h3 {
|
|
font-family: var(--font-display);
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.currency-presets-desc {
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.currency-preset-grid {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 10px;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.currency-preset-card {
|
|
padding: 16px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
cursor: pointer;
|
|
text-align: left;
|
|
font-family: inherit;
|
|
color: inherit;
|
|
transition: all 0.25s ease;
|
|
}
|
|
|
|
.currency-preset-card:hover {
|
|
border-color: rgba(255, 230, 109, 0.4);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.preset-emoji {
|
|
font-size: 1.5rem;
|
|
display: block;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.currency-preset-card strong {
|
|
display: block;
|
|
font-size: 0.9rem;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.currency-preset-card span:last-child {
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.currency-tip {
|
|
display: flex;
|
|
gap: 10px;
|
|
padding: 14px;
|
|
background: rgba(255, 230, 109, 0.06);
|
|
border-radius: var(--radius-md);
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* ===== Nomad Score ===== */
|
|
.nomad-score-section {
|
|
background: linear-gradient(180deg, transparent, rgba(167, 139, 250, 0.03), transparent);
|
|
}
|
|
|
|
.nomad-score-card {
|
|
max-width: 560px;
|
|
margin: 0 auto;
|
|
padding: 36px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.nomad-quiz-progress {
|
|
display: flex;
|
|
gap: 8px;
|
|
justify-content: center;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.nomad-quiz-dot {
|
|
width: 40px;
|
|
height: 4px;
|
|
border-radius: 2px;
|
|
background: rgba(255, 255, 255, 0.08);
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.nomad-quiz-dot.filled { background: var(--accent-3); }
|
|
.nomad-quiz-dot.current { box-shadow: 0 0 8px rgba(78, 205, 196, 0.5); }
|
|
|
|
.nomad-quiz-step {
|
|
display: block;
|
|
text-align: center;
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.nomad-quiz h3 {
|
|
text-align: center;
|
|
font-family: var(--font-display);
|
|
font-size: 1.25rem;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.nomad-quiz-options {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.nomad-quiz-option {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
padding: 16px 20px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
cursor: pointer;
|
|
font-family: inherit;
|
|
color: var(--text-primary);
|
|
text-align: left;
|
|
transition: all 0.25s ease;
|
|
}
|
|
|
|
.nomad-quiz-option:hover {
|
|
border-color: rgba(167, 139, 250, 0.4);
|
|
background: rgba(167, 139, 250, 0.08);
|
|
transform: translateX(6px);
|
|
}
|
|
|
|
.nomad-quiz-option span:first-child { font-size: 1.5rem; }
|
|
|
|
.nomad-quiz.animating {
|
|
opacity: 0;
|
|
transform: translateX(-20px);
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.nomad-result {
|
|
text-align: center;
|
|
}
|
|
|
|
.nomad-score-ring {
|
|
position: relative;
|
|
width: 140px;
|
|
height: 140px;
|
|
margin: 0 auto 20px;
|
|
}
|
|
|
|
.nomad-score-ring svg { width: 100%; height: 100%; }
|
|
|
|
.nomad-score-arc {
|
|
transition: stroke-dasharray 1s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
}
|
|
|
|
.nomad-score-center {
|
|
position: absolute;
|
|
inset: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.nomad-score-center strong {
|
|
font-family: var(--font-display);
|
|
font-size: 2.5rem;
|
|
font-weight: 800;
|
|
color: var(--score-color, var(--accent-3));
|
|
}
|
|
|
|
.nomad-score-center span {
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.nomad-level-label {
|
|
font-family: var(--font-display);
|
|
font-size: 1.5rem;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.nomad-level-desc {
|
|
color: var(--text-muted);
|
|
font-size: 0.9rem;
|
|
margin-bottom: 24px;
|
|
max-width: 360px;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
.nomad-result-actions {
|
|
display: flex;
|
|
gap: 12px;
|
|
justify-content: center;
|
|
}
|
|
|
|
/* ===== Lifestyle Interactive ===== */
|
|
.lifestyle-layout {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 40px;
|
|
align-items: start;
|
|
}
|
|
|
|
.timeline-item {
|
|
cursor: pointer;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.timeline-item.active .timeline-card {
|
|
border-color: rgba(78, 205, 196, 0.5);
|
|
background: rgba(78, 205, 196, 0.08);
|
|
transform: scale(1.02);
|
|
box-shadow: 0 8px 32px rgba(78, 205, 196, 0.15);
|
|
}
|
|
|
|
.timeline-item.active .timeline-time {
|
|
color: var(--accent-3);
|
|
font-weight: 700;
|
|
}
|
|
|
|
.lifestyle-detail-card {
|
|
position: sticky;
|
|
top: 100px;
|
|
padding: 32px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
text-align: center;
|
|
}
|
|
|
|
.lifestyle-detail-icon {
|
|
font-size: 3rem;
|
|
display: block;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.lifestyle-detail-time {
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.lifestyle-detail-card h3 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.5rem;
|
|
margin: 12px 0;
|
|
}
|
|
|
|
.lifestyle-detail-card p {
|
|
color: var(--text-secondary);
|
|
line-height: 1.7;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.lifestyle-tip {
|
|
display: flex;
|
|
gap: 10px;
|
|
padding: 16px;
|
|
background: rgba(255, 230, 109, 0.08);
|
|
border-radius: var(--radius-md);
|
|
text-align: left;
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.lifestyle-dots {
|
|
display: flex;
|
|
gap: 8px;
|
|
justify-content: center;
|
|
}
|
|
|
|
.lifestyle-dot {
|
|
width: 10px;
|
|
height: 10px;
|
|
border-radius: 50%;
|
|
border: none;
|
|
background: rgba(255, 255, 255, 0.15);
|
|
cursor: pointer;
|
|
transition: all 0.2s ease;
|
|
padding: 0;
|
|
}
|
|
|
|
.lifestyle-dot.active {
|
|
background: var(--accent-3);
|
|
transform: scale(1.3);
|
|
}
|
|
|
|
/* ===== Destination Detail Enhanced ===== */
|
|
.dest-detail-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
margin: 24px 0;
|
|
}
|
|
|
|
.dest-depth-loading {
|
|
color: var(--text-muted);
|
|
font-size: 0.9rem;
|
|
margin: 0 0 1rem;
|
|
}
|
|
|
|
.dest-detail-extras {
|
|
display: grid;
|
|
grid-template-columns: 1.2fr 1fr;
|
|
gap: 20px;
|
|
margin: 28px 0;
|
|
}
|
|
|
|
.dest-depth-block {
|
|
margin: 28px 0;
|
|
padding: 22px 0;
|
|
border-top: 1px solid color-mix(in srgb, var(--text-muted) 22%, transparent);
|
|
}
|
|
|
|
.dest-depth-block h3 {
|
|
font-size: 1.05rem;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.dest-depth-muted {
|
|
color: var(--text-muted);
|
|
font-size: 0.92rem;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
.dest-depth-tags {
|
|
margin-top: 10px;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.dest-depth-list {
|
|
margin: 10px 0 0;
|
|
padding-left: 1.1rem;
|
|
display: grid;
|
|
gap: 6px;
|
|
}
|
|
|
|
.dest-cost-grid {
|
|
display: grid;
|
|
gap: 8px;
|
|
max-width: 420px;
|
|
}
|
|
|
|
.dest-cost-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 16px;
|
|
padding: 8px 0;
|
|
border-bottom: 1px dashed color-mix(in srgb, var(--text-muted) 25%, transparent);
|
|
}
|
|
|
|
.dest-pros-cons {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 24px;
|
|
}
|
|
|
|
.dest-review-grid {
|
|
display: grid;
|
|
gap: 14px;
|
|
}
|
|
|
|
.dest-review-grid blockquote {
|
|
margin: 0;
|
|
padding: 14px 0;
|
|
border-top: 1px solid color-mix(in srgb, var(--text-muted) 18%, transparent);
|
|
}
|
|
|
|
.dest-review-grid footer {
|
|
margin-top: 8px;
|
|
color: var(--text-muted);
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
@media (max-width: 720px) {
|
|
.dest-pros-cons { grid-template-columns: 1fr; }
|
|
}
|
|
|
|
.dest-radar-card {
|
|
padding: 24px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
}
|
|
|
|
.dest-radar-card h3 {
|
|
font-size: 1rem;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.dest-radar-row {
|
|
display: grid;
|
|
grid-template-columns: 80px 1fr 36px;
|
|
gap: 10px;
|
|
align-items: center;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.dest-radar-label {
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.dest-radar-track {
|
|
height: 8px;
|
|
background: rgba(255, 255, 255, 0.06);
|
|
border-radius: 4px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.dest-radar-fill {
|
|
height: 100%;
|
|
background: linear-gradient(90deg, #FF6B6B, #4ECDC4);
|
|
border-radius: 4px;
|
|
transition: width 0.8s ease;
|
|
}
|
|
|
|
.dest-radar-val {
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
text-align: right;
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.dest-info-cards {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.dest-info-mini {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
padding: 16px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
}
|
|
|
|
.dest-info-mini span:first-child { font-size: 1.5rem; }
|
|
|
|
.dest-info-mini strong {
|
|
display: block;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.dest-info-mini span:last-child {
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.dest-related {
|
|
margin-top: 32px;
|
|
padding-top: 28px;
|
|
border-top: 1px solid rgba(255, 255, 255, 0.06);
|
|
}
|
|
|
|
.dest-related h3 {
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.dest-related-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.dest-related-card {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 16px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
transition: all 0.25s ease;
|
|
}
|
|
|
|
.dest-related-card:hover {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.dest-related-card span:first-child { font-size: 1.8rem; }
|
|
|
|
.dest-related-card strong {
|
|
display: block;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.dest-related-card span:last-child {
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* ===== Blog Reading Progress ===== */
|
|
.blog-reading-progress {
|
|
position: fixed;
|
|
top: 3px;
|
|
left: 0;
|
|
right: 0;
|
|
height: 3px;
|
|
z-index: 9998;
|
|
background: rgba(255, 255, 255, 0.04);
|
|
}
|
|
|
|
.blog-reading-bar {
|
|
height: 100%;
|
|
background: linear-gradient(90deg, #A78BFA, #4ECDC4);
|
|
transition: width 0.1s linear;
|
|
}
|
|
|
|
.blog-reading-pct {
|
|
position: fixed;
|
|
top: 12px;
|
|
right: 20px;
|
|
z-index: 9998;
|
|
font-size: 0.7rem;
|
|
font-weight: 600;
|
|
color: var(--accent-3);
|
|
background: var(--bg-card);
|
|
padding: 4px 10px;
|
|
border-radius: 20px;
|
|
border: var(--border-glass);
|
|
}
|
|
|
|
/* ===== Map Actions ===== */
|
|
.map-info-actions {
|
|
display: flex;
|
|
gap: 10px;
|
|
margin-top: 16px;
|
|
}
|
|
|
|
.btn-sm {
|
|
padding: 8px 16px !important;
|
|
font-size: 0.8rem !important;
|
|
}
|
|
|
|
/* ===== Profile Trip ===== */
|
|
.profile-trip {
|
|
margin: 40px 0;
|
|
}
|
|
|
|
.profile-trip h2 {
|
|
font-family: var(--font-display);
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.profile-trip-list {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
padding: 20px;
|
|
}
|
|
|
|
.profile-trip-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
padding: 14px 0;
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.06);
|
|
}
|
|
|
|
.profile-trip-item:last-of-type { border-bottom: none; }
|
|
|
|
.trip-item-num {
|
|
width: 28px;
|
|
height: 28px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: rgba(78, 205, 196, 0.15);
|
|
border-radius: 50%;
|
|
font-size: 0.75rem;
|
|
font-weight: 700;
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.profile-trip-total {
|
|
padding: 16px 0 12px;
|
|
font-size: 0.9rem;
|
|
color: var(--text-muted);
|
|
text-align: center;
|
|
}
|
|
|
|
@media (max-width: 1024px) {
|
|
.currency-wrapper { grid-template-columns: 1fr; }
|
|
.lifestyle-layout { grid-template-columns: 1fr; }
|
|
.lifestyle-detail-card { position: static; }
|
|
.dest-detail-extras { grid-template-columns: 1fr; }
|
|
.section-nav { display: none; }
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.currency-preset-grid { grid-template-columns: 1fr; }
|
|
.currency-result-amount { font-size: 1.8rem; }
|
|
}
|
|
|
|
/* ===== Cost Compare ===== */
|
|
.cost-compare-section {
|
|
background: linear-gradient(180deg, transparent, rgba(78, 205, 196, 0.03), transparent);
|
|
}
|
|
|
|
.cost-compare-card {
|
|
max-width: 720px;
|
|
margin: 0 auto;
|
|
padding: 32px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.cost-compare-selectors {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 20px;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.cost-compare-select label {
|
|
display: block;
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.cost-city-chips {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.cost-city-chip {
|
|
padding: 8px 14px;
|
|
border-radius: 50px;
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-secondary);
|
|
font-family: inherit;
|
|
font-size: 0.85rem;
|
|
cursor: pointer;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.cost-city-chip:hover,
|
|
.cost-city-chip.active {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
background: rgba(78, 205, 196, 0.12);
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.cost-compare-select select {
|
|
width: 100%;
|
|
padding: 12px 16px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
font-family: inherit;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.cost-compare-bars {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.cost-bar-label {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
margin-bottom: 8px;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.cost-bar-track {
|
|
height: 12px;
|
|
background: rgba(255, 255, 255, 0.06);
|
|
border-radius: 6px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.cost-bar-fill {
|
|
height: 100%;
|
|
border-radius: 6px;
|
|
transition: width 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
}
|
|
|
|
.cost-bar-fill.home {
|
|
background: linear-gradient(90deg, #FF6B6B, #FFE66D);
|
|
}
|
|
|
|
.cost-bar-fill.dest {
|
|
background: rgba(255, 255, 255, 0.2);
|
|
}
|
|
|
|
.cost-bar-fill.dest.cheaper {
|
|
background: linear-gradient(90deg, #4ECDC4, #6ee7b7);
|
|
}
|
|
|
|
.cost-compare-result {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
padding: 20px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
}
|
|
|
|
.cost-compare-result.saving {
|
|
background: rgba(78, 205, 196, 0.08);
|
|
border-color: rgba(78, 205, 196, 0.3);
|
|
}
|
|
|
|
.cost-result-emoji { font-size: 2rem; }
|
|
|
|
.cost-compare-result strong {
|
|
display: block;
|
|
font-family: var(--font-display);
|
|
font-size: 1.15rem;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.cost-compare-result p {
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
margin: 0;
|
|
}
|
|
|
|
/* ===== Tools Filters ===== */
|
|
.tools-filters {
|
|
display: flex;
|
|
gap: 8px;
|
|
justify-content: center;
|
|
flex-wrap: wrap;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.tool-links {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin: 10px 0;
|
|
}
|
|
|
|
.tool-link {
|
|
font-size: 0.8rem;
|
|
color: var(--accent-3);
|
|
text-decoration: none;
|
|
padding: 4px 10px;
|
|
background: rgba(78, 205, 196, 0.08);
|
|
border-radius: 20px;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.tool-link:hover {
|
|
background: rgba(78, 205, 196, 0.2);
|
|
}
|
|
|
|
.tool-link-static {
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
padding: 4px 10px;
|
|
background: var(--bg-glass);
|
|
border-radius: 20px;
|
|
}
|
|
|
|
/* ===== Blog Tables ===== */
|
|
.blog-table-wrap {
|
|
overflow-x: auto;
|
|
margin: 20px 0;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
}
|
|
|
|
.blog-table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.blog-table th,
|
|
.blog-table td {
|
|
padding: 12px 16px;
|
|
text-align: left;
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.06);
|
|
}
|
|
|
|
.blog-table th {
|
|
background: rgba(78, 205, 196, 0.08);
|
|
font-weight: 600;
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.blog-table tr:last-child td { border-bottom: none; }
|
|
|
|
.blog-table tr:hover td {
|
|
background: rgba(255, 255, 255, 0.02);
|
|
}
|
|
|
|
/* ===== Cookie Consent ===== */
|
|
.cookie-consent {
|
|
position: fixed;
|
|
bottom: 24px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
z-index: 9000;
|
|
width: min(560px, calc(100% - 32px));
|
|
animation: toastIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
}
|
|
|
|
.cookie-consent-inner {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
padding: 16px 20px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(20px);
|
|
box-shadow: var(--shadow-card);
|
|
}
|
|
|
|
.cookie-emoji { font-size: 1.5rem; flex-shrink: 0; }
|
|
|
|
.cookie-consent-inner p {
|
|
flex: 1;
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
margin: 0;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.cookie-consent-inner a {
|
|
color: var(--accent-3);
|
|
margin-left: 4px;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.cookie-consent-inner {
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
text-align: center;
|
|
}
|
|
.cost-compare-card { padding: 20px; }
|
|
.nav-links.open {
|
|
animation: menuSlide 0.3s ease;
|
|
}
|
|
}
|
|
|
|
@keyframes menuSlide {
|
|
from { opacity: 0; transform: translateY(-10px); }
|
|
to { opacity: 1; transform: translateY(0); }
|
|
}
|
|
|
|
/* ===== Visa Wizard ===== */
|
|
.visa-wizard {
|
|
margin-top: 48px;
|
|
padding: 32px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.visa-wizard-header {
|
|
text-align: center;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.visa-wizard-header h3 {
|
|
font-size: 1.5rem;
|
|
margin: 12px 0 8px;
|
|
}
|
|
|
|
.visa-wizard-header p {
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.visa-wizard-steps {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 32px;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.wizard-step-dot {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 6px;
|
|
opacity: 0.4;
|
|
transition: opacity 0.3s;
|
|
}
|
|
|
|
.wizard-step-dot span {
|
|
width: 36px;
|
|
height: 36px;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: rgba(255, 255, 255, 0.06);
|
|
border: 2px solid rgba(255, 255, 255, 0.1);
|
|
font-weight: 600;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.wizard-step-dot small {
|
|
font-size: 0.75rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.wizard-step-dot.active { opacity: 1; }
|
|
.wizard-step-dot.active span {
|
|
border-color: var(--accent-3);
|
|
background: rgba(78, 205, 196, 0.15);
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.wizard-step-dot.done span {
|
|
background: var(--accent-3);
|
|
color: #0a0e17;
|
|
border-color: var(--accent-3);
|
|
}
|
|
|
|
.wizard-options {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
gap: 12px;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.wizard-option {
|
|
padding: 16px 20px;
|
|
background: rgba(255, 255, 255, 0.03);
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
border-radius: var(--radius-md);
|
|
color: var(--text-primary);
|
|
font-size: 0.9rem;
|
|
cursor: pointer;
|
|
transition: all 0.25s;
|
|
text-align: left;
|
|
}
|
|
|
|
.wizard-option:hover {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
background: rgba(78, 205, 196, 0.06);
|
|
}
|
|
|
|
.wizard-option.selected {
|
|
border-color: var(--accent-3);
|
|
background: rgba(78, 205, 196, 0.12);
|
|
box-shadow: 0 0 20px rgba(78, 205, 196, 0.15);
|
|
}
|
|
|
|
.wizard-nav {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 12px;
|
|
}
|
|
|
|
.wizard-result-cards {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
|
gap: 16px;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.wizard-result-card {
|
|
position: relative;
|
|
padding: 20px;
|
|
background: rgba(255, 255, 255, 0.03);
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
border-radius: var(--radius-lg);
|
|
transition: transform 0.3s;
|
|
}
|
|
|
|
.wizard-result-card.winner {
|
|
border-color: var(--accent-2);
|
|
background: rgba(255, 230, 109, 0.06);
|
|
}
|
|
|
|
.wizard-winner-badge {
|
|
position: absolute;
|
|
top: -10px;
|
|
right: 12px;
|
|
font-size: 0.75rem;
|
|
padding: 4px 10px;
|
|
background: linear-gradient(135deg, #FFE66D, #FF6B6B);
|
|
color: #0a0e17;
|
|
border-radius: 20px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.wizard-result-top {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.wizard-result-flag { font-size: 2rem; }
|
|
|
|
.wizard-result-card h4 {
|
|
font-size: 1rem;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.wizard-match-score {
|
|
font-size: 0.8rem;
|
|
color: var(--accent-3);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.wizard-result-card ul {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.wizard-result-card li {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
padding: 4px 0;
|
|
}
|
|
|
|
.wizard-empty {
|
|
text-align: center;
|
|
color: var(--text-secondary);
|
|
padding: 20px;
|
|
}
|
|
|
|
/* ===== Coworking Guide ===== */
|
|
.coworking-section {
|
|
background: linear-gradient(180deg, transparent, rgba(78, 205, 196, 0.03));
|
|
}
|
|
|
|
.coworking-controls {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 16px;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.coworking-filters {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.coworking-sort {
|
|
padding: 8px 14px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
color: var(--text-primary);
|
|
font-size: 0.85rem;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.coworking-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
|
gap: 20px;
|
|
}
|
|
|
|
.coworking-card {
|
|
padding: 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(16px);
|
|
transition: transform 0.3s, box-shadow 0.3s;
|
|
}
|
|
|
|
.coworking-card:hover {
|
|
transform: translateY(-4px);
|
|
box-shadow: var(--shadow-card);
|
|
}
|
|
|
|
.coworking-card-top {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.coworking-emoji { font-size: 1.8rem; }
|
|
|
|
.coworking-rating {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-end;
|
|
font-size: 0.8rem;
|
|
gap: 2px;
|
|
}
|
|
|
|
.coworking-wifi { color: var(--accent-3); }
|
|
|
|
.coworking-card h3 {
|
|
font-size: 1.15rem;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.coworking-city {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.coworking-price {
|
|
font-size: 1.1rem;
|
|
font-weight: 700;
|
|
color: var(--accent-2);
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.coworking-perks {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
.coworking-perk {
|
|
font-size: 0.75rem;
|
|
padding: 4px 10px;
|
|
background: rgba(255, 255, 255, 0.05);
|
|
border-radius: 20px;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.coworking-link {
|
|
font-size: 0.85rem;
|
|
color: var(--accent-3);
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* ===== FAQ Toolbar ===== */
|
|
.faq-toolbar {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 16px;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.faq-search-wrap {
|
|
position: relative;
|
|
flex: 1;
|
|
min-width: 240px;
|
|
max-width: 480px;
|
|
}
|
|
|
|
.faq-search-icon {
|
|
position: absolute;
|
|
left: 14px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
font-size: 0.9rem;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.faq-search {
|
|
width: 100%;
|
|
padding: 12px 40px 12px 40px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
color: var(--text-primary);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.faq-search:focus {
|
|
outline: none;
|
|
border-color: rgba(78, 205, 196, 0.5);
|
|
}
|
|
|
|
.faq-search-clear {
|
|
position: absolute;
|
|
right: 10px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
background: none;
|
|
border: none;
|
|
color: var(--text-secondary);
|
|
cursor: pointer;
|
|
padding: 4px 8px;
|
|
}
|
|
|
|
.faq-toolbar-actions {
|
|
display: flex;
|
|
gap: 8px;
|
|
}
|
|
|
|
.btn-sm {
|
|
padding: 8px 14px !important;
|
|
font-size: 0.8rem !important;
|
|
}
|
|
|
|
.faq-empty {
|
|
text-align: center;
|
|
color: var(--text-secondary);
|
|
padding: 32px;
|
|
}
|
|
|
|
/* ===== Blog Filters ===== */
|
|
.blog-filters {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
justify-content: center;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
/* ===== Share Button ===== */
|
|
.share-dropdown {
|
|
position: relative;
|
|
}
|
|
|
|
.share-trigger { font-size: 0.85rem; }
|
|
|
|
.share-backdrop {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 100;
|
|
}
|
|
|
|
.share-menu {
|
|
position: absolute;
|
|
top: calc(100% + 8px);
|
|
right: 0;
|
|
z-index: 101;
|
|
min-width: 160px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
backdrop-filter: blur(20px);
|
|
box-shadow: var(--shadow-card);
|
|
overflow: hidden;
|
|
animation: toastIn 0.2s ease;
|
|
}
|
|
|
|
.share-menu button {
|
|
display: block;
|
|
width: 100%;
|
|
padding: 12px 16px;
|
|
background: none;
|
|
border: none;
|
|
color: var(--text-primary);
|
|
font-size: 0.85rem;
|
|
text-align: left;
|
|
cursor: pointer;
|
|
transition: background 0.2s;
|
|
}
|
|
|
|
.share-menu button:hover {
|
|
background: rgba(78, 205, 196, 0.1);
|
|
}
|
|
|
|
.share-btn-compact {
|
|
background: rgba(255, 255, 255, 0.06);
|
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
border-radius: var(--radius-md);
|
|
padding: 8px 12px;
|
|
font-size: 1rem;
|
|
cursor: pointer;
|
|
transition: all 0.2s;
|
|
}
|
|
|
|
.share-btn-compact:hover {
|
|
background: rgba(78, 205, 196, 0.12);
|
|
border-color: rgba(78, 205, 196, 0.3);
|
|
}
|
|
|
|
/* ===== Blog Related ===== */
|
|
.blog-related {
|
|
margin-top: 48px;
|
|
padding-top: 32px;
|
|
border-top: 1px solid rgba(255, 255, 255, 0.06);
|
|
}
|
|
|
|
.blog-related h2 {
|
|
font-size: 1.3rem;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.blog-related-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
|
gap: 16px;
|
|
}
|
|
|
|
.blog-related-card {
|
|
padding: 20px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
transition: transform 0.3s;
|
|
}
|
|
|
|
.blog-related-card:hover {
|
|
transform: translateY(-3px);
|
|
}
|
|
|
|
.blog-related-emoji { font-size: 2rem; display: block; margin-bottom: 8px; }
|
|
|
|
.blog-related-card h3 {
|
|
font-size: 1rem;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.blog-related-card p {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 10px;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 2;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.detail-nav {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
}
|
|
|
|
/* ===== Profile Badges ===== */
|
|
.profile-badges {
|
|
margin: 32px 0;
|
|
}
|
|
|
|
.profile-badges h2 {
|
|
font-size: 1.2rem;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.badge-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.badge-card {
|
|
padding: 16px;
|
|
text-align: center;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
transition: transform 0.3s;
|
|
}
|
|
|
|
.badge-card.earned {
|
|
border-color: rgba(255, 230, 109, 0.3);
|
|
background: rgba(255, 230, 109, 0.05);
|
|
}
|
|
|
|
.badge-card.locked {
|
|
opacity: 0.45;
|
|
filter: grayscale(0.5);
|
|
}
|
|
|
|
.badge-card.earned:hover {
|
|
transform: scale(1.04);
|
|
}
|
|
|
|
.badge-emoji {
|
|
font-size: 2rem;
|
|
display: block;
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
.badge-card strong {
|
|
display: block;
|
|
font-size: 0.85rem;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.badge-card small {
|
|
font-size: 0.7rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
/* ===== Auth Enhancements ===== */
|
|
.auth-bg-shapes {
|
|
position: absolute;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.auth-shape {
|
|
position: absolute;
|
|
font-size: 3rem;
|
|
opacity: 0.08;
|
|
animation: authFloat 8s ease-in-out infinite;
|
|
}
|
|
|
|
.auth-shape-1 { top: 15%; left: 10%; animation-delay: 0s; }
|
|
.auth-shape-2 { top: 60%; right: 15%; animation-delay: -3s; font-size: 2.5rem; }
|
|
.auth-shape-3 { bottom: 20%; left: 30%; animation-delay: -5s; font-size: 2rem; }
|
|
|
|
@keyframes authFloat {
|
|
0%, 100% { transform: translateY(0) rotate(0deg); }
|
|
50% { transform: translateY(-20px) rotate(5deg); }
|
|
}
|
|
|
|
.auth-logo-emoji {
|
|
font-size: 3rem;
|
|
display: block;
|
|
animation: authPulse 2s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes authPulse {
|
|
0%, 100% { transform: scale(1); }
|
|
50% { transform: scale(1.08); }
|
|
}
|
|
|
|
.auth-pwd-wrap {
|
|
position: relative;
|
|
}
|
|
|
|
.auth-pwd-wrap input {
|
|
width: 100%;
|
|
padding-right: 44px;
|
|
}
|
|
|
|
.auth-pwd-toggle {
|
|
position: absolute;
|
|
right: 10px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
background: none;
|
|
border: none;
|
|
cursor: pointer;
|
|
font-size: 1rem;
|
|
padding: 4px;
|
|
}
|
|
|
|
.auth-pwd-hint {
|
|
margin-top: 6px;
|
|
font-size: 0.78rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.auth-submit {
|
|
width: 100%;
|
|
}
|
|
|
|
.auth-loading {
|
|
display: inline-block;
|
|
animation: authPulse 1s ease-in-out infinite;
|
|
}
|
|
|
|
/* ===== 404 Enhancements ===== */
|
|
.not-found-compass {
|
|
position: relative;
|
|
width: 120px;
|
|
height: 120px;
|
|
margin: 0 auto 24px;
|
|
}
|
|
|
|
.compass-ring {
|
|
font-size: 5rem;
|
|
display: block;
|
|
animation: compassSpin 6s linear infinite;
|
|
}
|
|
|
|
.compass-plane {
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
font-size: 1.8rem;
|
|
animation: planeOrbit 4s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes compassSpin {
|
|
from { transform: rotate(0deg); }
|
|
to { transform: rotate(360deg); }
|
|
}
|
|
|
|
@keyframes planeOrbit {
|
|
0%, 100% { transform: translate(-50%, -50%) translateX(30px); }
|
|
50% { transform: translate(-50%, -50%) translateX(-30px); }
|
|
}
|
|
|
|
.not-found-title {
|
|
font-size: 5rem;
|
|
background: linear-gradient(135deg, var(--accent-1), var(--accent-2), var(--accent-3));
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
background-clip: text;
|
|
}
|
|
|
|
.not-found-sub {
|
|
color: var(--text-secondary);
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.not-found-actions {
|
|
display: flex;
|
|
gap: 12px;
|
|
justify-content: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.visa-wizard { padding: 20px; }
|
|
.visa-wizard-steps { gap: 16px; }
|
|
.wizard-step-dot small { display: none; }
|
|
.coworking-controls { flex-direction: column; align-items: stretch; }
|
|
.faq-toolbar { flex-direction: column; }
|
|
.faq-search-wrap { max-width: 100%; }
|
|
.badge-grid { grid-template-columns: repeat(3, 1fr); }
|
|
.season-grid { grid-template-columns: repeat(3, 1fr); }
|
|
.packing-filters { flex-direction: column; align-items: stretch; }
|
|
.nomad-tips { left: 12px; right: 12px; bottom: 80px; max-width: none; }
|
|
}
|
|
|
|
/* ===== Packing Checklist ===== */
|
|
.packing-card {
|
|
max-width: 720px;
|
|
margin: 0 auto;
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.packing-progress { margin-bottom: 24px; }
|
|
|
|
.packing-progress-info {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
margin-bottom: 10px;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.packing-progress-info strong { font-size: 1.4rem; }
|
|
.packing-count { margin-left: auto; color: var(--text-secondary); }
|
|
|
|
.packing-bar {
|
|
height: 8px;
|
|
background: rgba(255, 255, 255, 0.06);
|
|
border-radius: 4px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.packing-bar-fill {
|
|
height: 100%;
|
|
background: linear-gradient(90deg, var(--accent-1), var(--accent-3));
|
|
border-radius: 4px;
|
|
transition: width 0.4s ease;
|
|
}
|
|
|
|
.packing-ready {
|
|
margin-top: 10px;
|
|
color: var(--accent-3);
|
|
font-weight: 600;
|
|
text-align: center;
|
|
}
|
|
|
|
.packing-filters {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
align-items: center;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.packing-actions {
|
|
margin-left: auto;
|
|
display: flex;
|
|
gap: 6px;
|
|
}
|
|
|
|
.packing-list {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
}
|
|
|
|
.packing-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
padding: 12px 14px;
|
|
background: rgba(255, 255, 255, 0.03);
|
|
border: 1px solid rgba(255, 255, 255, 0.06);
|
|
border-radius: var(--radius-md);
|
|
cursor: pointer;
|
|
transition: all 0.25s;
|
|
}
|
|
|
|
.packing-item:hover {
|
|
border-color: rgba(78, 205, 196, 0.3);
|
|
background: rgba(78, 205, 196, 0.05);
|
|
}
|
|
|
|
.packing-item.checked {
|
|
opacity: 0.65;
|
|
border-color: rgba(78, 205, 196, 0.35);
|
|
}
|
|
|
|
.packing-item.checked .packing-label {
|
|
text-decoration: line-through;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.packing-item input { display: none; }
|
|
|
|
.packing-check {
|
|
width: 22px;
|
|
height: 22px;
|
|
border-radius: 6px;
|
|
border: 2px solid rgba(255, 255, 255, 0.2);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 0.75rem;
|
|
color: #0a0e17;
|
|
flex-shrink: 0;
|
|
transition: all 0.2s;
|
|
}
|
|
|
|
.packing-item.checked .packing-check {
|
|
background: var(--accent-3);
|
|
border-color: var(--accent-3);
|
|
}
|
|
|
|
.packing-emoji { font-size: 1.2rem; }
|
|
.packing-label { font-size: 0.9rem; flex: 1; }
|
|
.arrival-meetup-link {
|
|
margin-left: auto;
|
|
color: var(--accent, #4ecdc4);
|
|
text-decoration: none;
|
|
font-weight: 600;
|
|
padding: 0 0.25rem;
|
|
}
|
|
.arrival-meetup-link:hover { text-decoration: underline; }
|
|
|
|
/* ===== Season Guide ===== */
|
|
.season-card {
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.season-cities {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin-bottom: 24px;
|
|
justify-content: center;
|
|
}
|
|
|
|
.season-city-btn {
|
|
padding: 8px 14px;
|
|
background: rgba(255, 255, 255, 0.04);
|
|
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
border-radius: 20px;
|
|
color: var(--text-primary);
|
|
font-size: 0.85rem;
|
|
cursor: pointer;
|
|
transition: all 0.25s;
|
|
}
|
|
|
|
.season-city-btn:hover,
|
|
.season-city-btn.active {
|
|
border-color: var(--accent-3);
|
|
background: rgba(78, 205, 196, 0.12);
|
|
}
|
|
|
|
.season-header-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 16px;
|
|
margin-bottom: 20px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.season-header-row h3 { font-size: 1.3rem; margin-bottom: 4px; }
|
|
.season-header-row p { color: var(--text-secondary); font-size: 0.9rem; }
|
|
|
|
.season-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(6, 1fr);
|
|
gap: 10px;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.season-month {
|
|
position: relative;
|
|
padding: 14px 8px;
|
|
text-align: center;
|
|
background: rgba(255, 255, 255, 0.03);
|
|
border: 1px solid color-mix(in srgb, var(--season-color) 40%, transparent);
|
|
border-radius: var(--radius-md);
|
|
border-top: 3px solid var(--season-color);
|
|
transition: transform 0.2s;
|
|
}
|
|
|
|
.season-month:hover { transform: translateY(-2px); }
|
|
|
|
.season-month.now {
|
|
box-shadow: 0 0 16px color-mix(in srgb, var(--season-color) 30%, transparent);
|
|
}
|
|
|
|
.season-month-emoji { display: block; font-size: 1.2rem; margin-bottom: 4px; }
|
|
.season-month strong { display: block; font-size: 0.9rem; }
|
|
.season-month small { color: var(--text-secondary); font-size: 0.7rem; }
|
|
|
|
.season-now-tag {
|
|
position: absolute;
|
|
top: -8px;
|
|
right: -4px;
|
|
font-size: 0.65rem;
|
|
padding: 2px 6px;
|
|
background: var(--accent-1);
|
|
color: #fff;
|
|
border-radius: 8px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.season-legend {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 16px;
|
|
justify-content: center;
|
|
}
|
|
|
|
.season-legend-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
font-size: 0.8rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.season-legend-item i {
|
|
width: 10px;
|
|
height: 10px;
|
|
border-radius: 50%;
|
|
display: inline-block;
|
|
}
|
|
|
|
/* ===== Testimonial Carousel ===== */
|
|
.testimonial-carousel {
|
|
max-width: 680px;
|
|
margin: 0 auto 40px;
|
|
text-align: center;
|
|
}
|
|
|
|
.testimonial-featured {
|
|
padding: 32px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
animation: toastIn 0.4s ease;
|
|
}
|
|
|
|
.testimonial-featured .testimonial-avatar {
|
|
font-size: 3rem;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.testimonial-featured p {
|
|
font-size: 1.1rem;
|
|
line-height: 1.7;
|
|
margin: 12px 0 16px;
|
|
}
|
|
|
|
.testimonial-dots {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
margin-top: 16px;
|
|
}
|
|
|
|
.testimonial-dot {
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
border: none;
|
|
background: rgba(255, 255, 255, 0.2);
|
|
cursor: pointer;
|
|
padding: 0;
|
|
transition: all 0.3s;
|
|
}
|
|
|
|
.testimonial-dot.active {
|
|
width: 24px;
|
|
border-radius: 4px;
|
|
background: var(--accent-3);
|
|
}
|
|
|
|
/* ===== Nomad Tips ===== */
|
|
.nomad-tips {
|
|
position: fixed;
|
|
bottom: 100px;
|
|
left: 24px;
|
|
z-index: 8500;
|
|
max-width: 340px;
|
|
display: flex;
|
|
align-items: flex-start;
|
|
gap: 12px;
|
|
padding: 16px 18px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(20px);
|
|
box-shadow: var(--shadow-card);
|
|
animation: toastIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
}
|
|
|
|
.nomad-tips-emoji { font-size: 1.5rem; flex-shrink: 0; }
|
|
|
|
.nomad-tips-body strong {
|
|
display: block;
|
|
font-size: 0.8rem;
|
|
color: var(--accent-3);
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.nomad-tips-body p {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
margin: 0;
|
|
line-height: 1.45;
|
|
animation: toastIn 0.3s ease;
|
|
}
|
|
|
|
.nomad-tips-link {
|
|
display: inline-block;
|
|
margin-top: 8px;
|
|
font-size: 0.8rem;
|
|
color: var(--accent-3);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.nomad-tips-link:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.nomad-tips-close {
|
|
position: absolute;
|
|
top: 8px;
|
|
right: 10px;
|
|
background: none;
|
|
border: none;
|
|
color: var(--text-secondary);
|
|
cursor: pointer;
|
|
font-size: 0.85rem;
|
|
padding: 2px 6px;
|
|
}
|
|
|
|
.nomad-tips-dots {
|
|
position: absolute;
|
|
bottom: 8px;
|
|
right: 16px;
|
|
display: flex;
|
|
gap: 4px;
|
|
}
|
|
|
|
.nomad-tips-dots span {
|
|
width: 5px;
|
|
height: 5px;
|
|
border-radius: 50%;
|
|
background: rgba(255, 255, 255, 0.2);
|
|
}
|
|
|
|
.nomad-tips-dots span.active { background: var(--accent-3); }
|
|
|
|
|
|
/* ===== Spin Globe ===== */
|
|
.spin-card {
|
|
max-width: 520px;
|
|
margin: 0 auto;
|
|
padding: 40px 28px;
|
|
text-align: center;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.spin-orb {
|
|
position: relative;
|
|
width: 140px;
|
|
height: 140px;
|
|
margin: 0 auto 20px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.spin-emoji {
|
|
font-size: 4rem;
|
|
position: relative;
|
|
z-index: 2;
|
|
transition: transform 0.1s;
|
|
}
|
|
|
|
.spin-orb.spinning .spin-emoji {
|
|
animation: spinBounce 0.18s ease infinite;
|
|
}
|
|
|
|
@keyframes spinBounce {
|
|
0%, 100% { transform: scale(1) rotate(-4deg); }
|
|
50% { transform: scale(1.12) rotate(4deg); }
|
|
}
|
|
|
|
.spin-orb-ring {
|
|
position: absolute;
|
|
inset: 0;
|
|
border-radius: 50%;
|
|
border: 2px dashed rgba(78, 205, 196, 0.35);
|
|
animation: compassSpin 12s linear infinite;
|
|
}
|
|
|
|
.spin-orb-ring-2 {
|
|
inset: 12px;
|
|
border-style: solid;
|
|
border-color: rgba(255, 230, 109, 0.25);
|
|
animation-direction: reverse;
|
|
animation-duration: 8s;
|
|
}
|
|
|
|
.spin-orb.spinning .spin-orb-ring {
|
|
animation-duration: 1.2s;
|
|
border-color: var(--accent-3);
|
|
}
|
|
|
|
.spin-city-name {
|
|
font-size: 1.5rem;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.spin-hint {
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.spin-btn { min-width: 200px; }
|
|
|
|
.spin-result {
|
|
margin-top: 8px;
|
|
animation: toastIn 0.4s ease;
|
|
}
|
|
|
|
.spin-result-tag {
|
|
color: var(--accent-2);
|
|
font-weight: 600;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.spin-result-meta {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 14px;
|
|
flex-wrap: wrap;
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.spin-result-desc {
|
|
font-size: 0.9rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.6;
|
|
margin-bottom: 18px;
|
|
}
|
|
|
|
.spin-result-actions {
|
|
display: flex;
|
|
gap: 10px;
|
|
justify-content: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
/* ===== Flight Cost ===== */
|
|
.flight-card {
|
|
display: grid;
|
|
grid-template-columns: 1.1fr 0.9fr;
|
|
gap: 28px;
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.flight-form {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
}
|
|
|
|
.flight-arrow {
|
|
text-align: center;
|
|
font-size: 1.4rem;
|
|
color: var(--accent-3);
|
|
opacity: 0.7;
|
|
}
|
|
|
|
.flight-result {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
padding: 24px;
|
|
background: rgba(78, 205, 196, 0.06);
|
|
border: 1px solid rgba(78, 205, 196, 0.15);
|
|
border-radius: var(--radius-lg);
|
|
}
|
|
|
|
.flight-route {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 12px;
|
|
font-weight: 600;
|
|
margin-bottom: 20px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.flight-plane {
|
|
animation: planeOrbit 3s ease-in-out infinite;
|
|
}
|
|
|
|
.flight-nums {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 14px;
|
|
}
|
|
|
|
.flight-nums div {
|
|
text-align: center;
|
|
}
|
|
|
|
.flight-nums small {
|
|
display: block;
|
|
font-size: 0.75rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.flight-nums strong {
|
|
font-size: 1.25rem;
|
|
}
|
|
|
|
.flight-total {
|
|
grid-column: 1 / -1;
|
|
padding-top: 10px;
|
|
border-top: 1px solid rgba(255, 255, 255, 0.08);
|
|
}
|
|
|
|
.flight-total strong {
|
|
font-size: 1.75rem;
|
|
}
|
|
|
|
.flight-note {
|
|
margin-top: 16px;
|
|
font-size: 0.75rem;
|
|
color: var(--text-secondary);
|
|
text-align: center;
|
|
}
|
|
|
|
/* ===== Nomad Events ===== */
|
|
.events-filters {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
justify-content: center;
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.events-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
|
gap: 20px;
|
|
}
|
|
|
|
.event-card {
|
|
padding: 22px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(16px);
|
|
transition: transform 0.3s, box-shadow 0.3s;
|
|
}
|
|
|
|
.event-card:hover {
|
|
transform: translateY(-4px);
|
|
box-shadow: var(--shadow-card);
|
|
}
|
|
|
|
.event-card-top {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.event-emoji { font-size: 2rem; }
|
|
|
|
.event-badge {
|
|
font-size: 0.75rem;
|
|
padding: 4px 10px;
|
|
background: rgba(255, 255, 255, 0.06);
|
|
border-radius: 20px;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.event-badge.online {
|
|
background: rgba(78, 205, 196, 0.12);
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.event-card h3 {
|
|
font-size: 1.05rem;
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
.event-date {
|
|
font-size: 0.85rem;
|
|
color: var(--accent-2);
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.event-desc {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.5;
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
/* ===== Legal / Privacy ===== */
|
|
.legal-page {
|
|
max-width: 720px;
|
|
margin: 0 auto;
|
|
padding: calc(var(--nav-height) + 40px) 24px 80px;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.legal-content .section-tag { margin-bottom: 12px; display: inline-block; }
|
|
|
|
.legal-content h1 {
|
|
font-size: 2rem;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.legal-updated {
|
|
color: var(--text-secondary);
|
|
font-size: 0.85rem;
|
|
margin-bottom: 32px;
|
|
}
|
|
|
|
.legal-content section {
|
|
margin-bottom: 28px;
|
|
}
|
|
|
|
.legal-content h2 {
|
|
font-size: 1.2rem;
|
|
margin-bottom: 10px;
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.legal-content p {
|
|
color: var(--text-secondary);
|
|
line-height: 1.7;
|
|
}
|
|
|
|
.legal-content a { color: var(--accent-3); }
|
|
|
|
@media (max-width: 768px) {
|
|
.flight-card { grid-template-columns: 1fr; }
|
|
.spin-card { padding: 28px 20px; }
|
|
}
|
|
|
|
/* ===== Daily Quote ===== */
|
|
.quote-section { padding-top: 40px; padding-bottom: 40px; }
|
|
|
|
.quote-card {
|
|
max-width: 720px;
|
|
margin: 0 auto;
|
|
padding: 36px 32px;
|
|
text-align: center;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.quote-card::before {
|
|
content: "";
|
|
position: absolute;
|
|
inset: 0;
|
|
background: linear-gradient(135deg, rgba(255,107,107,0.06), rgba(78,205,196,0.08));
|
|
pointer-events: none;
|
|
}
|
|
|
|
.quote-emoji {
|
|
font-size: 2.5rem;
|
|
display: block;
|
|
margin-bottom: 12px;
|
|
position: relative;
|
|
}
|
|
|
|
.quote-card blockquote {
|
|
font-family: var(--font-display);
|
|
font-size: clamp(1.15rem, 2.5vw, 1.5rem);
|
|
font-weight: 600;
|
|
line-height: 1.6;
|
|
margin: 0 0 20px;
|
|
position: relative;
|
|
}
|
|
|
|
.quote-footer {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
gap: 16px;
|
|
flex-wrap: wrap;
|
|
position: relative;
|
|
}
|
|
|
|
/* ===== Wifi Work Score ===== */
|
|
.wifi-layout {
|
|
display: grid;
|
|
grid-template-columns: 1.2fr 0.8fr;
|
|
gap: 24px;
|
|
}
|
|
|
|
.wifi-picker {
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.wifi-meter {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 24px;
|
|
margin-top: 20px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.wifi-meter-ring {
|
|
width: 120px;
|
|
height: 120px;
|
|
border-radius: 50%;
|
|
border: 4px solid var(--wifi-color);
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
box-shadow: 0 0 24px color-mix(in srgb, var(--wifi-color) 35%, transparent);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.wifi-meter-ring strong {
|
|
font-size: 1.8rem;
|
|
line-height: 1;
|
|
}
|
|
|
|
.wifi-meter-ring small {
|
|
color: var(--text-secondary);
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
.wifi-meter-info h3 {
|
|
font-size: 1.3rem;
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
.wifi-level {
|
|
font-weight: 700;
|
|
font-size: 1rem;
|
|
display: block;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.wifi-meter-info p {
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.wifi-link {
|
|
color: var(--accent-3);
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.wifi-rank {
|
|
padding: 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.wifi-rank h4 {
|
|
margin-bottom: 14px;
|
|
font-size: 1rem;
|
|
}
|
|
|
|
.wifi-rank ul {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
}
|
|
|
|
.wifi-rank li {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 10px 12px;
|
|
border-radius: var(--radius-md);
|
|
cursor: pointer;
|
|
transition: background 0.2s;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.wifi-rank li:hover,
|
|
.wifi-rank li.active {
|
|
background: rgba(78, 205, 196, 0.1);
|
|
}
|
|
|
|
.wifi-rank-num {
|
|
width: 22px;
|
|
height: 22px;
|
|
border-radius: 50%;
|
|
background: rgba(255,255,255,0.08);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: 0.75rem;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.wifi-rank-speed {
|
|
margin-left: auto;
|
|
font-weight: 600;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
/* ===== Savings Goal ===== */
|
|
.savings-card {
|
|
display: grid;
|
|
grid-template-columns: 1.1fr 0.9fr;
|
|
gap: 28px;
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.savings-form {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
}
|
|
|
|
.savings-result {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 20px;
|
|
padding: 20px;
|
|
background: rgba(78, 205, 196, 0.05);
|
|
border-radius: var(--radius-lg);
|
|
}
|
|
|
|
.savings-ring {
|
|
width: 140px;
|
|
height: 140px;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.savings-ring-inner {
|
|
width: 110px;
|
|
height: 110px;
|
|
border-radius: 50%;
|
|
background: var(--bg-card);
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.savings-ring-inner strong {
|
|
font-size: 1.8rem;
|
|
}
|
|
|
|
.savings-ring-inner small {
|
|
color: var(--text-secondary);
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
.savings-stats {
|
|
text-align: center;
|
|
width: 100%;
|
|
}
|
|
|
|
.savings-stats > div {
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.savings-stats small {
|
|
display: block;
|
|
font-size: 0.75rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.savings-stats strong {
|
|
font-size: 1.3rem;
|
|
}
|
|
|
|
.savings-hint {
|
|
font-size: 0.8rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.5;
|
|
margin-top: 8px;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.wifi-layout,
|
|
.savings-card {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
/* ===== Jet Lag ===== */
|
|
.jetlag-card {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1.1fr;
|
|
gap: 28px;
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.jetlag-form { display: flex; flex-direction: column; gap: 16px; }
|
|
|
|
.jetlag-result {
|
|
padding: 24px;
|
|
background: rgba(167, 139, 250, 0.06);
|
|
border: 1px solid rgba(167, 139, 250, 0.15);
|
|
border-radius: var(--radius-lg);
|
|
}
|
|
|
|
.jetlag-diff {
|
|
text-align: center;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.jetlag-emoji { font-size: 2.5rem; display: block; margin-bottom: 8px; }
|
|
.jetlag-diff strong { font-size: 1.8rem; display: block; }
|
|
.jetlag-diff small { color: var(--text-secondary); font-size: 0.85rem; }
|
|
|
|
.jetlag-recovery {
|
|
text-align: center;
|
|
margin-bottom: 16px;
|
|
padding-bottom: 16px;
|
|
border-bottom: 1px solid rgba(255,255,255,0.06);
|
|
}
|
|
|
|
.jetlag-recovery span {
|
|
display: block;
|
|
font-size: 0.8rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.jetlag-recovery strong { font-size: 1.5rem; }
|
|
|
|
.jetlag-note {
|
|
margin-top: 8px;
|
|
font-size: 0.8rem;
|
|
color: var(--accent-2);
|
|
}
|
|
|
|
.jetlag-tips {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.jetlag-tips li {
|
|
font-size: 0.9rem;
|
|
color: var(--text-secondary);
|
|
padding: 6px 0;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
/* ===== Housing ===== */
|
|
.housing-cities {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
justify-content: center;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.housing-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 20px;
|
|
flex-wrap: wrap;
|
|
gap: 12px;
|
|
}
|
|
|
|
.housing-header h3 { font-size: 1.2rem; }
|
|
|
|
.housing-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
|
|
gap: 18px;
|
|
}
|
|
|
|
.housing-card {
|
|
padding: 22px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(16px);
|
|
transition: transform 0.3s;
|
|
}
|
|
|
|
.housing-card:hover { transform: translateY(-4px); }
|
|
|
|
.housing-card-top {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.housing-emoji { font-size: 1.8rem; }
|
|
.housing-price { font-size: 0.85rem; color: var(--accent-2); font-weight: 600; }
|
|
.housing-card h4 { font-size: 1.05rem; margin-bottom: 6px; }
|
|
.housing-best { font-size: 0.85rem; color: var(--text-secondary); margin-bottom: 12px; }
|
|
|
|
.housing-pros { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
.housing-pro {
|
|
font-size: 0.75rem;
|
|
padding: 4px 10px;
|
|
background: rgba(255,255,255,0.05);
|
|
border-radius: 20px;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
/* ===== Phrasebook ===== */
|
|
.phrase-card {
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.phrase-lang {
|
|
text-align: center;
|
|
font-weight: 600;
|
|
margin-bottom: 20px;
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.phrase-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.phrase-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 4px;
|
|
padding: 14px 16px;
|
|
background: rgba(255,255,255,0.03);
|
|
border: 1px solid rgba(255,255,255,0.08);
|
|
border-radius: var(--radius-md);
|
|
color: var(--text-primary);
|
|
cursor: pointer;
|
|
text-align: left;
|
|
transition: all 0.25s;
|
|
}
|
|
|
|
.phrase-item:hover {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
background: rgba(78, 205, 196, 0.08);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.phrase-item strong { font-size: 1rem; }
|
|
.phrase-pinyin { font-size: 0.75rem; color: var(--accent-3); }
|
|
.phrase-zh { font-size: 0.85rem; color: var(--text-secondary); }
|
|
|
|
/* ===== Feedback Widget ===== */
|
|
.pwa-install-hint {
|
|
position: fixed;
|
|
left: 16px;
|
|
right: 16px;
|
|
bottom: 24px;
|
|
z-index: 8700;
|
|
max-width: 420px;
|
|
margin: 0 auto;
|
|
padding: 14px 16px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(16px);
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
.pwa-install-hint p {
|
|
margin: 0 0 10px;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.pwa-install-actions {
|
|
display: flex;
|
|
gap: 8px;
|
|
}
|
|
|
|
.feedback-fab {
|
|
position: fixed;
|
|
bottom: 100px;
|
|
right: 24px;
|
|
z-index: 8600;
|
|
width: 48px;
|
|
height: 48px;
|
|
border-radius: 50%;
|
|
border: var(--border-glass);
|
|
background: var(--bg-card);
|
|
backdrop-filter: blur(16px);
|
|
font-size: 1.3rem;
|
|
cursor: pointer;
|
|
box-shadow: var(--shadow-card);
|
|
transition: transform 0.25s;
|
|
}
|
|
|
|
.feedback-fab:hover { transform: scale(1.08); }
|
|
|
|
.feedback-modal { max-width: 420px; }
|
|
|
|
.feedback-body {
|
|
padding: 8px 4px 4px;
|
|
text-align: center;
|
|
}
|
|
|
|
.feedback-body h2 { margin: 12px 0 8px; font-size: 1.4rem; }
|
|
.feedback-body > p { color: var(--text-secondary); font-size: 0.9rem; margin-bottom: 20px; }
|
|
|
|
.feedback-types {
|
|
display: flex;
|
|
gap: 8px;
|
|
justify-content: center;
|
|
margin-bottom: 14px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.feedback-textarea {
|
|
width: 100%;
|
|
padding: 14px;
|
|
margin-bottom: 14px;
|
|
background: rgba(255,255,255,0.04);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
color: var(--text-primary);
|
|
font-size: 0.9rem;
|
|
resize: vertical;
|
|
font-family: inherit;
|
|
}
|
|
|
|
.feedback-textarea:focus {
|
|
outline: none;
|
|
border-color: rgba(78, 205, 196, 0.5);
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.jetlag-card { grid-template-columns: 1fr; }
|
|
.feedback-fab { bottom: 160px; right: 16px; }
|
|
}
|
|
|
|
/* ===== Insurance ===== */
|
|
.insurance-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
|
|
gap: 18px;
|
|
}
|
|
|
|
.insurance-card {
|
|
padding: 22px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(16px);
|
|
cursor: pointer;
|
|
transition: transform 0.3s, border-color 0.3s;
|
|
}
|
|
|
|
.insurance-card:hover { transform: translateY(-3px); }
|
|
.insurance-card.selected {
|
|
border-color: var(--accent-3);
|
|
box-shadow: 0 0 20px rgba(78, 205, 196, 0.15);
|
|
}
|
|
|
|
.insurance-top {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.insurance-emoji { font-size: 1.8rem; }
|
|
.insurance-price { font-size: 0.85rem; color: var(--accent-2); font-weight: 600; }
|
|
.insurance-card h3 { font-size: 1.05rem; margin-bottom: 6px; }
|
|
.insurance-best { font-size: 0.85rem; color: var(--accent-3); margin-bottom: 10px; }
|
|
|
|
.insurance-cover {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0 0 12px;
|
|
}
|
|
|
|
.insurance-cover li {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
padding: 3px 0;
|
|
}
|
|
|
|
.insurance-note {
|
|
font-size: 0.8rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.45;
|
|
}
|
|
|
|
.insurance-picked {
|
|
display: inline-block;
|
|
margin-top: 10px;
|
|
font-size: 0.75rem;
|
|
color: var(--accent-3);
|
|
font-weight: 600;
|
|
}
|
|
|
|
/* ===== Expense Tracker ===== */
|
|
.expense-card {
|
|
display: grid;
|
|
grid-template-columns: 0.95fr 1.05fr;
|
|
gap: 28px;
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.expense-form { display: flex; flex-direction: column; gap: 14px; }
|
|
.expense-cats { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
|
|
.expense-total {
|
|
text-align: center;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.expense-total small {
|
|
display: block;
|
|
color: var(--text-secondary);
|
|
font-size: 0.8rem;
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.expense-total strong { font-size: 2rem; }
|
|
|
|
.expense-bars { margin-bottom: 16px; }
|
|
|
|
.expense-bar-row {
|
|
display: grid;
|
|
grid-template-columns: 70px 1fr 70px;
|
|
gap: 8px;
|
|
align-items: center;
|
|
margin-bottom: 8px;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.expense-bar {
|
|
height: 6px;
|
|
background: rgba(255,255,255,0.06);
|
|
border-radius: 3px;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.expense-bar i {
|
|
display: block;
|
|
height: 100%;
|
|
background: linear-gradient(90deg, var(--accent-1), var(--accent-3));
|
|
border-radius: 3px;
|
|
}
|
|
|
|
.expense-list {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0 0 12px;
|
|
max-height: 280px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.expense-list li {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 10px 0;
|
|
border-bottom: 1px solid rgba(255,255,255,0.05);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.expense-list li div { flex: 1; min-width: 0; }
|
|
.expense-list li strong { display: block; }
|
|
.expense-list li small { color: var(--text-secondary); font-size: 0.75rem; }
|
|
.expense-amt { color: var(--accent-2); }
|
|
.expense-del {
|
|
background: none;
|
|
border: none;
|
|
color: var(--text-secondary);
|
|
cursor: pointer;
|
|
padding: 4px 8px;
|
|
}
|
|
.expense-empty {
|
|
text-align: center;
|
|
color: var(--text-secondary);
|
|
padding: 20px !important;
|
|
border: none !important;
|
|
justify-content: center;
|
|
}
|
|
|
|
/* ===== SIM Guide ===== */
|
|
.sim-city-title {
|
|
text-align: center;
|
|
font-size: 1.15rem;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.sim-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
|
|
gap: 16px;
|
|
}
|
|
|
|
.sim-card {
|
|
padding: 22px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(16px);
|
|
transition: transform 0.3s;
|
|
}
|
|
|
|
.sim-card:hover { transform: translateY(-3px); }
|
|
.sim-emoji { font-size: 1.8rem; display: block; margin-bottom: 8px; }
|
|
.sim-card h4 { font-size: 1.05rem; margin-bottom: 10px; }
|
|
|
|
.sim-meta {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
font-size: 0.85rem;
|
|
margin-bottom: 10px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.sim-price { color: var(--accent-2); font-weight: 600; }
|
|
.sim-card p { font-size: 0.85rem; color: var(--text-secondary); line-height: 1.45; }
|
|
|
|
/* ===== About ===== */
|
|
.about-list {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.about-list li {
|
|
padding: 8px 0;
|
|
color: var(--text-secondary);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.about-actions {
|
|
display: flex;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
margin-top: 32px;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.expense-card { grid-template-columns: 1fr; }
|
|
.expense-bar-row { grid-template-columns: 60px 1fr 60px; }
|
|
}
|
|
|
|
/* ===== Tax Day Counter ===== */
|
|
.tax-card {
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.tax-meter {
|
|
display: flex;
|
|
gap: 28px;
|
|
align-items: center;
|
|
margin-bottom: 24px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.tax-ring {
|
|
width: 140px;
|
|
height: 140px;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.tax-risk-warn { background: conic-gradient(#FFE66D var(--pct, 50%), rgba(255,255,255,0.08) 0) !important; }
|
|
.tax-risk-high { background: conic-gradient(#FF6B6B var(--pct, 50%), rgba(255,255,255,0.08) 0) !important; }
|
|
|
|
.tax-ring-inner {
|
|
width: 110px;
|
|
height: 110px;
|
|
border-radius: 50%;
|
|
background: var(--bg-card);
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.tax-ring-inner strong { font-size: 1.8rem; }
|
|
.tax-ring-inner small { color: var(--text-secondary); font-size: 0.75rem; }
|
|
|
|
.tax-stats {
|
|
flex: 1;
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 12px;
|
|
min-width: 240px;
|
|
}
|
|
|
|
.tax-stats > div small {
|
|
display: block;
|
|
font-size: 0.75rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 2px;
|
|
}
|
|
|
|
.tax-stats > div strong { font-size: 1.2rem; }
|
|
.tax-danger { color: #FF6B6B; }
|
|
.tax-hint {
|
|
grid-column: 1 / -1;
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
margin: 4px 0 0;
|
|
}
|
|
|
|
.tax-form {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 14px;
|
|
margin-bottom: 20px;
|
|
padding-top: 16px;
|
|
border-top: 1px solid rgba(255,255,255,0.06);
|
|
}
|
|
|
|
.tax-log {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
max-height: 220px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.tax-log li {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 8px 0;
|
|
border-bottom: 1px solid rgba(255,255,255,0.05);
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.tax-log li button {
|
|
margin-left: auto;
|
|
background: none;
|
|
border: none;
|
|
color: var(--text-secondary);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.tax-empty {
|
|
justify-content: center;
|
|
color: var(--text-secondary);
|
|
border: none !important;
|
|
}
|
|
|
|
/* ===== Arrival Checklist ===== */
|
|
.arrival-card {
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.arrival-progress {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 20px;
|
|
margin-bottom: 24px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.arrival-progress h3 { font-size: 1.15rem; margin-bottom: 4px; }
|
|
.arrival-progress p { color: var(--text-secondary); font-size: 0.9rem; }
|
|
|
|
.arrival-days {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
|
|
gap: 18px;
|
|
}
|
|
|
|
.arrival-day h4 {
|
|
font-size: 0.95rem;
|
|
color: var(--accent-3);
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.arrival-day ul {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
}
|
|
|
|
/* ===== Cafe Guide ===== */
|
|
.cafe-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
|
|
gap: 16px;
|
|
}
|
|
|
|
.cafe-card {
|
|
padding: 20px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(16px);
|
|
transition: transform 0.3s;
|
|
}
|
|
|
|
.cafe-card:hover { transform: translateY(-3px); }
|
|
|
|
.cafe-top {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
gap: 10px;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.cafe-top h4 { font-size: 1.05rem; }
|
|
.cafe-vibe {
|
|
font-size: 0.75rem;
|
|
padding: 4px 8px;
|
|
background: rgba(255,230,109,0.12);
|
|
color: var(--accent-2);
|
|
border-radius: 12px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.cafe-tags {
|
|
display: flex;
|
|
gap: 10px;
|
|
flex-wrap: wrap;
|
|
font-size: 0.8rem;
|
|
color: var(--accent-3);
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.cafe-card p {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.45;
|
|
}
|
|
|
|
/* ===== Onboarding ===== */
|
|
.onboard-card {
|
|
position: fixed;
|
|
bottom: 24px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
z-index: 9200;
|
|
width: min(380px, calc(100% - 32px));
|
|
padding: 20px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
box-shadow: var(--shadow-card);
|
|
animation: toastIn 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
text-align: center;
|
|
}
|
|
|
|
.onboard-skip {
|
|
position: absolute;
|
|
top: 10px;
|
|
right: 12px;
|
|
background: none;
|
|
border: none;
|
|
color: var(--text-secondary);
|
|
cursor: pointer;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.onboard-emoji { font-size: 2rem; display: block; margin-bottom: 8px; }
|
|
.onboard-step strong { display: block; font-size: 1.15rem; margin-bottom: 6px; }
|
|
.onboard-step p { color: var(--text-secondary); font-size: 0.9rem; margin-bottom: 14px; }
|
|
|
|
.onboard-dots {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
.onboard-dots span {
|
|
width: 6px;
|
|
height: 6px;
|
|
border-radius: 50%;
|
|
background: rgba(255,255,255,0.2);
|
|
}
|
|
|
|
.onboard-dots span.active {
|
|
width: 18px;
|
|
border-radius: 4px;
|
|
background: var(--accent-3);
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.tax-stats { grid-template-columns: 1fr 1fr 1fr; }
|
|
.onboard-card { bottom: 90px; }
|
|
}
|
|
|
|
/* ===== Power Plug ===== */
|
|
.plug-card {
|
|
max-width: 720px;
|
|
margin: 0 auto;
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.plug-hero {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 16px;
|
|
margin-bottom: 20px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.plug-city { font-size: 1.3rem; font-weight: 700; }
|
|
|
|
.plug-types { display: flex; gap: 8px; flex-wrap: wrap; }
|
|
|
|
.plug-type {
|
|
padding: 6px 12px;
|
|
background: rgba(78, 205, 196, 0.12);
|
|
color: var(--accent-3);
|
|
border-radius: 20px;
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.plug-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 14px;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.plug-grid div {
|
|
padding: 14px;
|
|
background: rgba(255,255,255,0.03);
|
|
border-radius: var(--radius-md);
|
|
}
|
|
|
|
.plug-grid small {
|
|
display: block;
|
|
font-size: 0.75rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 4px;
|
|
}
|
|
|
|
.plug-grid strong { font-size: 0.95rem; }
|
|
|
|
.plug-tip {
|
|
font-size: 0.9rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
/* ===== Emergency ===== */
|
|
.emergency-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
|
|
gap: 14px;
|
|
}
|
|
|
|
.emergency-card {
|
|
display: flex;
|
|
gap: 14px;
|
|
padding: 18px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(16px);
|
|
}
|
|
|
|
.emergency-emoji { font-size: 1.8rem; }
|
|
.emergency-card h4 { font-size: 0.9rem; margin-bottom: 4px; color: var(--text-secondary); }
|
|
.emergency-value { font-size: 1.1rem; display: block; margin-bottom: 4px; }
|
|
.emergency-card p { font-size: 0.8rem; color: var(--text-secondary); margin: 0; }
|
|
|
|
.emergency-disclaimer {
|
|
text-align: center;
|
|
font-size: 0.75rem;
|
|
color: var(--text-secondary);
|
|
margin-top: 16px;
|
|
}
|
|
|
|
/* ===== City Notes ===== */
|
|
.notes-card {
|
|
display: grid;
|
|
grid-template-columns: 220px 1fr;
|
|
gap: 20px;
|
|
padding: 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
min-height: 360px;
|
|
}
|
|
|
|
.notes-sidebar {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
border-right: 1px solid rgba(255,255,255,0.06);
|
|
padding-right: 12px;
|
|
}
|
|
|
|
.notes-city {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 10px 12px;
|
|
background: transparent;
|
|
border: 1px solid transparent;
|
|
border-radius: var(--radius-md);
|
|
color: var(--text-primary);
|
|
cursor: pointer;
|
|
font-size: 0.9rem;
|
|
text-align: left;
|
|
}
|
|
|
|
.notes-city:hover,
|
|
.notes-city.active {
|
|
background: rgba(78, 205, 196, 0.1);
|
|
border-color: rgba(78, 205, 196, 0.25);
|
|
}
|
|
|
|
.notes-dot {
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
background: var(--accent-3);
|
|
}
|
|
|
|
.notes-count {
|
|
margin-top: auto;
|
|
font-size: 0.75rem;
|
|
color: var(--text-secondary);
|
|
padding: 8px 4px 0;
|
|
}
|
|
|
|
.notes-editor h3 { font-size: 1.15rem; margin-bottom: 12px; }
|
|
|
|
.notes-textarea {
|
|
width: 100%;
|
|
padding: 14px;
|
|
background: rgba(255,255,255,0.03);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
color: var(--text-primary);
|
|
font-size: 0.9rem;
|
|
font-family: inherit;
|
|
resize: vertical;
|
|
line-height: 1.55;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.notes-textarea:focus {
|
|
outline: none;
|
|
border-color: rgba(78, 205, 196, 0.45);
|
|
}
|
|
|
|
.notes-actions { display: flex; gap: 10px; }
|
|
|
|
/* ===== Focus Timer ===== */
|
|
.focus-card {
|
|
max-width: 420px;
|
|
margin: 0 auto;
|
|
padding: 36px 28px;
|
|
text-align: center;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(20px);
|
|
}
|
|
|
|
.focus-ring {
|
|
width: 180px;
|
|
height: 180px;
|
|
border-radius: 50%;
|
|
margin: 0 auto 24px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.focus-ring-inner {
|
|
width: 148px;
|
|
height: 148px;
|
|
border-radius: 50%;
|
|
background: var(--bg-card);
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.focus-ring-inner strong {
|
|
font-size: 2.4rem;
|
|
font-variant-numeric: tabular-nums;
|
|
letter-spacing: 0.02em;
|
|
}
|
|
|
|
.focus-ring-inner small {
|
|
color: var(--text-secondary);
|
|
font-size: 0.85rem;
|
|
margin-top: 4px;
|
|
}
|
|
|
|
.focus-presets {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 8px;
|
|
margin-bottom: 18px;
|
|
}
|
|
|
|
.focus-actions {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 10px;
|
|
}
|
|
|
|
.focus-done {
|
|
margin-top: 14px;
|
|
color: var(--accent-3);
|
|
font-weight: 600;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.plug-grid { grid-template-columns: 1fr; }
|
|
.notes-card { grid-template-columns: 1fr; }
|
|
.notes-sidebar {
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
border-right: none;
|
|
border-bottom: 1px solid rgba(255,255,255,0.06);
|
|
padding-right: 0;
|
|
padding-bottom: 12px;
|
|
}
|
|
.notes-count { width: 100%; margin-top: 4px; }
|
|
}
|
|
|
|
/* ===== Tools Hub ===== */
|
|
.tools-hub-page {
|
|
padding: calc(var(--nav-height) + 40px) 0 80px;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.tools-hub-page .section-header h1 {
|
|
font-size: clamp(1.8rem, 4vw, 2.4rem);
|
|
margin: 12px 0 8px;
|
|
}
|
|
|
|
.tools-hub-toolbar {
|
|
margin: 28px auto 32px;
|
|
max-width: 900px;
|
|
}
|
|
|
|
.tools-hub-search {
|
|
width: 100%;
|
|
padding: 14px 18px;
|
|
margin-bottom: 14px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
color: var(--text-primary);
|
|
font-size: 0.95rem;
|
|
}
|
|
|
|
.tools-hub-search:focus {
|
|
outline: none;
|
|
border-color: rgba(78, 205, 196, 0.5);
|
|
}
|
|
|
|
.tools-hub-filters {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
justify-content: center;
|
|
}
|
|
|
|
.tools-hub-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
|
|
gap: 16px;
|
|
}
|
|
|
|
.tools-hub-card {
|
|
padding: 20px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(16px);
|
|
transition: transform 0.25s, border-color 0.25s;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.tools-hub-card:hover {
|
|
transform: translateY(-4px);
|
|
border-color: rgba(78, 205, 196, 0.35);
|
|
}
|
|
|
|
.tools-hub-emoji { font-size: 1.8rem; margin-bottom: 8px; }
|
|
.tools-hub-card h3 { font-size: 1.05rem; margin-bottom: 6px; }
|
|
.tools-hub-card p {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.45;
|
|
flex: 1;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.tools-hub-go {
|
|
font-size: 0.85rem;
|
|
color: var(--accent-3);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.section-nav-tools {
|
|
text-decoration: none;
|
|
color: inherit;
|
|
border: 1px dashed rgba(78, 205, 196, 0.35) !important;
|
|
}
|
|
|
|
/* ===== ATM Guide ===== */
|
|
.atm-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
|
|
gap: 16px;
|
|
}
|
|
|
|
.atm-card {
|
|
padding: 22px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
backdrop-filter: blur(16px);
|
|
transition: transform 0.3s;
|
|
}
|
|
|
|
.atm-card:hover { transform: translateY(-3px); }
|
|
.atm-emoji { font-size: 1.8rem; display: block; margin-bottom: 8px; }
|
|
.atm-card h4 { font-size: 1.05rem; margin-bottom: 8px; }
|
|
.atm-card p { font-size: 0.85rem; color: var(--text-secondary); line-height: 1.5; }
|
|
|
|
/* ===== Changelog ===== */
|
|
.changelog-list { margin: 28px 0; }
|
|
|
|
.changelog-item {
|
|
padding: 20px 0;
|
|
border-bottom: 1px solid rgba(255,255,255,0.06);
|
|
}
|
|
|
|
.changelog-meta {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.changelog-meta time {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.changelog-tag {
|
|
font-size: 0.75rem;
|
|
padding: 3px 10px;
|
|
background: rgba(78, 205, 196, 0.12);
|
|
color: var(--accent-3);
|
|
border-radius: 12px;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.changelog-item ul {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.changelog-item li {
|
|
position: relative;
|
|
padding: 6px 0 6px 16px;
|
|
color: var(--text-secondary);
|
|
line-height: 1.5;
|
|
font-size: 0.95rem;
|
|
}
|
|
|
|
.changelog-item li::before {
|
|
content: "\2022";
|
|
position: absolute;
|
|
left: 0;
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
/* ===== Tools Strip ===== */
|
|
.tools-strip {
|
|
padding: 12px 0 28px;
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
.tools-strip-inner {
|
|
padding: 18px 20px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(16px);
|
|
}
|
|
|
|
.tools-strip-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 14px;
|
|
gap: 12px;
|
|
}
|
|
|
|
.tools-strip-head strong { font-size: 0.95rem; }
|
|
.tools-strip-head a {
|
|
font-size: 0.85rem;
|
|
color: var(--accent-3);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.tools-strip-list {
|
|
display: grid;
|
|
grid-template-columns: repeat(8, 1fr);
|
|
gap: 8px;
|
|
}
|
|
|
|
.tools-strip-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 12px 6px;
|
|
background: rgba(255,255,255,0.03);
|
|
border: 1px solid rgba(255,255,255,0.06);
|
|
border-radius: var(--radius-md);
|
|
transition: all 0.2s;
|
|
text-align: center;
|
|
}
|
|
|
|
.tools-strip-item:hover {
|
|
border-color: rgba(78, 205, 196, 0.35);
|
|
background: rgba(78, 205, 196, 0.08);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
.tools-strip-item span { font-size: 1.3rem; }
|
|
.tools-strip-item small {
|
|
font-size: 0.75rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.tools-strip-list { grid-template-columns: repeat(4, 1fr); }
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.tools-strip-list { grid-template-columns: repeat(4, 1fr); }
|
|
}
|
|
|
|
|
|
/* ===== Runway Calculator ===== */
|
|
.runway-card {
|
|
display: grid;
|
|
grid-template-columns: minmax(220px, 280px) 1fr;
|
|
gap: 28px;
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(16px);
|
|
}
|
|
.runway-pulse { animation: runwayPulse 0.45s ease; }
|
|
@keyframes runwayPulse {
|
|
0% { transform: scale(1); }
|
|
50% { transform: scale(1.01); box-shadow: var(--shadow-glow); }
|
|
100% { transform: scale(1); }
|
|
}
|
|
.runway-meter { text-align: center; }
|
|
.runway-ring {
|
|
width: 168px;
|
|
height: 168px;
|
|
border-radius: 50%;
|
|
margin: 0 auto 16px;
|
|
display: grid;
|
|
place-items: center;
|
|
}
|
|
.runway-ring-inner {
|
|
width: 128px;
|
|
height: 128px;
|
|
border-radius: 50%;
|
|
background: var(--bg-secondary);
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.runway-ring-inner strong {
|
|
font-family: var(--font-display);
|
|
font-size: 2.4rem;
|
|
line-height: 1;
|
|
}
|
|
.runway-ring-inner small { color: var(--text-muted); margin-top: 4px; }
|
|
.runway-level span {
|
|
font-weight: 700;
|
|
font-size: 1.05rem;
|
|
}
|
|
.runway-level p {
|
|
color: var(--text-secondary);
|
|
font-size: 0.88rem;
|
|
margin-top: 6px;
|
|
line-height: 1.45;
|
|
}
|
|
.runway-form {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 14px;
|
|
}
|
|
.runway-form > label {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
.runway-form > label > span {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.runway-form input[type=number],
|
|
.meeting-controls select {
|
|
background: rgba(255,255,255,0.04);
|
|
border: 1px solid rgba(255,255,255,0.1);
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-primary);
|
|
padding: 10px 12px;
|
|
font-size: 1rem;
|
|
}
|
|
.runway-dests small {
|
|
display: block;
|
|
color: var(--text-muted);
|
|
margin-bottom: 8px;
|
|
}
|
|
.runway-dest-list {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 8px;
|
|
}
|
|
.runway-dest {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 2px;
|
|
padding: 10px;
|
|
background: rgba(255,255,255,0.03);
|
|
border: 1px solid rgba(255,255,255,0.08);
|
|
border-radius: var(--radius-md);
|
|
cursor: pointer;
|
|
transition: all 0.2s;
|
|
text-align: left;
|
|
color: inherit;
|
|
}
|
|
.runway-dest:hover,
|
|
.runway-dest.active {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
background: rgba(78, 205, 196, 0.08);
|
|
}
|
|
.runway-dest em { font-style: normal; font-weight: 600; font-size: 0.88rem; }
|
|
.runway-dest small { color: var(--text-muted); }
|
|
.runway-summary {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 12px;
|
|
padding: 12px;
|
|
background: rgba(255,255,255,0.03);
|
|
border-radius: var(--radius-md);
|
|
}
|
|
.runway-summary small { color: var(--text-muted); display: block; }
|
|
.runway-summary strong { font-size: 1.1rem; }
|
|
.runway-milestones {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 8px;
|
|
margin-top: 4px;
|
|
}
|
|
.runway-ms {
|
|
text-align: center;
|
|
opacity: 0.35;
|
|
transition: opacity 0.25s;
|
|
}
|
|
.runway-ms.on { opacity: 1; }
|
|
.runway-ms i {
|
|
display: block;
|
|
height: 4px;
|
|
border-radius: 4px;
|
|
background: var(--accent-3);
|
|
margin-bottom: 6px;
|
|
}
|
|
.runway-ms span { font-size: 0.75rem; color: var(--text-secondary); }
|
|
|
|
/* ===== Meeting Window ===== */
|
|
.meeting-card {
|
|
padding: 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(16px);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 20px;
|
|
}
|
|
.meeting-controls {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 14px 18px;
|
|
}
|
|
.meeting-controls label {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
.meeting-controls label > span {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.meeting-range {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 8px;
|
|
align-items: center;
|
|
}
|
|
.meeting-range em {
|
|
grid-column: 1 / -1;
|
|
font-style: normal;
|
|
font-size: 0.9rem;
|
|
color: var(--accent-3);
|
|
font-weight: 600;
|
|
}
|
|
.meeting-range input[type=range] {
|
|
width: 100%;
|
|
accent-color: var(--accent-3);
|
|
}
|
|
.meeting-score {
|
|
padding: 16px 18px;
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid;
|
|
background: rgba(255,255,255,0.03);
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: baseline;
|
|
gap: 10px 14px;
|
|
}
|
|
.meeting-score strong {
|
|
font-family: var(--font-display);
|
|
font-size: 1.8rem;
|
|
}
|
|
.meeting-score > span { font-weight: 700; }
|
|
.meeting-score p {
|
|
flex: 1 1 100%;
|
|
color: var(--text-secondary);
|
|
font-size: 0.92rem;
|
|
margin: 0;
|
|
}
|
|
.meeting-legend {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 14px;
|
|
margin-bottom: 10px;
|
|
font-size: 0.8rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.meeting-legend i {
|
|
display: inline-block;
|
|
width: 10px;
|
|
height: 10px;
|
|
border-radius: 2px;
|
|
margin-right: 6px;
|
|
vertical-align: middle;
|
|
}
|
|
.meeting-legend .m-home { background: rgba(167, 139, 250, 0.7); }
|
|
.meeting-legend .m-peer { background: rgba(255, 230, 109, 0.7); }
|
|
.meeting-legend .m-both { background: #4ECDC4; }
|
|
.meeting-bars {
|
|
display: grid;
|
|
grid-template-columns: repeat(24, 1fr);
|
|
gap: 3px;
|
|
min-height: 56px;
|
|
}
|
|
.meeting-cell {
|
|
border-radius: 4px;
|
|
background: rgba(255,255,255,0.05);
|
|
position: relative;
|
|
transition: transform 0.15s, background 0.15s;
|
|
min-height: 48px;
|
|
}
|
|
.meeting-cell.home { background: rgba(167, 139, 250, 0.28); }
|
|
.meeting-cell.peer { background: rgba(255, 230, 109, 0.22); }
|
|
.meeting-cell.home.peer { background: rgba(78, 205, 196, 0.25); }
|
|
.meeting-cell.overlap {
|
|
background: linear-gradient(180deg, #4ECDC4, #3db8b0);
|
|
box-shadow: 0 0 12px rgba(78, 205, 196, 0.35);
|
|
}
|
|
.meeting-cell:hover { transform: translateY(-2px); }
|
|
.meeting-cell span {
|
|
position: absolute;
|
|
bottom: 4px;
|
|
left: 0;
|
|
right: 0;
|
|
text-align: center;
|
|
font-size: 0.65rem;
|
|
color: var(--text-muted);
|
|
}
|
|
.meeting-axis {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
margin-top: 8px;
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
/* Tools hub featured */
|
|
.tools-featured {
|
|
margin: 8px 0 28px;
|
|
padding: 18px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
}
|
|
.tools-featured-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 14px;
|
|
gap: 12px;
|
|
}
|
|
.tools-featured-head span {
|
|
font-size: 0.85rem;
|
|
color: var(--accent-3);
|
|
}
|
|
.tools-featured-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 10px;
|
|
}
|
|
.tools-featured-card {
|
|
display: flex;
|
|
gap: 12px;
|
|
align-items: flex-start;
|
|
padding: 14px;
|
|
border-radius: var(--radius-md);
|
|
background: rgba(255,255,255,0.03);
|
|
border: 1px solid rgba(255,255,255,0.06);
|
|
transition: all 0.2s;
|
|
}
|
|
.tools-featured-card:hover {
|
|
border-color: rgba(78, 205, 196, 0.35);
|
|
background: rgba(78, 205, 196, 0.08);
|
|
transform: translateY(-2px);
|
|
}
|
|
.tools-featured-card > span { font-size: 1.5rem; line-height: 1; }
|
|
.tools-featured-card h3 {
|
|
font-size: 0.95rem;
|
|
margin-bottom: 4px;
|
|
}
|
|
.tools-featured-card p {
|
|
font-size: 0.8rem;
|
|
color: var(--text-secondary);
|
|
margin: 0;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.runway-card { grid-template-columns: 1fr; }
|
|
.runway-dest-list { grid-template-columns: repeat(2, 1fr); }
|
|
.meeting-controls { grid-template-columns: 1fr; }
|
|
.tools-featured-grid { grid-template-columns: repeat(2, 1fr); }
|
|
}
|
|
@media (max-width: 560px) {
|
|
.tools-featured-grid { grid-template-columns: 1fr; }
|
|
.meeting-bars { gap: 2px; }
|
|
.meeting-cell { min-height: 36px; }
|
|
}
|
|
|
|
|
|
/* ===== Daylight Work Hours ===== */
|
|
.daylight-card {
|
|
padding: 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(16px);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 20px;
|
|
}
|
|
.daylight-controls {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
}
|
|
.daylight-controls label {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
max-width: 320px;
|
|
}
|
|
.daylight-controls label > span,
|
|
.bag-extra > span {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.daylight-controls select {
|
|
background: rgba(255,255,255,0.04);
|
|
border: 1px solid rgba(255,255,255,0.1);
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-primary);
|
|
padding: 10px 12px;
|
|
}
|
|
.daylight-months {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
}
|
|
.daylight-month {
|
|
padding: 6px 10px;
|
|
border-radius: 999px;
|
|
border: 1px solid rgba(255,255,255,0.08);
|
|
background: rgba(255,255,255,0.03);
|
|
color: var(--text-secondary);
|
|
cursor: pointer;
|
|
font-size: 0.8rem;
|
|
transition: all 0.2s;
|
|
}
|
|
.daylight-month:hover,
|
|
.daylight-month.active {
|
|
color: var(--text-primary);
|
|
border-color: rgba(255, 230, 109, 0.45);
|
|
background: rgba(255, 230, 109, 0.12);
|
|
}
|
|
.daylight-sky {
|
|
position: relative;
|
|
height: 72px;
|
|
border-radius: var(--radius-md);
|
|
background: linear-gradient(90deg, #0b1224, #1a2744 40%, #2a1f3d 70%, #0b1224);
|
|
overflow: hidden;
|
|
border: 1px solid rgba(255,255,255,0.06);
|
|
}
|
|
.daylight-band {
|
|
position: absolute;
|
|
top: 0;
|
|
bottom: 0;
|
|
background: linear-gradient(180deg, rgba(255,230,109,0.45), rgba(255,107,107,0.15));
|
|
}
|
|
.daylight-deep {
|
|
position: absolute;
|
|
top: 18px;
|
|
bottom: 18px;
|
|
background: rgba(78, 205, 196, 0.55);
|
|
border-radius: 6px;
|
|
box-shadow: 0 0 16px rgba(78, 205, 196, 0.35);
|
|
}
|
|
.daylight-markers {
|
|
position: absolute;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
}
|
|
.daylight-markers span {
|
|
position: absolute;
|
|
bottom: 6px;
|
|
transform: translateX(-50%);
|
|
font-size: 0.65rem;
|
|
color: rgba(241,245,249,0.7);
|
|
}
|
|
.daylight-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 10px;
|
|
margin-top: 12px;
|
|
}
|
|
.daylight-stats small {
|
|
display: block;
|
|
color: var(--text-muted);
|
|
font-size: 0.75rem;
|
|
}
|
|
.daylight-stats strong {
|
|
font-family: var(--font-display);
|
|
font-size: 1.25rem;
|
|
}
|
|
.daylight-tips {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 12px;
|
|
}
|
|
.daylight-tip {
|
|
display: flex;
|
|
gap: 12px;
|
|
padding: 14px;
|
|
border-radius: var(--radius-md);
|
|
background: rgba(255,255,255,0.03);
|
|
border: 1px solid rgba(255,255,255,0.06);
|
|
}
|
|
.daylight-tip > span { font-size: 1.4rem; }
|
|
.daylight-tip strong { display: block; margin-bottom: 4px; font-size: 0.95rem; }
|
|
.daylight-tip p { margin: 0; color: var(--text-secondary); font-size: 0.85rem; line-height: 1.45; }
|
|
|
|
/* ===== Bag Weight ===== */
|
|
.bag-card {
|
|
padding: 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(16px);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 18px;
|
|
}
|
|
.bag-gauge {
|
|
height: 10px;
|
|
border-radius: 999px;
|
|
background: rgba(255,255,255,0.08);
|
|
overflow: hidden;
|
|
}
|
|
.bag-gauge-fill {
|
|
height: 100%;
|
|
border-radius: 999px;
|
|
transition: width 0.35s ease, background 0.25s;
|
|
}
|
|
.bag-meter-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: baseline;
|
|
gap: 12px;
|
|
margin-top: 10px;
|
|
}
|
|
.bag-meter-row strong {
|
|
font-family: var(--font-display);
|
|
font-size: 1.8rem;
|
|
}
|
|
.bag-meter-row small { color: var(--text-muted); }
|
|
.bag-status { font-weight: 700; }
|
|
.bag-tip { color: var(--text-secondary); font-size: 0.9rem; margin: 6px 0 0; }
|
|
.bag-limits {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: 8px;
|
|
}
|
|
.bag-limit {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 10px 6px;
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid rgba(255,255,255,0.08);
|
|
background: rgba(255,255,255,0.03);
|
|
cursor: pointer;
|
|
color: inherit;
|
|
transition: all 0.2s;
|
|
}
|
|
.bag-limit:hover,
|
|
.bag-limit.active {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
background: rgba(78, 205, 196, 0.1);
|
|
}
|
|
.bag-limit em { font-style: normal; font-size: 0.8rem; font-weight: 600; }
|
|
.bag-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 8px;
|
|
}
|
|
.bag-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 12px;
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid rgba(255,255,255,0.08);
|
|
background: rgba(255,255,255,0.03);
|
|
cursor: pointer;
|
|
color: inherit;
|
|
text-align: left;
|
|
transition: all 0.2s;
|
|
}
|
|
.bag-item:hover { transform: translateY(-1px); }
|
|
.bag-item.on {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
background: rgba(78, 205, 196, 0.1);
|
|
}
|
|
.bag-item > span { font-size: 1.25rem; }
|
|
.bag-item strong { display: block; font-size: 0.88rem; }
|
|
.bag-item small { color: var(--text-muted); }
|
|
.bag-item i {
|
|
margin-left: auto;
|
|
font-style: normal;
|
|
width: 22px;
|
|
height: 22px;
|
|
border-radius: 50%;
|
|
display: grid;
|
|
place-items: center;
|
|
background: rgba(255,255,255,0.08);
|
|
font-size: 0.75rem;
|
|
}
|
|
.bag-item.on i { background: var(--accent-3); color: #0a0e17; font-weight: 700; }
|
|
.bag-extra {
|
|
display: grid;
|
|
grid-template-columns: auto 1fr auto;
|
|
gap: 12px;
|
|
align-items: center;
|
|
}
|
|
.bag-extra input[type=range] { width: 100%; accent-color: var(--accent-3); }
|
|
.bag-extra em { font-style: normal; font-weight: 600; color: var(--accent-3); min-width: 3.5rem; text-align: right; }
|
|
|
|
@media (max-width: 900px) {
|
|
.daylight-tips { grid-template-columns: 1fr; }
|
|
.daylight-stats { grid-template-columns: repeat(2, 1fr); }
|
|
.bag-grid { grid-template-columns: repeat(2, 1fr); }
|
|
.bag-limits { grid-template-columns: repeat(2, 1fr); }
|
|
}
|
|
@media (max-width: 560px) {
|
|
.bag-grid { grid-template-columns: 1fr; }
|
|
.bag-extra { grid-template-columns: 1fr; }
|
|
}
|
|
|
|
|
|
/* ===== Visa Stay Countdown ===== */
|
|
.visa-stay-card {
|
|
display: grid;
|
|
grid-template-columns: minmax(220px, 280px) 1fr;
|
|
gap: 28px;
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(16px);
|
|
}
|
|
.visa-stay-meter { text-align: center; }
|
|
.visa-stay-ring {
|
|
width: 168px;
|
|
height: 168px;
|
|
border-radius: 50%;
|
|
margin: 0 auto 16px;
|
|
display: grid;
|
|
place-items: center;
|
|
}
|
|
.visa-stay-ring-inner {
|
|
width: 128px;
|
|
height: 128px;
|
|
border-radius: 50%;
|
|
background: var(--bg-secondary);
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
.visa-stay-ring-inner strong {
|
|
font-family: var(--font-display);
|
|
font-size: 2.6rem;
|
|
line-height: 1;
|
|
}
|
|
.visa-stay-ring-inner small { color: var(--text-muted); margin-top: 4px; }
|
|
.visa-stay-level span { font-weight: 700; font-size: 1.05rem; }
|
|
.visa-stay-level p {
|
|
color: var(--text-secondary);
|
|
font-size: 0.88rem;
|
|
margin-top: 6px;
|
|
line-height: 1.45;
|
|
}
|
|
.visa-stay-form {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 14px;
|
|
}
|
|
.visa-stay-form > label,
|
|
.workspot-controls > label {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
.visa-stay-form > label > span,
|
|
.workspot-controls > label > span {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.visa-stay-form input,
|
|
.visa-stay-form select,
|
|
.workspot-controls select {
|
|
background: rgba(255,255,255,0.04);
|
|
border: 1px solid rgba(255,255,255,0.1);
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-primary);
|
|
padding: 10px 12px;
|
|
font-size: 1rem;
|
|
}
|
|
.visa-stay-hint {
|
|
margin: 0;
|
|
font-size: 0.85rem;
|
|
color: var(--accent-3);
|
|
}
|
|
.visa-stay-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 10px;
|
|
padding: 12px;
|
|
background: rgba(255,255,255,0.03);
|
|
border-radius: var(--radius-md);
|
|
}
|
|
.visa-stay-stats small { display: block; color: var(--text-muted); }
|
|
.visa-stay-stats strong { font-size: 1.05rem; }
|
|
|
|
/* ===== Work Spot Cost ===== */
|
|
.workspot-card {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1.1fr;
|
|
gap: 22px;
|
|
padding: 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(16px);
|
|
}
|
|
.workspot-controls {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 14px;
|
|
}
|
|
.workspot-controls input[type=range],
|
|
.visa-stay-form input[type=range] {
|
|
width: 100%;
|
|
accent-color: var(--accent-3);
|
|
}
|
|
.workspot-modes {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 8px;
|
|
}
|
|
.workspot-mode {
|
|
padding: 10px 8px;
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid rgba(255,255,255,0.08);
|
|
background: rgba(255,255,255,0.03);
|
|
color: inherit;
|
|
cursor: pointer;
|
|
font-weight: 600;
|
|
font-size: 0.85rem;
|
|
transition: all 0.2s;
|
|
}
|
|
.workspot-mode:hover,
|
|
.workspot-mode.active {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
background: rgba(78, 205, 196, 0.1);
|
|
}
|
|
.workspot-result {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 14px;
|
|
}
|
|
.workspot-hero {
|
|
padding: 18px;
|
|
border-radius: var(--radius-md);
|
|
background: linear-gradient(135deg, rgba(78,205,196,0.12), rgba(255,107,107,0.08));
|
|
border: 1px solid rgba(255,255,255,0.08);
|
|
}
|
|
.workspot-hero small { color: var(--text-muted); display: block; }
|
|
.workspot-hero strong {
|
|
font-family: var(--font-display);
|
|
font-size: 2.2rem;
|
|
display: block;
|
|
margin: 4px 0 6px;
|
|
}
|
|
.workspot-hero > span { font-weight: 600; font-size: 0.92rem; }
|
|
.workspot-compare {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 8px;
|
|
}
|
|
.workspot-compare > div {
|
|
padding: 12px;
|
|
border-radius: var(--radius-md);
|
|
background: rgba(255,255,255,0.03);
|
|
border: 1px solid rgba(255,255,255,0.06);
|
|
transition: all 0.2s;
|
|
}
|
|
.workspot-compare > div.on {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
background: rgba(78, 205, 196, 0.1);
|
|
}
|
|
.workspot-compare small { display: block; color: var(--text-muted); font-size: 0.75rem; }
|
|
.workspot-compare strong { display: block; margin: 4px 0; font-size: 1.05rem; }
|
|
.workspot-compare em {
|
|
font-style: normal;
|
|
font-size: 0.75rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.35;
|
|
}
|
|
.workspot-tip {
|
|
margin: 0;
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
line-height: 1.45;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.visa-stay-card,
|
|
.workspot-card { grid-template-columns: 1fr; }
|
|
.workspot-compare { grid-template-columns: 1fr; }
|
|
.visa-stay-stats { grid-template-columns: 1fr; }
|
|
}
|
|
|
|
|
|
/* ===== First Month Cost ===== */
|
|
.firstmonth-card {
|
|
display: grid;
|
|
grid-template-columns: 0.9fr 1.2fr;
|
|
gap: 22px;
|
|
padding: 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(16px);
|
|
}
|
|
.firstmonth-controls {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 14px;
|
|
}
|
|
.firstmonth-controls > label {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
.firstmonth-controls > label > span {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.firstmonth-controls select {
|
|
background: rgba(255,255,255,0.04);
|
|
border: 1px solid rgba(255,255,255,0.1);
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-primary);
|
|
padding: 10px 12px;
|
|
}
|
|
.firstmonth-housing {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 8px;
|
|
}
|
|
.firstmonth-chip {
|
|
padding: 10px 8px;
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid rgba(255,255,255,0.08);
|
|
background: rgba(255,255,255,0.03);
|
|
color: inherit;
|
|
cursor: pointer;
|
|
font-weight: 600;
|
|
font-size: 0.85rem;
|
|
transition: all 0.2s;
|
|
}
|
|
.firstmonth-chip:hover,
|
|
.firstmonth-chip.active {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
background: rgba(78, 205, 196, 0.1);
|
|
}
|
|
.firstmonth-check {
|
|
flex-direction: row !important;
|
|
align-items: center;
|
|
gap: 10px !important;
|
|
font-size: 0.9rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.firstmonth-total {
|
|
padding: 18px;
|
|
border-radius: var(--radius-md);
|
|
background: linear-gradient(135deg, rgba(255,107,107,0.12), rgba(78,205,196,0.1));
|
|
border: 1px solid rgba(255,255,255,0.08);
|
|
margin-bottom: 14px;
|
|
}
|
|
.firstmonth-total small { color: var(--text-muted); display: block; }
|
|
.firstmonth-total strong {
|
|
font-family: var(--font-display);
|
|
font-size: 2.2rem;
|
|
display: block;
|
|
margin: 4px 0 6px;
|
|
}
|
|
.firstmonth-total span { font-size: 0.85rem; color: var(--text-secondary); }
|
|
.firstmonth-bars { display: flex; flex-direction: column; gap: 10px; }
|
|
.firstmonth-bar-row {
|
|
display: grid;
|
|
grid-template-columns: 110px 1fr 72px;
|
|
gap: 10px;
|
|
align-items: center;
|
|
font-size: 0.88rem;
|
|
}
|
|
.firstmonth-bar-track {
|
|
height: 8px;
|
|
border-radius: 999px;
|
|
background: rgba(255,255,255,0.08);
|
|
overflow: hidden;
|
|
}
|
|
.firstmonth-bar-track i {
|
|
display: block;
|
|
height: 100%;
|
|
border-radius: 999px;
|
|
background: linear-gradient(90deg, #FF6B6B, #4ECDC4);
|
|
}
|
|
.firstmonth-bar-row em {
|
|
font-style: normal;
|
|
text-align: right;
|
|
font-weight: 600;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
/* ===== Data Budget ===== */
|
|
.data-budget-card {
|
|
padding: 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(16px);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 18px;
|
|
}
|
|
.data-budget-gauge {
|
|
height: 10px;
|
|
border-radius: 999px;
|
|
background: rgba(255,255,255,0.08);
|
|
overflow: hidden;
|
|
}
|
|
.data-budget-fill {
|
|
height: 100%;
|
|
border-radius: 999px;
|
|
background: linear-gradient(90deg, #4ECDC4, #A78BFA);
|
|
transition: width 0.3s ease;
|
|
}
|
|
.data-budget-hero {
|
|
display: flex;
|
|
align-items: baseline;
|
|
gap: 8px;
|
|
margin-top: 10px;
|
|
}
|
|
.data-budget-hero strong {
|
|
font-family: var(--font-display);
|
|
font-size: 2.2rem;
|
|
}
|
|
.data-budget-hero span { color: var(--text-muted); }
|
|
.data-budget-plan {
|
|
margin: 6px 0 0;
|
|
color: var(--text-secondary);
|
|
font-size: 0.92rem;
|
|
}
|
|
.data-budget-plan b { color: var(--accent-3); }
|
|
.data-budget-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 8px;
|
|
}
|
|
.data-budget-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 10px;
|
|
padding: 12px;
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid rgba(255,255,255,0.08);
|
|
background: rgba(255,255,255,0.03);
|
|
cursor: pointer;
|
|
color: inherit;
|
|
text-align: left;
|
|
transition: all 0.2s;
|
|
}
|
|
.data-budget-item:hover { transform: translateY(-1px); }
|
|
.data-budget-item.on {
|
|
border-color: rgba(167, 139, 250, 0.45);
|
|
background: rgba(167, 139, 250, 0.12);
|
|
}
|
|
.data-budget-item > span { font-size: 1.25rem; }
|
|
.data-budget-item strong { display: block; font-size: 0.88rem; }
|
|
.data-budget-item small { color: var(--text-muted); }
|
|
.data-budget-item i {
|
|
margin-left: auto;
|
|
font-style: normal;
|
|
width: 22px;
|
|
height: 22px;
|
|
border-radius: 50%;
|
|
display: grid;
|
|
place-items: center;
|
|
background: rgba(255,255,255,0.08);
|
|
font-size: 0.75rem;
|
|
}
|
|
.data-budget-item.on i { background: #A78BFA; color: #0a0e17; font-weight: 700; }
|
|
.data-budget-sliders {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 14px;
|
|
}
|
|
.data-budget-sliders label {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.data-budget-sliders input[type=range] {
|
|
width: 100%;
|
|
accent-color: #A78BFA;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.firstmonth-card { grid-template-columns: 1fr; }
|
|
.data-budget-grid { grid-template-columns: repeat(2, 1fr); }
|
|
.data-budget-sliders { grid-template-columns: 1fr; }
|
|
.firstmonth-bar-row { grid-template-columns: 1fr; gap: 4px; }
|
|
.firstmonth-bar-row em { text-align: left; }
|
|
}
|
|
@media (max-width: 560px) {
|
|
.data-budget-grid { grid-template-columns: 1fr; }
|
|
}
|
|
|
|
|
|
/* ===== Shared kit cards (batch tools) ===== */
|
|
.kit-card {
|
|
padding: 22px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(16px);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 14px;
|
|
}
|
|
.kit-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: end; }
|
|
.kit-field { display: flex; flex-direction: column; gap: 6px; }
|
|
.kit-field > span { font-size: 0.85rem; color: var(--text-secondary); }
|
|
.kit-field input, .kit-field select {
|
|
background: rgba(255,255,255,0.04);
|
|
border: 1px solid rgba(255,255,255,0.1);
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-primary);
|
|
padding: 10px 12px;
|
|
}
|
|
.kit-field input[type=range] { accent-color: var(--accent-3); padding: 0; border: 0; background: transparent; }
|
|
.kit-stat { text-align: right; }
|
|
.kit-stat strong { font-family: var(--font-display); font-size: 1.8rem; display: block; }
|
|
.kit-stat small { color: var(--text-muted); }
|
|
.kit-bar { height: 8px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
|
|
.kit-bar i { display: block; height: 100%; background: linear-gradient(90deg,#4ECDC4,#A78BFA); border-radius: 999px; }
|
|
.kit-actions { display: flex; flex-wrap: wrap; gap: 8px; }
|
|
.kit-grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
|
|
.kit-grid-3 > div, .kit-list-item {
|
|
padding: 12px;
|
|
border-radius: var(--radius-md);
|
|
background: rgba(255,255,255,0.03);
|
|
border: 1px solid rgba(255,255,255,0.06);
|
|
}
|
|
.kit-grid-3 small { display: block; color: var(--text-muted); font-size: 0.75rem; }
|
|
.kit-grid-3 strong { font-size: 1rem; }
|
|
.kit-note { margin: 0; color: var(--text-secondary); font-size: 0.9rem; line-height: 1.45; }
|
|
.kit-note b { color: var(--accent-3); }
|
|
.kit-chips { display: flex; flex-wrap: wrap; gap: 8px; }
|
|
.kit-chips.wrap { gap: 8px; }
|
|
.kit-chip {
|
|
padding: 8px 12px;
|
|
border-radius: 999px;
|
|
border: 1px solid rgba(255,255,255,0.08);
|
|
background: rgba(255,255,255,0.03);
|
|
color: inherit;
|
|
cursor: pointer;
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
}
|
|
.kit-chip:hover, .kit-chip.active {
|
|
border-color: rgba(78,205,196,0.4);
|
|
background: rgba(78,205,196,0.1);
|
|
}
|
|
.kit-hero { display: flex; gap: 14px; align-items: flex-start; padding: 14px; border-radius: var(--radius-md); background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.06); }
|
|
.kit-hero > span { font-size: 2rem; line-height: 1; }
|
|
.kit-hero small { color: var(--text-muted); display: block; }
|
|
.kit-hero strong { display: block; font-size: 1.25rem; margin: 4px 0; }
|
|
.kit-hero p { margin: 0; color: var(--text-secondary); font-size: 0.88rem; }
|
|
.kit-list { display: flex; flex-direction: column; gap: 8px; }
|
|
.kit-list-item { display: flex; gap: 12px; align-items: flex-start; text-align: left; }
|
|
.kit-list-item > span { font-size: 1.25rem; }
|
|
.kit-list-item strong { display: block; font-size: 0.92rem; }
|
|
.kit-list-item small { color: var(--text-secondary); font-size: 0.8rem; }
|
|
.kit-list-item.btnish { width: 100%; cursor: pointer; color: inherit; transition: all 0.2s; }
|
|
.kit-list-item.btnish.on { border-color: rgba(78,205,196,0.4); background: rgba(78,205,196,0.1); }
|
|
.kit-list-item i { margin-left: auto; font-style: normal; opacity: 0.7; }
|
|
|
|
/* Weekend */
|
|
.weekend-card, .deposit-card {
|
|
padding: 22px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
backdrop-filter: blur(16px);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
}
|
|
.weekend-controls { display: flex; flex-direction: column; gap: 12px; }
|
|
.weekend-controls label, .deposit-fields label { display: flex; flex-direction: column; gap: 6px; }
|
|
.weekend-controls span, .deposit-fields span { font-size: 0.85rem; color: var(--text-secondary); }
|
|
.weekend-controls select, .deposit-fields input {
|
|
background: rgba(255,255,255,0.04);
|
|
border: 1px solid rgba(255,255,255,0.1);
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-primary);
|
|
padding: 10px 12px;
|
|
}
|
|
.weekend-energy { display: flex; flex-wrap: wrap; gap: 8px; }
|
|
.weekend-chip {
|
|
padding: 8px 12px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.08);
|
|
background: rgba(255,255,255,0.03); color: inherit; cursor: pointer; font-weight: 600; font-size: 0.85rem;
|
|
}
|
|
.weekend-chip.active, .weekend-chip:hover { border-color: rgba(255,230,109,0.45); background: rgba(255,230,109,0.12); }
|
|
.weekend-hero { display: flex; gap: 16px; padding: 18px; border-radius: var(--radius-md); background: linear-gradient(135deg, rgba(255,107,107,0.12), rgba(78,205,196,0.1)); }
|
|
.weekend-emoji { font-size: 2.6rem; }
|
|
.weekend-hero small { color: var(--text-muted); }
|
|
.weekend-hero h3 { margin: 4px 0 8px; font-size: 1.35rem; }
|
|
.weekend-hero p { margin: 0 0 6px; color: var(--text-secondary); }
|
|
.weekend-hero em { font-style: normal; color: var(--accent-3); font-weight: 600; }
|
|
.weekend-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
|
|
.weekend-mini {
|
|
padding: 8px 10px; border-radius: var(--radius-md); border: 1px solid rgba(255,255,255,0.08);
|
|
background: rgba(255,255,255,0.03); color: inherit; cursor: pointer; font-size: 0.8rem;
|
|
}
|
|
.weekend-mini.on { border-color: rgba(78,205,196,0.4); background: rgba(78,205,196,0.1); }
|
|
|
|
/* Deposit */
|
|
.deposit-top { display: grid; grid-template-columns: 1.2fr 1fr; gap: 14px; }
|
|
.deposit-gauge { height: 8px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; margin-bottom: 8px; }
|
|
.deposit-gauge i { display: block; height: 100%; border-radius: 999px; }
|
|
.deposit-meta strong { font-size: 1.6rem; margin-right: 8px; }
|
|
.deposit-meta span { color: var(--text-secondary); font-size: 0.9rem; }
|
|
.deposit-fields { display: grid; gap: 10px; }
|
|
.deposit-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
|
|
.deposit-item {
|
|
display: flex; gap: 10px; align-items: flex-start; text-align: left; padding: 12px;
|
|
border-radius: var(--radius-md); border: 1px solid rgba(255,255,255,0.08);
|
|
background: rgba(255,255,255,0.03); color: inherit; cursor: pointer;
|
|
}
|
|
.deposit-item.on { border-color: rgba(78,205,196,0.4); background: rgba(78,205,196,0.1); }
|
|
.deposit-item strong { display: block; font-size: 0.88rem; }
|
|
.deposit-item small { color: var(--text-secondary); font-size: 0.75rem; }
|
|
.deposit-item i { margin-left: auto; font-style: normal; }
|
|
.deposit-actions { display: flex; gap: 8px; flex-wrap: wrap; }
|
|
|
|
@media (max-width: 900px) {
|
|
.kit-row, .deposit-top, .deposit-grid, .kit-grid-3 { grid-template-columns: 1fr; }
|
|
.kit-stat { text-align: left; }
|
|
}
|
|
|
|
/* ===== Move Plan Hub (/plan) ===== */
|
|
.plan-page {
|
|
padding: 100px 0 80px;
|
|
min-height: 70vh;
|
|
}
|
|
.plan-loading {
|
|
color: var(--text-secondary);
|
|
padding: 48px 0;
|
|
}
|
|
.plan-hero {
|
|
margin-bottom: 28px;
|
|
}
|
|
.plan-hero p {
|
|
max-width: 640px;
|
|
color: var(--text-secondary);
|
|
margin: 8px 0 20px;
|
|
line-height: 1.6;
|
|
}
|
|
.plan-title-input {
|
|
display: block;
|
|
width: 100%;
|
|
max-width: 720px;
|
|
background: transparent;
|
|
border: none;
|
|
border-bottom: 1px solid transparent;
|
|
color: var(--text-primary);
|
|
font-size: clamp(1.8rem, 4vw, 2.6rem);
|
|
font-weight: 700;
|
|
letter-spacing: -0.02em;
|
|
padding: 4px 0;
|
|
margin: 8px 0 0;
|
|
}
|
|
.plan-title-input:focus {
|
|
outline: none;
|
|
border-bottom-color: var(--accent-2);
|
|
}
|
|
.plan-meta-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 16px;
|
|
}
|
|
.plan-meta-field {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
font-size: 0.8rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.plan-meta-field input {
|
|
min-width: 180px;
|
|
padding: 10px 12px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-card);
|
|
color: var(--text-primary);
|
|
}
|
|
.plan-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(5, 1fr);
|
|
gap: 12px;
|
|
margin-bottom: 20px;
|
|
}
|
|
.plan-stat {
|
|
padding: 16px 18px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
.plan-stat span {
|
|
font-size: 0.75rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.plan-stat strong {
|
|
font-size: 1.25rem;
|
|
}
|
|
.plan-warn-text { color: var(--accent-1) !important; }
|
|
.plan-alert {
|
|
margin-bottom: 20px;
|
|
padding: 12px 16px;
|
|
border-radius: var(--radius-md);
|
|
border: 1px solid color-mix(in srgb, var(--accent-1) 40%, transparent);
|
|
background: color-mix(in srgb, var(--accent-1) 12%, transparent);
|
|
color: var(--text-primary);
|
|
font-size: 0.9rem;
|
|
line-height: 1.5;
|
|
}
|
|
.plan-layout {
|
|
display: grid;
|
|
grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.9fr);
|
|
gap: 24px;
|
|
align-items: start;
|
|
}
|
|
.plan-panel {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 22px 24px;
|
|
margin-bottom: 20px;
|
|
backdrop-filter: blur(16px);
|
|
}
|
|
.plan-panel h2 {
|
|
font-size: 1.1rem;
|
|
margin: 0;
|
|
}
|
|
.plan-panel-head {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
margin-bottom: 16px;
|
|
}
|
|
.plan-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
}
|
|
.plan-empty {
|
|
text-align: center;
|
|
padding: 40px 16px;
|
|
color: var(--text-secondary);
|
|
}
|
|
.plan-empty-icon { font-size: 2.8rem; display: block; margin-bottom: 8px; }
|
|
.plan-empty .btn { margin-top: 12px; }
|
|
.plan-timeline {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
.plan-stop {
|
|
display: grid;
|
|
grid-template-columns: 44px 1fr;
|
|
gap: 12px;
|
|
}
|
|
.plan-stop-rail {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
}
|
|
.plan-stop-dot {
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: 50%;
|
|
display: grid;
|
|
place-items: center;
|
|
background: var(--bg-secondary, rgba(255,255,255,0.06));
|
|
border: var(--border-glass);
|
|
font-size: 1.2rem;
|
|
flex-shrink: 0;
|
|
}
|
|
.plan-stop-line {
|
|
width: 2px;
|
|
flex: 1;
|
|
min-height: 24px;
|
|
background: linear-gradient(to bottom, var(--accent-2), transparent);
|
|
opacity: 0.5;
|
|
margin: 4px 0;
|
|
}
|
|
.plan-stop-body {
|
|
padding-bottom: 22px;
|
|
}
|
|
.plan-stop-top {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
align-items: flex-start;
|
|
}
|
|
.plan-stop-top strong a {
|
|
color: var(--text-primary);
|
|
text-decoration: none;
|
|
}
|
|
.plan-stop-top strong a:hover { color: var(--accent-2); }
|
|
.plan-stop-country { font-weight: 500; color: var(--text-secondary); }
|
|
.plan-stop-range {
|
|
display: block;
|
|
margin-top: 4px;
|
|
font-size: 0.8rem;
|
|
color: var(--accent-2);
|
|
}
|
|
.plan-stop-tools {
|
|
display: flex;
|
|
gap: 4px;
|
|
}
|
|
.plan-stop-tools button {
|
|
width: 28px;
|
|
height: 28px;
|
|
border-radius: 8px;
|
|
border: var(--border-glass);
|
|
background: transparent;
|
|
color: var(--text-secondary);
|
|
cursor: pointer;
|
|
}
|
|
.plan-stop-tools button:disabled { opacity: 0.35; cursor: not-allowed; }
|
|
.plan-stop-tools button:not(:disabled):hover {
|
|
color: var(--text-primary);
|
|
border-color: var(--accent-2);
|
|
}
|
|
.plan-remove:hover { color: var(--accent-1) !important; }
|
|
.plan-stop-controls {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 10px;
|
|
margin: 10px 0;
|
|
font-size: 0.9rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.plan-stop-controls input {
|
|
width: 56px;
|
|
margin: 0 6px;
|
|
padding: 6px 8px;
|
|
border-radius: 8px;
|
|
border: var(--border-glass);
|
|
background: transparent;
|
|
color: var(--text-primary);
|
|
}
|
|
.plan-stop-cost {
|
|
font-weight: 700;
|
|
color: var(--text-primary);
|
|
}
|
|
.plan-stop-unit { font-size: 0.8rem; }
|
|
.plan-note {
|
|
width: 100%;
|
|
resize: vertical;
|
|
min-height: 56px;
|
|
padding: 10px 12px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: transparent;
|
|
color: var(--text-primary);
|
|
font: inherit;
|
|
line-height: 1.45;
|
|
}
|
|
.plan-visa {
|
|
margin: 8px 0 0;
|
|
font-size: 0.82rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.45;
|
|
}
|
|
.plan-visa.warn {
|
|
color: var(--accent-1);
|
|
}
|
|
.plan-compare-wrap { overflow-x: auto; }
|
|
.plan-compare {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
font-size: 0.88rem;
|
|
}
|
|
.plan-compare th,
|
|
.plan-compare td {
|
|
text-align: left;
|
|
padding: 10px 8px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--text-secondary) 20%, transparent);
|
|
}
|
|
.plan-compare th { color: var(--text-secondary); font-weight: 500; }
|
|
.plan-ready-pill {
|
|
font-size: 0.8rem;
|
|
color: var(--accent-2);
|
|
}
|
|
.plan-ready-bar {
|
|
height: 6px;
|
|
border-radius: 99px;
|
|
background: color-mix(in srgb, var(--text-secondary) 20%, transparent);
|
|
margin-bottom: 16px;
|
|
overflow: hidden;
|
|
}
|
|
.plan-ready-bar > div {
|
|
height: 100%;
|
|
border-radius: inherit;
|
|
background: linear-gradient(90deg, var(--accent-1), var(--accent-2));
|
|
transition: width 0.25s ease;
|
|
}
|
|
.plan-check-group { margin-bottom: 14px; }
|
|
.plan-check-group h3 {
|
|
font-size: 0.78rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.04em;
|
|
color: var(--text-secondary);
|
|
margin: 0 0 8px;
|
|
}
|
|
.plan-check-group ul {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
}
|
|
.plan-check-group label {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: flex-start;
|
|
cursor: pointer;
|
|
font-size: 0.9rem;
|
|
}
|
|
.plan-check-group input { margin-top: 3px; accent-color: var(--accent-2); }
|
|
.plan-check-group strong { display: block; font-weight: 600; }
|
|
.plan-check-group small {
|
|
display: block;
|
|
color: var(--text-secondary);
|
|
font-size: 0.75rem;
|
|
margin-top: 2px;
|
|
}
|
|
.plan-side .btn { width: 100%; margin-top: 8px; }
|
|
|
|
@media (max-width: 960px) {
|
|
.plan-stats { grid-template-columns: repeat(2, 1fr); }
|
|
.plan-layout { grid-template-columns: 1fr; }
|
|
}
|
|
@media (max-width: 520px) {
|
|
.plan-stats { grid-template-columns: 1fr 1fr; }
|
|
.plan-page { padding-top: 88px; }
|
|
}
|
|
|
|
/* ===== Compare page + modal actions ===== */
|
|
.compare-modal-actions,
|
|
.compare-page-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
justify-content: flex-end;
|
|
margin-top: 24px;
|
|
padding-top: 16px;
|
|
border-top: 1px solid color-mix(in srgb, var(--text-secondary) 18%, transparent);
|
|
}
|
|
.compare-page {
|
|
padding: 100px 0 80px;
|
|
min-height: 70vh;
|
|
}
|
|
.compare-page-hero {
|
|
margin-bottom: 24px;
|
|
}
|
|
.compare-page-hero h1 {
|
|
font-size: clamp(1.8rem, 4vw, 2.4rem);
|
|
margin: 8px 0;
|
|
}
|
|
.compare-page-hero p {
|
|
max-width: 560px;
|
|
color: var(--text-secondary);
|
|
line-height: 1.6;
|
|
}
|
|
.compare-pick-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
|
|
gap: 10px;
|
|
}
|
|
.compare-pick-chip {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 2px;
|
|
padding: 12px;
|
|
border-radius: var(--radius-lg);
|
|
border: var(--border-glass);
|
|
background: transparent;
|
|
color: var(--text-primary);
|
|
cursor: pointer;
|
|
text-align: left;
|
|
transition: border-color 0.2s, background 0.2s;
|
|
}
|
|
.compare-pick-chip span { font-size: 1.4rem; }
|
|
.compare-pick-chip strong { font-size: 0.92rem; }
|
|
.compare-pick-chip small {
|
|
font-size: 0.75rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.compare-pick-chip:hover { border-color: var(--accent-2); }
|
|
.compare-pick-chip.on {
|
|
border-color: var(--accent-2);
|
|
background: color-mix(in srgb, var(--accent-2) 12%, transparent);
|
|
}
|
|
.compare-page-empty { margin-top: 12px; }
|
|
@media (max-width: 700px) {
|
|
.compare-modal-actions,
|
|
.compare-page-actions { justify-content: stretch; }
|
|
.compare-modal-actions .btn,
|
|
.compare-page-actions .btn { flex: 1; }
|
|
}
|
|
|
|
/* ===== Plan cloud sync + profile hub ===== */
|
|
.plan-sync-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 10px;
|
|
margin: 0 0 16px;
|
|
}
|
|
.plan-sync-pill {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
padding: 6px 12px;
|
|
border-radius: 999px;
|
|
font-size: 0.8rem;
|
|
border: var(--border-glass);
|
|
color: var(--text-secondary);
|
|
text-decoration: none;
|
|
}
|
|
.plan-sync-pill.synced { color: var(--accent-2); border-color: color-mix(in srgb, var(--accent-2) 40%, transparent); }
|
|
.plan-sync-pill.syncing { color: var(--accent-3, #FFE66D); }
|
|
.plan-sync-pill.offline { color: var(--accent-1); }
|
|
.profile-section-head {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
margin-bottom: 12px;
|
|
}
|
|
.profile-section-head h2 { margin: 0; }
|
|
.profile-plan-meta {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px 16px;
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 12px;
|
|
padding-bottom: 12px;
|
|
border-bottom: 1px solid color-mix(in srgb, var(--text-secondary) 18%, transparent);
|
|
}
|
|
.profile-trip-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin-top: 12px;
|
|
}
|
|
.dest-months-pick {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 6px;
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
padding: 8px 10px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
}
|
|
.dest-months-pick input {
|
|
width: 48px;
|
|
padding: 4px 6px;
|
|
border-radius: 6px;
|
|
border: var(--border-glass);
|
|
background: transparent;
|
|
color: var(--text-primary);
|
|
}
|
|
.dest-plan-hints {
|
|
margin: 12px 0 4px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 6px;
|
|
}
|
|
|
|
/* ===== Plan visas + ICS ===== */
|
|
.plan-alert-visa {
|
|
border-color: color-mix(in srgb, #FFE66D 45%, transparent);
|
|
background: color-mix(in srgb, #FFE66D 10%, transparent);
|
|
}
|
|
.plan-stop-visas {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
margin-top: 8px;
|
|
}
|
|
.plan-visa-chip {
|
|
font-size: 0.75rem;
|
|
padding: 4px 8px;
|
|
border-radius: 999px;
|
|
border: var(--border-glass);
|
|
color: var(--text-secondary);
|
|
background: color-mix(in srgb, var(--accent-2) 8%, transparent);
|
|
}
|
|
.plan-visa-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
|
|
gap: 12px;
|
|
}
|
|
.plan-visa-card {
|
|
padding: 14px;
|
|
border-radius: var(--radius-lg);
|
|
border: var(--border-glass);
|
|
background: color-mix(in srgb, var(--bg-card) 80%, transparent);
|
|
}
|
|
.plan-visa-card header {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: flex-start;
|
|
margin-bottom: 10px;
|
|
}
|
|
.plan-visa-card header span { font-size: 1.5rem; }
|
|
.plan-visa-card strong { display: block; font-size: 0.95rem; }
|
|
.plan-visa-card small {
|
|
color: var(--text-secondary);
|
|
font-size: 0.75rem;
|
|
}
|
|
.plan-visa-card ul {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
font-size: 0.82rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.plan-visa-card p {
|
|
margin: 8px 0 0;
|
|
font-size: 0.8rem;
|
|
color: var(--accent-2);
|
|
}
|
|
.plan-visa-missing {
|
|
margin: 12px 0 0;
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.5;
|
|
}
|
|
|
|
/* ===== Product discovery polish ===== */
|
|
.trip-hero-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 10px;
|
|
justify-content: center;
|
|
margin-top: 14px;
|
|
}
|
|
.auth-sync-note {
|
|
margin: 0 0 16px;
|
|
padding: 10px 14px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: color-mix(in srgb, var(--accent-2) 10%, transparent);
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.5;
|
|
}
|
|
.auth-sync-note a {
|
|
color: var(--accent-2);
|
|
margin-left: 4px;
|
|
}
|
|
.auth-redirect-card {
|
|
margin: 0 0 18px;
|
|
padding: 12px 14px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: color-mix(in srgb, var(--accent-2) 8%, transparent);
|
|
}
|
|
.auth-redirect-merge {
|
|
margin: 0 0 8px;
|
|
font-size: 0.82rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.45;
|
|
}
|
|
.auth-redirect-dest {
|
|
margin: 0;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
gap: 8px;
|
|
font-size: 0.88rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.auth-redirect-badge {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
padding: 4px 10px;
|
|
border-radius: 999px;
|
|
background: color-mix(in srgb, var(--accent-2) 18%, transparent);
|
|
color: var(--accent-2);
|
|
font-weight: 600;
|
|
font-size: 0.85rem;
|
|
}
|
|
.auth-demo-btn {
|
|
width: 100%;
|
|
}
|
|
.tools-core-banner {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, 1fr);
|
|
gap: 12px;
|
|
margin: 0 0 28px;
|
|
}
|
|
.tools-core-banner-secondary {
|
|
margin-top: -12px;
|
|
}
|
|
.tools-core-card {
|
|
display: flex;
|
|
gap: 12px;
|
|
align-items: center;
|
|
padding: 16px 18px;
|
|
border-radius: var(--radius-xl);
|
|
border: var(--border-glass);
|
|
background: var(--bg-card);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
transition: border-color 0.2s, transform 0.2s;
|
|
}
|
|
.tools-core-card:hover {
|
|
border-color: var(--accent-2);
|
|
transform: translateY(-2px);
|
|
}
|
|
.tools-core-card span { font-size: 1.6rem; }
|
|
.tools-core-card strong { display: block; font-size: 0.95rem; }
|
|
.tools-core-card p {
|
|
margin: 2px 0 0;
|
|
font-size: 0.78rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
@media (max-width: 800px) {
|
|
.tools-core-banner { grid-template-columns: 1fr; }
|
|
}
|
|
|
|
/* ===== Lang toggle + H5 polish (PWA / i18n) ===== */
|
|
.nav-lang-btn {
|
|
min-width: 44px;
|
|
min-height: 36px;
|
|
padding: 6px 12px;
|
|
border-radius: 10px;
|
|
border: var(--border-glass);
|
|
background: color-mix(in srgb, var(--bg-card) 80%, transparent);
|
|
color: var(--text-primary);
|
|
font-size: 0.8rem;
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
transition: border-color 0.2s, background 0.2s;
|
|
}
|
|
.nav-lang-btn:hover {
|
|
border-color: var(--accent-2);
|
|
}
|
|
.nav-mobile-extras {
|
|
display: none;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
margin-top: 12px;
|
|
padding-top: 12px;
|
|
border-top: var(--border-glass);
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.nav-login-desktop,
|
|
.nav-user-desktop { display: none; }
|
|
.nav-mobile-extras { display: flex; }
|
|
.nav-mobile-extras .nav-login-btn {
|
|
text-align: center;
|
|
display: block;
|
|
}
|
|
.nav-utils { gap: 6px; }
|
|
.nav-utils .nav-lang-btn {
|
|
min-width: 40px;
|
|
padding: 6px 8px;
|
|
}
|
|
|
|
.plan-page,
|
|
.compare-page,
|
|
.tools-hub-page {
|
|
padding-top: calc(var(--nav-height) + 16px);
|
|
padding-bottom: calc(48px + env(safe-area-inset-bottom, 0px));
|
|
}
|
|
.plan-panel-head { align-items: flex-start; }
|
|
.plan-actions { width: 100%; }
|
|
.plan-actions .btn { flex: 1 1 auto; min-height: 40px; }
|
|
.plan-meta-field input { min-width: 0; width: 100%; }
|
|
.plan-compare-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
|
|
.compare-pick-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 8px;
|
|
}
|
|
.compare-cards {
|
|
grid-template-columns: 1fr !important;
|
|
}
|
|
.hero-actions,
|
|
.trip-hero-actions {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
.hero-actions .btn,
|
|
.trip-hero-actions .btn {
|
|
width: 100%;
|
|
justify-content: center;
|
|
}
|
|
.compare-bar,
|
|
.matcher-fab {
|
|
bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important;
|
|
}
|
|
.section-nav {
|
|
padding-bottom: env(safe-area-inset-bottom, 0px);
|
|
}
|
|
.auth-card {
|
|
margin: 16px;
|
|
width: auto;
|
|
}
|
|
}
|
|
|
|
@supports (padding: max(0px)) {
|
|
.navbar {
|
|
padding-left: max(16px, env(safe-area-inset-left));
|
|
padding-right: max(16px, env(safe-area-inset-right));
|
|
}
|
|
}
|
|
|
|
/* ===== Journey path (homepage funnel) ===== */
|
|
.journey-strip {
|
|
padding: 48px 0 32px;
|
|
}
|
|
.journey-head {
|
|
margin-bottom: 28px;
|
|
}
|
|
.journey-rail {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
display: grid;
|
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
gap: 16px;
|
|
position: relative;
|
|
}
|
|
.journey-step {
|
|
position: relative;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
.journey-connector {
|
|
display: none;
|
|
}
|
|
.journey-card {
|
|
height: 100%;
|
|
padding: 20px 18px;
|
|
border-radius: var(--radius-xl);
|
|
border: var(--border-glass);
|
|
background: var(--bg-card);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
transition: border-color 0.2s, transform 0.2s;
|
|
}
|
|
.journey-card:hover {
|
|
border-color: var(--accent-2);
|
|
transform: translateY(-2px);
|
|
}
|
|
.journey-card-top {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: 4px;
|
|
}
|
|
.journey-n {
|
|
font-size: 0.75rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
color: var(--accent-2);
|
|
}
|
|
.journey-emoji { font-size: 1.5rem; }
|
|
.journey-card h3 {
|
|
margin: 0;
|
|
font-size: 1.05rem;
|
|
}
|
|
.journey-card p {
|
|
margin: 0;
|
|
flex: 1;
|
|
font-size: 0.85rem;
|
|
line-height: 1.5;
|
|
color: var(--text-secondary);
|
|
}
|
|
.journey-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin-top: 10px;
|
|
}
|
|
@media (max-width: 960px) {
|
|
.journey-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
}
|
|
@media (max-width: 560px) {
|
|
.journey-strip { padding: 32px 0 20px; }
|
|
.journey-rail { grid-template-columns: 1fr; }
|
|
}
|
|
|
|
/* ===== Homepage flow (shorter scroll) ===== */
|
|
.home-flow .section-compact {
|
|
padding: 64px 0;
|
|
}
|
|
.home-flow .section-compact .section-header {
|
|
margin-bottom: 36px;
|
|
}
|
|
.home-flow .trip-section.section-compact {
|
|
padding-bottom: 48px;
|
|
}
|
|
|
|
.dest-compare-hint {
|
|
text-align: center;
|
|
margin: -24px 0 20px;
|
|
padding: 10px 16px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: color-mix(in srgb, var(--accent-2) 10%, transparent);
|
|
font-size: 0.88rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.dest-card {
|
|
position: relative;
|
|
}
|
|
.dest-card-link {
|
|
display: block;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
.compare-check {
|
|
position: absolute;
|
|
top: 12px;
|
|
right: 12px;
|
|
z-index: 2;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: 50%;
|
|
width: 36px;
|
|
height: 36px;
|
|
cursor: pointer;
|
|
font-size: 0.85rem;
|
|
display: grid;
|
|
place-items: center;
|
|
transition: background 0.2s, transform 0.2s;
|
|
}
|
|
.compare-check.on {
|
|
background: var(--accent-3);
|
|
color: #0a0e17;
|
|
font-weight: 700;
|
|
}
|
|
.dest-card-actions {
|
|
padding: 0 16px 16px;
|
|
display: flex;
|
|
gap: 8px;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
.dest-expand-wrap {
|
|
text-align: center;
|
|
margin-top: 24px;
|
|
}
|
|
.map-browse-link { margin-top: 12px; }
|
|
.visa-plan-cta { margin-top: 8px; }
|
|
.faq-plan-hint {
|
|
text-align: center;
|
|
margin-top: 28px;
|
|
font-size: 0.9rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.faq-plan-hint a {
|
|
color: var(--accent-2);
|
|
margin-left: 4px;
|
|
}
|
|
|
|
.compare-bar-meta {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
min-width: 72px;
|
|
}
|
|
.compare-bar-meta strong { font-size: 0.95rem; }
|
|
.compare-bar-hint {
|
|
font-size: 0.72rem;
|
|
color: var(--text-secondary);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.home-flow .section-compact { padding: 48px 0; }
|
|
.compare-bar {
|
|
left: 12px;
|
|
right: 12px;
|
|
bottom: calc(12px + env(safe-area-inset-bottom, 0px));
|
|
flex-wrap: wrap;
|
|
justify-content: space-between;
|
|
padding: 12px 14px;
|
|
gap: 8px;
|
|
}
|
|
.compare-bar .btn { flex: 1; min-width: 0; }
|
|
}
|
|
|
|
/* ===== Next Stop / Meetups / Community (NomadCNA ? nomadro) ===== */
|
|
|
|
.next-stop-page,
|
|
.meetups-page,
|
|
.community-page,
|
|
.community-detail-page,
|
|
.tool-runner-page {
|
|
padding: 100px 0 80px;
|
|
min-height: 60vh;
|
|
}
|
|
|
|
.next-stop-layout {
|
|
display: grid;
|
|
grid-template-columns: 280px 1fr;
|
|
gap: 28px;
|
|
align-items: start;
|
|
}
|
|
|
|
.next-stop-filters {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 16px;
|
|
position: sticky;
|
|
top: 96px;
|
|
}
|
|
|
|
.next-stop-filter-card {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
padding: 18px;
|
|
backdrop-filter: blur(16px);
|
|
}
|
|
|
|
.next-stop-filter-card label {
|
|
display: block;
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.next-stop-filter-card input[type="range"] {
|
|
width: 100%;
|
|
accent-color: var(--accent-3);
|
|
}
|
|
|
|
.next-stop-value {
|
|
display: block;
|
|
margin-top: 8px;
|
|
font-size: 0.9rem;
|
|
color: var(--accent-2);
|
|
}
|
|
|
|
.next-stop-chips {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
}
|
|
|
|
.next-stop-hero {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 24px;
|
|
padding: 28px;
|
|
margin-bottom: 24px;
|
|
border-radius: var(--radius-xl);
|
|
background: linear-gradient(135deg, rgba(78, 205, 196, 0.12), rgba(167, 139, 250, 0.12));
|
|
border: var(--border-glass);
|
|
}
|
|
|
|
.next-stop-badge {
|
|
display: inline-block;
|
|
font-size: 0.75rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
color: var(--accent-3);
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.next-stop-hero h2 {
|
|
font-family: var(--font-display);
|
|
font-size: 1.75rem;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.next-stop-hero h2 small {
|
|
font-size: 1rem;
|
|
color: var(--text-secondary);
|
|
font-weight: 500;
|
|
}
|
|
|
|
.next-stop-reasons {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin: 12px 0 16px;
|
|
}
|
|
|
|
.next-stop-reason {
|
|
font-size: 0.75rem;
|
|
padding: 4px 10px;
|
|
border-radius: 999px;
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
}
|
|
|
|
.next-stop-hero-actions {
|
|
display: flex;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.next-stop-score-ring {
|
|
flex-shrink: 0;
|
|
width: 88px;
|
|
height: 88px;
|
|
border-radius: 50%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
background: var(--bg-card);
|
|
border: 2px solid var(--accent-3);
|
|
}
|
|
|
|
.next-stop-score-ring strong {
|
|
font-size: 1.5rem;
|
|
line-height: 1;
|
|
background: var(--gradient-text);
|
|
-webkit-background-clip: text;
|
|
background-clip: text;
|
|
color: transparent;
|
|
}
|
|
|
|
.next-stop-score-ring span {
|
|
font-size: 0.7rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.next-stop-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 16px;
|
|
}
|
|
|
|
.next-stop-card {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
padding: 16px;
|
|
transition: transform 0.2s, border-color 0.2s;
|
|
}
|
|
|
|
.next-stop-card:hover {
|
|
transform: translateY(-3px);
|
|
border-color: rgba(78, 205, 196, 0.35);
|
|
}
|
|
|
|
.next-stop-card-head {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 8px;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.next-stop-card-head em {
|
|
margin-left: auto;
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
color: var(--accent-2);
|
|
}
|
|
|
|
.next-stop-card-actions {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
margin-top: 12px;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.next-stop-card-actions button {
|
|
background: none;
|
|
border: none;
|
|
color: var(--accent-3);
|
|
cursor: pointer;
|
|
}
|
|
|
|
.next-stop-routes,
|
|
.next-stop-meetups {
|
|
margin-top: 40px;
|
|
}
|
|
|
|
.next-stop-route-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
|
|
gap: 16px;
|
|
margin-top: 16px;
|
|
}
|
|
|
|
.next-stop-route-card {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
padding: 20px;
|
|
}
|
|
|
|
.next-stop-route-stops {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin: 12px 0;
|
|
}
|
|
|
|
.next-stop-route-stops a {
|
|
font-size: 0.85rem;
|
|
padding: 4px 10px;
|
|
border-radius: 999px;
|
|
background: var(--bg-glass);
|
|
}
|
|
|
|
.next-stop-route-card footer {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
flex-wrap: wrap;
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.next-stop-meetups-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.next-stop-meetup-row {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.next-stop-meetup-chip {
|
|
display: flex;
|
|
gap: 12px;
|
|
padding: 14px 16px;
|
|
border-radius: var(--radius-md);
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
}
|
|
|
|
.meetups-toolbar {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.meetups-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
|
gap: 20px;
|
|
}
|
|
|
|
.meetup-card {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 22px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.meetup-card-top {
|
|
display: flex;
|
|
gap: 12px;
|
|
}
|
|
|
|
.meetup-emoji {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.meetup-meta,
|
|
.meetup-venue {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.meetup-tags {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
}
|
|
|
|
.meetup-tag {
|
|
font-size: 0.72rem;
|
|
padding: 3px 8px;
|
|
border-radius: 999px;
|
|
background: var(--bg-glass);
|
|
}
|
|
|
|
.meetup-footer {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
margin-top: auto;
|
|
padding-top: 8px;
|
|
font-size: 0.8rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.meetup-city-link {
|
|
font-size: 0.85rem;
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.btn-sm {
|
|
padding: 6px 14px;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.btn.is-done {
|
|
opacity: 0.65;
|
|
}
|
|
|
|
.community-banner {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 20px;
|
|
padding: 24px 28px;
|
|
margin-bottom: 28px;
|
|
border-radius: var(--radius-xl);
|
|
background: linear-gradient(135deg, rgba(255, 107, 107, 0.1), rgba(78, 205, 196, 0.1));
|
|
border: var(--border-glass);
|
|
}
|
|
|
|
.community-featured {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 24px;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.community-pinned {
|
|
font-size: 0.75rem;
|
|
color: var(--accent-2);
|
|
}
|
|
|
|
.community-toolbar {
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.community-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 14px;
|
|
}
|
|
|
|
.community-card {
|
|
display: block;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
padding: 20px;
|
|
transition: border-color 0.2s, transform 0.2s;
|
|
}
|
|
|
|
.community-card:hover {
|
|
border-color: rgba(167, 139, 250, 0.35);
|
|
transform: translateX(4px);
|
|
}
|
|
|
|
.community-card-head {
|
|
display: flex;
|
|
gap: 12px;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.community-meta {
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.community-excerpt {
|
|
color: var(--text-secondary);
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.community-card footer {
|
|
display: flex;
|
|
gap: 12px;
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.community-tag {
|
|
padding: 2px 8px;
|
|
border-radius: 999px;
|
|
background: var(--bg-glass);
|
|
}
|
|
|
|
.community-detail {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 32px;
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.community-detail-cat {
|
|
font-size: 0.75rem;
|
|
color: var(--accent-3);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.community-replies {
|
|
margin-top: 24px;
|
|
}
|
|
|
|
.community-reply {
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
padding: 16px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.community-reply-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
font-size: 0.85rem;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.community-replies-preview blockquote {
|
|
margin: 10px 0;
|
|
padding-left: 12px;
|
|
border-left: 3px solid var(--accent-3);
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.community-reply-hint {
|
|
text-align: center;
|
|
padding: 32px;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.tool-runner-head {
|
|
margin-bottom: 24px;
|
|
}
|
|
|
|
.tool-runner-head h1 {
|
|
font-family: var(--font-display);
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.tool-runner-exits {
|
|
margin: 1.25rem 0 0.5rem;
|
|
}
|
|
|
|
.tool-loading {
|
|
padding: 48px;
|
|
text-align: center;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
@media (max-width: 1024px) {
|
|
.next-stop-layout { grid-template-columns: 1fr; }
|
|
.next-stop-filters { position: static; }
|
|
.next-stop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
}
|
|
|
|
@media (max-width: 640px) {
|
|
.next-stop-grid { grid-template-columns: 1fr; }
|
|
.next-stop-hero { flex-direction: column; }
|
|
.community-banner { flex-direction: column; align-items: flex-start; }
|
|
}
|
|
|
|
/* ===== Dating / Chat / Join / Live / Digital ===== */
|
|
|
|
.dating-page,
|
|
.chat-page,
|
|
.chat-thread-page,
|
|
.join-page,
|
|
.live-page,
|
|
.digital-page {
|
|
padding: 100px 0 80px;
|
|
min-height: 60vh;
|
|
}
|
|
|
|
.dating-gate,
|
|
.join-paid,
|
|
.digital-gate,
|
|
.live-gate {
|
|
text-align: center;
|
|
padding: 48px 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
max-width: 480px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.dating-intents {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.dating-quota {
|
|
font-size: 0.9rem;
|
|
color: var(--text-secondary);
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.dating-quota a {
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.dating-empty,
|
|
.gigs-empty,
|
|
.notif-empty {
|
|
text-align: center;
|
|
padding: 1.5rem 0 0.5rem;
|
|
}
|
|
|
|
.dating-empty-actions,
|
|
.notif-empty-links,
|
|
.join-paid-actions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0.65rem;
|
|
justify-content: center;
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.join-vip-badge {
|
|
margin-top: 0.75rem;
|
|
display: inline-block;
|
|
padding: 0.35rem 0.9rem;
|
|
border-radius: 999px;
|
|
background: rgba(255, 193, 7, 0.15);
|
|
color: #e6b800;
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.gigs-applied {
|
|
color: var(--accent-3);
|
|
font-weight: 600;
|
|
margin: 0.5rem 0 0;
|
|
}
|
|
|
|
.dating-card {
|
|
max-width: 420px;
|
|
margin: 0 auto;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 28px;
|
|
text-align: center;
|
|
}
|
|
|
|
.dating-deck {
|
|
position: relative;
|
|
max-width: 420px;
|
|
margin: 0 auto;
|
|
min-height: 360px;
|
|
touch-action: none;
|
|
user-select: none;
|
|
}
|
|
|
|
.dating-card-next {
|
|
position: absolute;
|
|
inset: 0;
|
|
transform: scale(0.96);
|
|
opacity: 0.55;
|
|
pointer-events: none;
|
|
z-index: 0;
|
|
}
|
|
|
|
.dating-card-top {
|
|
position: relative;
|
|
z-index: 1;
|
|
cursor: grab;
|
|
will-change: transform;
|
|
}
|
|
|
|
.dating-card-top.dragging {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
.dating-card-top.fly-left {
|
|
animation: dating-fly-left 0.22s ease-in forwards;
|
|
}
|
|
.dating-card-top.fly-right {
|
|
animation: dating-fly-right 0.22s ease-in forwards;
|
|
}
|
|
.dating-card-top.fly-up {
|
|
animation: dating-fly-up 0.22s ease-in forwards;
|
|
}
|
|
|
|
@keyframes dating-fly-left {
|
|
to { transform: translate(-140%, 20px) rotate(-18deg); opacity: 0; }
|
|
}
|
|
@keyframes dating-fly-right {
|
|
to { transform: translate(140%, 20px) rotate(18deg); opacity: 0; }
|
|
}
|
|
@keyframes dating-fly-up {
|
|
to { transform: translate(0, -140%) rotate(-4deg); opacity: 0; }
|
|
}
|
|
|
|
.dating-stamp {
|
|
position: absolute;
|
|
top: 24px;
|
|
padding: 6px 12px;
|
|
border: 3px solid;
|
|
border-radius: 8px;
|
|
font-weight: 800;
|
|
letter-spacing: 0.08em;
|
|
pointer-events: none;
|
|
z-index: 2;
|
|
}
|
|
.dating-stamp.like {
|
|
left: 18px;
|
|
color: #3dd68c;
|
|
border-color: #3dd68c;
|
|
transform: rotate(-12deg);
|
|
}
|
|
.dating-stamp.nope {
|
|
right: 18px;
|
|
color: #ff6b6b;
|
|
border-color: #ff6b6b;
|
|
transform: rotate(12deg);
|
|
}
|
|
.dating-stamp.super {
|
|
left: 50%;
|
|
top: 18px;
|
|
transform: translateX(-50%) rotate(-6deg);
|
|
color: #ffe66d;
|
|
border-color: #ffe66d;
|
|
}
|
|
|
|
.dating-swipe-hint {
|
|
text-align: center;
|
|
color: var(--text-muted);
|
|
font-size: 0.85rem;
|
|
margin: 0.25rem 0 0.75rem;
|
|
}
|
|
|
|
.dating-card-photo {
|
|
font-size: 4rem;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.member-photo-img {
|
|
width: 96px;
|
|
height: 96px;
|
|
border-radius: 50%;
|
|
object-fit: cover;
|
|
display: block;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.dating-meta {
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
.dating-tags {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 6px;
|
|
justify-content: center;
|
|
margin: 16px 0;
|
|
}
|
|
|
|
.dating-view-profile {
|
|
display: inline-block;
|
|
margin-top: 4px;
|
|
font-size: 0.85rem;
|
|
color: var(--accent, #e8a87c);
|
|
text-decoration: none;
|
|
pointer-events: auto;
|
|
position: relative;
|
|
z-index: 2;
|
|
}
|
|
|
|
.dating-view-profile:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.dating-actions {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 20px;
|
|
margin-top: 20px;
|
|
}
|
|
|
|
.dating-btn {
|
|
width: 56px;
|
|
height: 56px;
|
|
border-radius: 50%;
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
font-size: 1.4rem;
|
|
cursor: pointer;
|
|
transition: transform 0.15s;
|
|
}
|
|
|
|
.dating-btn:hover { transform: scale(1.08); }
|
|
.dating-btn.like { border-color: rgba(255, 107, 107, 0.5); }
|
|
.dating-btn.super { border-color: rgba(255, 230, 109, 0.5); }
|
|
|
|
.dating-match-modal {
|
|
position: fixed;
|
|
inset: 0;
|
|
background: rgba(0, 0, 0, 0.6);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 2000;
|
|
padding: 24px;
|
|
}
|
|
|
|
.dating-match-box {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 32px;
|
|
text-align: center;
|
|
max-width: 360px;
|
|
}
|
|
|
|
.dating-match-actions {
|
|
display: flex;
|
|
gap: 12px;
|
|
justify-content: center;
|
|
margin-top: 20px;
|
|
}
|
|
|
|
.chat-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
}
|
|
|
|
.chat-list-item {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
padding: 16px 18px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
transition: border-color 0.2s;
|
|
}
|
|
|
|
.chat-list-item:hover { border-color: rgba(78, 205, 196, 0.35); }
|
|
.chat-list-item.unread { border-color: rgba(78, 205, 196, 0.45); }
|
|
|
|
.community-compose {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
margin-top: 24px;
|
|
padding: 20px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
}
|
|
|
|
.community-compose textarea {
|
|
padding: 12px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
min-height: 80px;
|
|
}
|
|
|
|
.gigs-page { padding: 100px 0 80px; min-height: 60vh; }
|
|
|
|
.join-card select {
|
|
padding: 10px 14px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
.video-embed {
|
|
position: relative;
|
|
padding-bottom: 56.25%;
|
|
height: 0;
|
|
margin-top: 24px;
|
|
border-radius: var(--radius-lg);
|
|
overflow: hidden;
|
|
}
|
|
|
|
.video-embed iframe {
|
|
position: absolute;
|
|
inset: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
border: 0;
|
|
}
|
|
|
|
.report-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 24px;
|
|
margin-top: 24px;
|
|
}
|
|
|
|
.report-rank { list-style: none; padding: 0; }
|
|
.report-rank li {
|
|
display: grid;
|
|
grid-template-columns: 24px 1fr auto auto;
|
|
gap: 12px;
|
|
padding: 10px 0;
|
|
border-bottom: var(--border-glass);
|
|
align-items: center;
|
|
}
|
|
|
|
.member-map-grid, .member-map-list {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
|
|
gap: 12px;
|
|
}
|
|
|
|
.member-map-item {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: center;
|
|
padding: 12px;
|
|
background: var(--bg-glass);
|
|
border-radius: var(--radius-md);
|
|
}
|
|
|
|
.member-loc-link {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
.member-loc-link:hover {
|
|
color: var(--accent, #4ecdc4);
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.weather-strip { margin-top: 32px; }
|
|
.weather-cards { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
|
|
.weather-card {
|
|
padding: 12px 16px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
min-width: 100px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.25rem;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
transition: border-color 0.15s ease, transform 0.15s ease;
|
|
}
|
|
a.weather-card:hover {
|
|
border-color: rgba(78, 205, 196, 0.35);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.ai-reply {
|
|
margin-top: 24px;
|
|
padding: 20px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
}
|
|
|
|
.ai-suggestions {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 8px;
|
|
margin-bottom: 16px;
|
|
}
|
|
|
|
.feedback-more-link {
|
|
margin-top: 12px;
|
|
text-align: center;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
.feedback-more-link a {
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.ai-cities { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
|
|
|
|
.notif-toolbar { display: flex; gap: 8px; flex-wrap: wrap; }
|
|
.notif-pref-row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 10px 0;
|
|
border-bottom: var(--border-glass);
|
|
}
|
|
|
|
.nav-notify-badge {
|
|
position: absolute;
|
|
top: -4px;
|
|
right: -4px;
|
|
font-size: 0.65rem;
|
|
font-style: normal;
|
|
background: var(--accent-1);
|
|
color: #fff;
|
|
border-radius: 999px;
|
|
padding: 1px 5px;
|
|
}
|
|
|
|
.nav-notify { position: relative; }
|
|
|
|
.newsletter-strip {
|
|
margin-top: 48px;
|
|
padding: 24px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
text-align: center;
|
|
}
|
|
|
|
.newsletter-form {
|
|
display: flex;
|
|
gap: 10px;
|
|
justify-content: center;
|
|
margin-top: 12px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.newsletter-form input {
|
|
min-width: 220px;
|
|
padding: 10px 14px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
.newsletter-note {
|
|
margin-top: 10px;
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.report-grid { grid-template-columns: 1fr; }
|
|
}
|
|
|
|
.dating-likes-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
|
|
gap: 16px;
|
|
margin-top: 24px;
|
|
}
|
|
|
|
.dating-like-card {
|
|
padding: 20px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
text-align: center;
|
|
}
|
|
|
|
.dating-like-photo { font-size: 2.5rem; margin-bottom: 8px; }
|
|
|
|
.chat-avatar { font-size: 1.75rem; }
|
|
.chat-avatar-img {
|
|
width: 44px;
|
|
height: 44px;
|
|
border-radius: 50%;
|
|
object-fit: cover;
|
|
flex-shrink: 0;
|
|
}
|
|
.chat-unread {
|
|
margin-left: auto;
|
|
font-style: normal;
|
|
background: var(--accent-1);
|
|
color: #fff;
|
|
font-size: 0.75rem;
|
|
padding: 2px 8px;
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.chat-thread-wrap {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-height: calc(100vh - 120px);
|
|
}
|
|
|
|
.chat-thread-peer {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
padding: 12px 0;
|
|
margin-bottom: 8px;
|
|
border-bottom: var(--border-glass);
|
|
}
|
|
|
|
.chat-thread-peer-link {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 12px;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
min-width: 0;
|
|
}
|
|
|
|
.chat-thread-peer-link strong {
|
|
display: block;
|
|
}
|
|
|
|
.chat-thread-peer-link .dating-meta {
|
|
margin: 0;
|
|
}
|
|
|
|
.chat-thread-messages {
|
|
flex: 1;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 10px;
|
|
padding: 20px 0;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.chat-bubble {
|
|
max-width: 75%;
|
|
padding: 12px 16px;
|
|
border-radius: var(--radius-lg);
|
|
background: var(--bg-glass);
|
|
border: var(--border-glass);
|
|
align-self: flex-start;
|
|
}
|
|
|
|
.chat-bubble.mine {
|
|
align-self: flex-end;
|
|
background: rgba(78, 205, 196, 0.15);
|
|
border-color: rgba(78, 205, 196, 0.35);
|
|
}
|
|
|
|
.chat-compose {
|
|
display: flex;
|
|
gap: 10px;
|
|
padding-top: 16px;
|
|
border-top: var(--border-glass);
|
|
}
|
|
|
|
.chat-compose input {
|
|
flex: 1;
|
|
padding: 12px 16px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
.join-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
gap: 24px;
|
|
}
|
|
|
|
.join-card {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 28px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 12px;
|
|
}
|
|
|
|
.join-card label {
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.join-card input,
|
|
.join-card textarea {
|
|
padding: 10px 14px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
}
|
|
|
|
.join-card-vip {
|
|
background: linear-gradient(135deg, rgba(255, 230, 109, 0.08), rgba(78, 205, 196, 0.08));
|
|
}
|
|
|
|
.join-perks {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
font-size: 0.9rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.join-perks li { margin-bottom: 8px; }
|
|
.join-login-hint { font-size: 0.85rem; margin-top: 8px; }
|
|
.join-paid { display: flex; flex-direction: column; gap: 16px; align-items: center; }
|
|
|
|
.live-page { padding: 0; min-height: 100vh; display: flex; flex-direction: column; }
|
|
.live-toolbar {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 16px;
|
|
padding: 12px 20px;
|
|
background: var(--bg-card);
|
|
border-bottom: var(--border-glass);
|
|
flex-wrap: wrap;
|
|
}
|
|
.live-layout-btns { margin-left: auto; display: flex; gap: 6px; }
|
|
.live-stage {
|
|
flex: 1;
|
|
display: grid;
|
|
min-height: calc(100vh - 52px);
|
|
}
|
|
.live-stage.layout-split { grid-template-columns: 1fr 380px; }
|
|
.live-stage.layout-video { grid-template-columns: 1fr; }
|
|
.live-stage.layout-chat { grid-template-columns: 1fr; }
|
|
.live-iframe { width: 100%; height: 100%; border: none; min-height: 400px; }
|
|
.live-video { background: #000; }
|
|
.live-chat { border-left: var(--border-glass); }
|
|
|
|
.digital-hero {
|
|
margin-bottom: 32px;
|
|
}
|
|
|
|
.digital-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
|
|
gap: 20px;
|
|
}
|
|
|
|
.digital-card {
|
|
display: block;
|
|
padding: 28px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
transition: transform 0.2s, border-color 0.2s;
|
|
}
|
|
|
|
.digital-card:hover {
|
|
transform: translateY(-4px);
|
|
border-color: rgba(167, 139, 250, 0.35);
|
|
}
|
|
|
|
.digital-card-vip {
|
|
background: linear-gradient(135deg, rgba(255, 230, 109, 0.1), rgba(78, 205, 196, 0.1));
|
|
}
|
|
|
|
.digital-card-emoji { font-size: 2.5rem; display: block; margin-bottom: 12px; }
|
|
|
|
.digital-module {
|
|
margin-bottom: 32px;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 24px;
|
|
}
|
|
|
|
.digital-lesson-list {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 16px 0 0;
|
|
}
|
|
|
|
.digital-lesson-list li a {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
padding: 12px 0;
|
|
border-bottom: var(--border-glass);
|
|
font-size: 0.95rem;
|
|
}
|
|
|
|
.digital-lesson-list li a.digital-lesson-locked {
|
|
opacity: 0.85;
|
|
}
|
|
|
|
.digital-lesson-list li a.digital-lesson-locked:hover .digital-lesson-meta {
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
.digital-lesson-meta {
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.digital-lesson {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-xl);
|
|
padding: 32px;
|
|
}
|
|
|
|
.digital-lesson-body {
|
|
margin: 24px 0;
|
|
color: var(--text-secondary);
|
|
line-height: 1.7;
|
|
}
|
|
|
|
.digital-lesson-nav {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: 12px;
|
|
margin-top: 32px;
|
|
}
|
|
|
|
.digital-jobs-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
|
|
gap: 20px;
|
|
}
|
|
|
|
.digital-job-card {
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
padding: 22px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 8px;
|
|
}
|
|
|
|
.digital-job-company,
|
|
.digital-job-meta {
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.meetup-footer-actions {
|
|
display: flex;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.meetup-live-btn {
|
|
background: var(--bg-glass);
|
|
color: var(--accent-3);
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.join-grid { grid-template-columns: 1fr; }
|
|
.live-toolbar {
|
|
padding: 10px 12px;
|
|
gap: 8px;
|
|
}
|
|
.live-toolbar strong {
|
|
flex: 1 1 100%;
|
|
font-size: 0.95rem;
|
|
}
|
|
.live-layout-btns {
|
|
margin-left: 0;
|
|
width: 100%;
|
|
justify-content: flex-start;
|
|
}
|
|
.live-stage {
|
|
min-height: calc(100vh - 110px);
|
|
}
|
|
.live-stage.layout-split { grid-template-columns: 1fr; }
|
|
.live-iframe { min-height: 280px; }
|
|
.live-chat { border-left: none; border-top: var(--border-glass); min-height: 280px; }
|
|
}
|
|
|
|
/* -- Feature rings / progressive IA -- */
|
|
.nav-group {
|
|
position: relative;
|
|
}
|
|
.nav-group-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 4px;
|
|
padding: 8px 14px;
|
|
border: none;
|
|
border-radius: var(--radius-sm);
|
|
background: transparent;
|
|
color: var(--text-secondary);
|
|
font-size: 0.9rem;
|
|
font-weight: 600;
|
|
cursor: pointer;
|
|
transition: all var(--transition);
|
|
}
|
|
.nav-group-btn:hover,
|
|
.nav-group.open .nav-group-btn,
|
|
.nav-group.is-active .nav-group-btn {
|
|
color: var(--text-primary);
|
|
background: var(--bg-glass);
|
|
}
|
|
.nav-group-caret {
|
|
font-size: 0.65rem;
|
|
opacity: 0.7;
|
|
}
|
|
.nav-group-panel {
|
|
display: none;
|
|
position: absolute;
|
|
top: calc(100% + 8px);
|
|
left: 0;
|
|
min-width: 200px;
|
|
padding: 8px;
|
|
border-radius: var(--radius-md);
|
|
background: rgba(10, 14, 23, 0.95);
|
|
border: var(--border-glass);
|
|
backdrop-filter: blur(16px);
|
|
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
|
|
flex-direction: column;
|
|
gap: 2px;
|
|
z-index: 50;
|
|
}
|
|
.nav-group.open .nav-group-panel {
|
|
display: flex;
|
|
}
|
|
.nav-group-panel a {
|
|
display: block;
|
|
padding: 10px 12px;
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-secondary);
|
|
font-size: 0.88rem;
|
|
white-space: nowrap;
|
|
}
|
|
.nav-group-panel a:hover,
|
|
.nav-group-panel a.active {
|
|
color: var(--text-primary);
|
|
background: var(--bg-glass);
|
|
}
|
|
[data-theme="light"] .nav-group-panel {
|
|
background: rgba(248, 250, 252, 0.98);
|
|
}
|
|
|
|
.ring-next {
|
|
margin: 48px 0 24px;
|
|
padding: 28px 0 8px;
|
|
border-top: 1px solid rgba(255, 255, 255, 0.06);
|
|
}
|
|
.ring-next-head {
|
|
margin-bottom: 16px;
|
|
}
|
|
.ring-next-tag {
|
|
display: inline-block;
|
|
font-size: 0.72rem;
|
|
letter-spacing: 0.12em;
|
|
color: var(--accent-3, #4ecdc4);
|
|
margin-bottom: 6px;
|
|
}
|
|
.ring-next-head h2 {
|
|
font-size: 1.25rem;
|
|
margin: 0;
|
|
}
|
|
.ring-next-grid {
|
|
display: grid;
|
|
gap: 12px;
|
|
}
|
|
.ring-next-n2 {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
.ring-next-n3 {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
.ring-next-card {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 14px;
|
|
padding: 16px 18px;
|
|
border-radius: var(--radius-lg);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
transition: transform 0.2s ease, border-color 0.2s ease;
|
|
}
|
|
.ring-next-card:hover {
|
|
transform: translateY(-2px);
|
|
border-color: rgba(78, 205, 196, 0.35);
|
|
}
|
|
.ring-next-emoji {
|
|
font-size: 1.5rem;
|
|
flex-shrink: 0;
|
|
}
|
|
.ring-next-card strong {
|
|
display: block;
|
|
font-size: 0.98rem;
|
|
}
|
|
.ring-next-card p {
|
|
margin: 4px 0 0;
|
|
font-size: 0.82rem;
|
|
color: var(--text-secondary);
|
|
line-height: 1.4;
|
|
}
|
|
.ring-next-go {
|
|
margin-left: auto;
|
|
opacity: 0.45;
|
|
font-size: 1.1rem;
|
|
}
|
|
.home-ring-wrap {
|
|
padding-bottom: 8px;
|
|
}
|
|
.journey-rail-3 {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
.footer-grid-rings {
|
|
grid-template-columns: 1.4fr repeat(4, minmax(0, 1fr));
|
|
gap: 28px;
|
|
}
|
|
.tools-featured-grid-compact {
|
|
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
|
|
}
|
|
.tools-hub-more {
|
|
display: flex;
|
|
justify-content: center;
|
|
margin: 28px 0 8px;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
.nav-group-panel {
|
|
position: static;
|
|
display: none;
|
|
min-width: 0;
|
|
box-shadow: none;
|
|
background: transparent;
|
|
border: none;
|
|
padding: 4px 0 8px 12px;
|
|
backdrop-filter: none;
|
|
}
|
|
.nav-group.open .nav-group-panel {
|
|
display: flex;
|
|
}
|
|
.ring-next-n2,
|
|
.ring-next-n3,
|
|
.journey-rail-3 {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
.footer-grid-rings {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
@media (max-width: 560px) {
|
|
.footer-grid-rings {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
.search-ring-hints {
|
|
padding: 8px 4px 12px;
|
|
}
|
|
.search-ring-label {
|
|
font-size: 0.8rem;
|
|
letter-spacing: 0.06em;
|
|
color: var(--text-muted);
|
|
margin: 0 0 12px;
|
|
}
|
|
.search-ring-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
gap: 8px;
|
|
}
|
|
.search-ring-chip {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: flex-start;
|
|
gap: 6px;
|
|
padding: 12px;
|
|
border-radius: var(--radius-md);
|
|
border: var(--border-glass);
|
|
background: var(--bg-glass);
|
|
color: var(--text-primary);
|
|
cursor: pointer;
|
|
text-align: left;
|
|
transition: border-color 0.2s ease, transform 0.2s ease;
|
|
}
|
|
.search-ring-chip:hover {
|
|
border-color: rgba(78, 205, 196, 0.4);
|
|
transform: translateY(-1px);
|
|
}
|
|
.search-ring-chip span {
|
|
font-size: 1.2rem;
|
|
}
|
|
.search-ring-chip strong {
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
}
|
|
.search-hints-kbd {
|
|
margin: 14px 0 0;
|
|
font-size: 0.78rem;
|
|
color: var(--text-muted);
|
|
}
|
|
@media (max-width: 640px) {
|
|
.search-ring-grid {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
}
|
|
|
|
.meetups-login-hint {
|
|
margin: 8px 0 0;
|
|
font-size: 0.9rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
.meetups-login-hint a {
|
|
color: var(--accent-3, #4ecdc4);
|
|
text-decoration: underline;
|
|
}
|
|
|
|
/* ===== Recently viewed + AI history + profile RSVPs ===== */
|
|
.recently-viewed {
|
|
padding: 2.5rem 0 1rem;
|
|
}
|
|
.recently-viewed.compact {
|
|
padding: 1.25rem 0;
|
|
margin-top: 1.5rem;
|
|
}
|
|
.recently-viewed-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
gap: 1rem;
|
|
margin-bottom: 1rem;
|
|
flex-wrap: wrap;
|
|
}
|
|
.recently-viewed-head h2 {
|
|
margin: 0.25rem 0 0;
|
|
font-size: 1.35rem;
|
|
}
|
|
.recently-viewed.compact .recently-viewed-head h2 {
|
|
font-size: 1.15rem;
|
|
}
|
|
.recently-viewed-actions {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
flex-wrap: wrap;
|
|
}
|
|
.recently-viewed-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
|
|
gap: 0.75rem;
|
|
}
|
|
.recently-viewed-card {
|
|
display: flex;
|
|
gap: 0.75rem;
|
|
align-items: center;
|
|
padding: 0.85rem 1rem;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
transition: transform 0.2s ease, border-color 0.2s ease;
|
|
}
|
|
.recently-viewed-card:hover {
|
|
transform: translateY(-2px);
|
|
border-color: color-mix(in srgb, var(--accent) 40%, transparent);
|
|
}
|
|
.recently-viewed-emoji {
|
|
font-size: 1.6rem;
|
|
line-height: 1;
|
|
}
|
|
.recently-viewed-card strong {
|
|
display: block;
|
|
font-size: 0.95rem;
|
|
}
|
|
.recently-viewed-country {
|
|
color: var(--text-muted);
|
|
font-weight: 500;
|
|
}
|
|
.recently-viewed-card p {
|
|
margin: 0.15rem 0 0;
|
|
font-size: 0.78rem;
|
|
color: var(--text-muted);
|
|
}
|
|
.recently-viewed-compare {
|
|
margin-top: 1rem;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0.5rem;
|
|
align-items: center;
|
|
}
|
|
|
|
.ai-history {
|
|
margin-top: 2rem;
|
|
}
|
|
.ai-history-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
.ai-history-head h2 {
|
|
margin: 0;
|
|
font-size: 1.1rem;
|
|
}
|
|
.ai-history-list {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.5rem;
|
|
}
|
|
.ai-history-item {
|
|
width: 100%;
|
|
text-align: left;
|
|
padding: 0.85rem 1rem;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
color: inherit;
|
|
cursor: pointer;
|
|
transition: border-color 0.2s ease;
|
|
}
|
|
.ai-history-item:hover {
|
|
border-color: color-mix(in srgb, var(--accent) 35%, transparent);
|
|
}
|
|
.ai-history-item strong {
|
|
display: block;
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
.ai-history-item span {
|
|
font-size: 0.82rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.profile-rsvps {
|
|
margin-top: 2rem;
|
|
}
|
|
.profile-rsvp-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.65rem;
|
|
}
|
|
.profile-rsvp-card {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.85rem;
|
|
padding: 0.85rem 1rem;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
}
|
|
.profile-rsvp-card span {
|
|
font-size: 1.5rem;
|
|
}
|
|
.profile-rsvp-card strong {
|
|
display: block;
|
|
}
|
|
.profile-rsvp-card p {
|
|
margin: 0.15rem 0 0;
|
|
font-size: 0.8rem;
|
|
color: var(--text-muted);
|
|
}
|
|
.profile-rsvp-card .btn {
|
|
margin-left: auto;
|
|
}
|
|
|
|
.profile-rsvp-actions {
|
|
margin-left: auto;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0.4rem;
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
.profile-rsvp-actions .btn {
|
|
margin-left: 0;
|
|
}
|
|
|
|
.compare-history {
|
|
margin: 0 0 1.5rem;
|
|
padding: 1rem 1.15rem;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
}
|
|
.compare-history-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
.compare-history-head h2 {
|
|
margin: 0;
|
|
font-size: 1rem;
|
|
}
|
|
.compare-history-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.5rem;
|
|
}
|
|
.compare-history-chip {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
width: 100%;
|
|
text-align: left;
|
|
padding: 0.7rem 0.9rem;
|
|
background: transparent;
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
color: inherit;
|
|
cursor: pointer;
|
|
}
|
|
.compare-history-chip:hover {
|
|
border-color: color-mix(in srgb, var(--accent) 40%, transparent);
|
|
}
|
|
.compare-history-chip span {
|
|
font-size: 0.88rem;
|
|
}
|
|
.compare-history-chip strong {
|
|
font-size: 0.78rem;
|
|
color: var(--accent-3, #4ecdc4);
|
|
white-space: nowrap;
|
|
}
|
|
.search-recent-inline {
|
|
margin-bottom: 1rem;
|
|
}
|
|
.profile-section-actions {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
flex-wrap: wrap;
|
|
align-items: center;
|
|
}
|
|
|
|
/* ===== Digest + watch later ===== */
|
|
.nomad-digest {
|
|
margin: 1.75rem 0;
|
|
padding: 1.25rem 1.35rem;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
}
|
|
.nomad-digest-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
gap: 1rem;
|
|
margin-bottom: 1rem;
|
|
flex-wrap: wrap;
|
|
}
|
|
.nomad-digest-head h2 {
|
|
margin: 0.2rem 0 0;
|
|
font-size: 1.2rem;
|
|
}
|
|
.nomad-digest-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
|
|
gap: 0.75rem;
|
|
}
|
|
.nomad-digest-card {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.25rem;
|
|
padding: 0.9rem 1rem;
|
|
background: color-mix(in srgb, var(--bg-body) 55%, transparent);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
transition: transform 0.2s ease, border-color 0.2s ease;
|
|
}
|
|
.nomad-digest-card:hover {
|
|
transform: translateY(-2px);
|
|
border-color: color-mix(in srgb, var(--accent) 40%, transparent);
|
|
}
|
|
.nomad-digest-card strong {
|
|
font-size: 1.25rem;
|
|
}
|
|
.nomad-digest-card span {
|
|
font-size: 0.85rem;
|
|
}
|
|
.nomad-digest-card small {
|
|
font-size: 0.75rem;
|
|
color: var(--text-muted);
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
.nomad-digest-recent {
|
|
margin-top: 1rem;
|
|
}
|
|
.nomad-digest-recent > span {
|
|
display: block;
|
|
margin-bottom: 0.5rem;
|
|
font-size: 0.85rem;
|
|
color: var(--text-muted);
|
|
}
|
|
.nomad-digest-chips {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0.45rem;
|
|
}
|
|
.nomad-digest.compact {
|
|
margin: 1rem 0 0.25rem;
|
|
padding: 1rem 1.15rem;
|
|
}
|
|
.nomad-digest.compact h2 {
|
|
font-size: 1.05rem;
|
|
}
|
|
.nomad-digest.compact .section-desc {
|
|
margin-bottom: 0;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.plan-stop-links {
|
|
margin: 0.35rem 0 0.55rem;
|
|
}
|
|
.plan-city-meetup {
|
|
font-size: 0.85rem;
|
|
color: var(--accent);
|
|
text-decoration: none;
|
|
}
|
|
.plan-city-meetup:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.meetup-peers {
|
|
margin-top: 0.85rem;
|
|
padding-top: 0.75rem;
|
|
border-top: var(--border-glass);
|
|
}
|
|
.meetup-peers-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
margin-bottom: 0.5rem;
|
|
font-size: 0.9rem;
|
|
color: var(--text-muted);
|
|
}
|
|
.meetup-peers-list {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.4rem;
|
|
}
|
|
.meetup-peers-list li {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 0.5rem;
|
|
}
|
|
.meetup-peers-list a {
|
|
text-decoration: none;
|
|
color: inherit;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.1rem;
|
|
min-width: 0;
|
|
}
|
|
.meetup-peers-list strong {
|
|
font-size: 0.92rem;
|
|
}
|
|
.meetup-peers-list span {
|
|
font-size: 0.78rem;
|
|
color: var(--text-muted);
|
|
}
|
|
|
|
.live-exit {
|
|
padding: 1.25rem 0 2rem;
|
|
}
|
|
|
|
.watch-later-panel {
|
|
margin-bottom: 1.5rem;
|
|
padding: 1rem 1.15rem;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
}
|
|
.watch-later-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
.watch-later-head h2 {
|
|
margin: 0;
|
|
font-size: 1.05rem;
|
|
}
|
|
.watch-later-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.45rem;
|
|
}
|
|
.watch-later-chip {
|
|
display: grid;
|
|
grid-template-columns: auto 1fr auto;
|
|
gap: 0.65rem;
|
|
align-items: center;
|
|
padding: 0.65rem 0.85rem;
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
.watch-later-chip:hover {
|
|
border-color: color-mix(in srgb, var(--accent) 35%, transparent);
|
|
}
|
|
.watch-later-chip small {
|
|
color: var(--text-muted);
|
|
font-size: 0.75rem;
|
|
}
|
|
.video-card-wrap {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.75rem;
|
|
}
|
|
.video-card-wrap > a {
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
.video-card-wrap > .btn {
|
|
align-self: flex-start;
|
|
}
|
|
|
|
.saved-gigs-panel {
|
|
margin-bottom: 1.5rem;
|
|
padding: 1rem 1.15rem;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
}
|
|
.saved-gigs-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
.saved-gigs-head h2 {
|
|
margin: 0;
|
|
font-size: 1.05rem;
|
|
}
|
|
.saved-gigs-list {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0.5rem;
|
|
}
|
|
.saved-gig-chip {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.15rem;
|
|
padding: 0.55rem 0.8rem;
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
max-width: 220px;
|
|
}
|
|
.saved-gig-chip:hover {
|
|
border-color: color-mix(in srgb, var(--accent) 35%, transparent);
|
|
}
|
|
.saved-gig-chip small {
|
|
color: var(--text-muted);
|
|
font-size: 0.75rem;
|
|
}
|
|
.gig-card-top {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
gap: 0.75rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
.gig-card-top h3 {
|
|
margin: 0;
|
|
}
|
|
|
|
.saved-jobs-panel {
|
|
margin-bottom: 1.5rem;
|
|
padding: 1rem 1.15rem;
|
|
background: var(--bg-card);
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-lg);
|
|
}
|
|
.saved-jobs-head {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
.saved-jobs-head h2 {
|
|
margin: 0;
|
|
font-size: 1.05rem;
|
|
}
|
|
.saved-jobs-list {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0.5rem;
|
|
}
|
|
.saved-job-chip {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.15rem;
|
|
padding: 0.55rem 0.8rem;
|
|
border: var(--border-glass);
|
|
border-radius: var(--radius-md);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
max-width: 240px;
|
|
}
|
|
.saved-job-chip:hover {
|
|
border-color: color-mix(in srgb, var(--accent) 35%, transparent);
|
|
}
|
|
.saved-job-chip small {
|
|
color: var(--text-muted);
|
|
font-size: 0.75rem;
|
|
}
|
|
.jobs-toolbar {
|
|
margin-bottom: 1.25rem;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.75rem;
|
|
}
|