@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap');

body {
    font-family: 'Plus Jakarta Sans', sans-serif;
    background-color: #020617; /* Deepest Slate */
    color: #f8fafc;
}


.glass-nav {
    background: rgba(2, 6, 23, 0.8);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(16, 185, 129, 0.1);
}

.gradient-text {
    background: linear-gradient(135deg, #10b981 0%, #34d399 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.neon-liner {
    border: 1px solid rgba(16, 185, 129, 0.2);
    background: rgba(15, 23, 42, 0.6);
    transition: all 0.3s ease;
}

.neon-liner:hover {
    border-color: rgba(16, 185, 129, 0.5);
    box-shadow: 0 0 20px rgba(16, 185, 129, 0.05);
}

.gauge-container {
    position: relative;
    width: 170px; 
    height: 120px; 
}

.gauge-bg {
    fill: none;
    stroke: rgba(255, 255, 255, 0.05);
    stroke-width: 10;
    stroke-linecap: round;
}

.gauge-progress {
    fill: none;
    stroke: #10b981;
    stroke-width: 10;
    stroke-linecap: round;
    stroke-dasharray: 251.2;
    stroke-dashoffset: 251.2;
    transition: stroke-dashoffset 1.5s cubic-bezier(0.34, 1.56, 0.64, 1);
    transform: rotate(-180deg);
    transform-origin: center;
    filter: drop-shadow(0 0 5px rgba(16, 185, 129, 0.5));
}

.input-dark {
    background: #0f172a;
    border: 1px solid rgba(16, 185, 129, 0.1);
    color: white;
    transition: all 0.3s ease;
}

.input-dark:focus {
    border-color: #10b981;
    box-shadow: 0 0 15px rgba(16, 185, 129, 0.1);
    outline: none;
}

.btn-neon {
    background: #10b981;
    color: #020617;
    font-weight: 800;
    transition: all 0.3s ease;
}

.btn-neon:hover {
    background: #34d399;
    box-shadow: 0 0 25px rgba(16, 185, 129, 0.4);
    transform: translateY(-2px);
}

.results-panel {
    background: radial-gradient(circle at top right, rgba(16, 185, 129, 0.08), transparent);
    border: 1px solid rgba(16, 185, 129, 0.3);
}

/* --- MAXIMIZED BLOCK-BASED Animated Battery Styles --- */
.battery-shell {
    width: 320px; 
    height: 140px; 
    border: 6px solid rgba(16, 185, 129, 0.4);
    border-radius: 24px;
    position: relative;
    padding: 12px;
    display: flex;
    gap: 10px;
    box-shadow: 0 0 50px rgba(16, 185, 129, 0.2);
}
.battery-shell::after {
    content: '';
    position: absolute;
    right: -25px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 60px;
    background: rgba(16, 185, 129, 0.4);
    border-radius: 0 10px 10px 0;
}
.energy-block {
    flex: 1;
    height: 100%;
    background: #10b981;
    border-radius: 10px;
    opacity: 0;
    box-shadow: 0 0 25px rgba(16, 185, 129, 0.6);
}

.energy-block.active {
    animation: block-flicker 0.4s ease-in forwards;
}

@keyframes block-flicker {
    0% { opacity: 0; transform: scale(0.8); }
    50% { opacity: 0.5; }
    100% { opacity: 1; transform: scale(1); }
}

.charge-bolt {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #ffffff;
    font-size: 72px; 
    z-index: 20;
    text-shadow: 0 0 40px rgba(16, 185, 129, 1);
    animation: bolt-pulse 1.2s infinite ease-in-out;
}
@keyframes bolt-pulse {
    0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.9); }
    50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); }
}

/* Journey Styles */
.status-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #1e293b;
    transition: all 0.3s ease;
}
.status-dot.active {
    background: #10b981;
    box-shadow: 0 0 12px #10b981;
}

/* Reveal Animation for Breakdown Rows */
.reveal-row {
    opacity: 0;
    transform: translateY(12px);
    transition: all 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal-row.active {
    opacity: 1;
    transform: translateY(0);
}

/* Expectation Meter */
.preview-meter-block {
    width: 16px;
    height: 10px;
    background: #1e293b;
    border-radius: 4px;
    transition: all 0.3s ease;
}
.preview-meter-block.on {
    background: #10b981;
    box-shadow: 0 0 10px rgba(16, 185, 129, 0.6);
}