/* Theme-specific CSS for Design Lab */
/* Special effects, animations, and theme-specific layout adjustments */

:root {
    --radius-control: 0.625rem;
    --radius-base: 0.75rem;
    --radius-card: 1rem;
    --radius-surface: 1.25rem;
    --radius-sidebar: 1.5rem;
}

.theme-rounded-xs {
    border-radius: var(--radius-control);
}

.theme-rounded-sm {
    border-radius: var(--radius-base);
}

.theme-rounded-lg {
    border-radius: var(--radius-card);
}

.theme-rounded-xl {
    border-radius: var(--radius-surface);
}

.theme-rounded-sidebar {
    border-radius: var(--radius-sidebar);
}

.theme-rounded-sidebar-left {
    border-top-left-radius: var(--radius-sidebar);
    border-bottom-left-radius: var(--radius-sidebar);
}

.theme-rounded-sidebar-right {
    border-top-right-radius: var(--radius-sidebar);
    border-bottom-right-radius: var(--radius-sidebar);
}

[data-theme-rounded-controls="true"] :where(button, input, select, textarea) {
    border-radius: var(--radius-control);
}

[data-theme-rounded-utilities="true"] :where(.rounded, .rounded-sm, .rounded-md) {
    border-radius: var(--radius-base);
}

[data-theme-rounded-utilities="true"] :where(.rounded-lg, .rounded-xl, .rounded-2xl, .rounded-3xl) {
    border-radius: var(--radius-card);
}

body {
    padding: var(--theme-body-padding, 0);
}

header {
    padding: var(--theme-header-padding, 0);
    backdrop-filter: var(--theme-header-backdrop, none);
    z-index: 20;
}

.content-wrapper {
    background: var(--theme-content-wrapper-bg, transparent);
    backdrop-filter: var(--theme-content-wrapper-backdrop, none);
    box-shadow: var(--theme-content-wrapper-shadow, none);
    height: var(--theme-content-wrapper-height, auto);
}

aside {
    background: var(--theme-aside-bg, var(--bg-alt));
    backdrop-filter: var(--theme-aside-backdrop, none);
    padding: var(--theme-aside-padding, 0);
    gap: var(--theme-aside-gap, 0);
}

main {
    padding: var(--theme-main-padding, 0);
    background: var(--theme-main-bg, var(--main-bg));
}

header .logo {
    transform: scale(var(--theme-logo-scale, 1));
}

[data-theme-header-centered="true"] header {
    justify-content: center !important;
    text-align: center;
}

[data-theme-logo-centered="true"] header .logo {
    margin-left: auto;
    margin-right: auto;
}

[data-theme-elevated-controls="true"] :where(button, input, select) {
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
}

[data-theme-elevated-controls="true"] button:hover {
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.06);
    transform: translateY(-1px);
}

[data-theme-borderless-panels="true"] aside button,
[data-theme-borderless-panels="true"] main>div>div>div {
    border: none;
}

[data-theme-main-inner-constrained="true"] main>div>div {
    max-width: var(--theme-main-inner-max-width, 56rem);
    margin-left: auto;
    margin-right: auto;
}

[data-theme-aside-buttons-tight="true"] aside button {
    padding: var(--theme-aside-button-padding, inherit);
    font-size: var(--theme-aside-button-font-size, inherit);
}

[data-theme-typography-h2="true"] h2 {
    font-size: var(--theme-h2-font-size);
    font-weight: var(--theme-h2-font-weight);
    margin-bottom: var(--theme-h2-margin-bottom);
}

/* Responsive variants */
@media (min-width: 768px) {

    .md\:theme-rounded-xs {
        border-radius: var(--radius-control);
    }

    .md\:theme-rounded-sm {
        border-radius: var(--radius-base);
    }

    .md\:theme-rounded-lg {
        border-radius: var(--radius-card);
    }

    .md\:theme-rounded-xl {
        border-radius: var(--radius-surface);
    }

    .md\:theme-rounded-sidebar {
        border-radius: var(--radius-sidebar);
    }

    .md\:theme-rounded-sidebar-left {
        border-top-left-radius: var(--radius-sidebar);
        border-bottom-left-radius: var(--radius-sidebar);
    }

    .md\:theme-rounded-sidebar-right {
        border-top-right-radius: var(--radius-sidebar);
        border-bottom-right-radius: var(--radius-sidebar);
    }
}

/* === TERMINAL THEME === */
.theme-terminal {
    position: relative;
}

.theme-terminal::before {
    content: '';
    position: fixed;
    inset: 0;
    background: repeating-linear-gradient(0deg, rgba(0, 255, 0, 0.03) 0px, transparent 1px, transparent 2px, rgba(0, 255, 0, 0.03) 3px);
    pointer-events: none;
    z-index: 1;
    animation: scanline 8s linear infinite;
}

@keyframes scanline {
    0% {
        transform: translateY(0);
    }

    100% {
        transform: translateY(10px);
    }
}

.theme-terminal .content-wrapper {
    position: relative;
    z-index: 2;
}

.theme-terminal .text-flicker {
    animation: flicker 0.15s infinite alternate;
}

@keyframes flicker {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.95;
    }
}

/* === BRUTALIST THEME === (Variables now in THEME_CONFIG_V2) === */

.theme-brutalist .bg-pattern {
    background-image:
        repeating-linear-gradient(0deg, transparent, transparent 50px, #f0f0f0 50px, #f0f0f0 51px),
        repeating-linear-gradient(90deg, transparent, transparent 50px, #f0f0f0 50px, #f0f0f0 51px);
}

.theme-brutalist .card-brutalist {
    border: 4px solid #000000;
    box-shadow: 8px 8px 0 rgba(0, 0, 0, 1);
    transition: transform 0.2s, box-shadow 0.2s;
}

.theme-brutalist .card-brutalist:hover {
    transform: translate(-2px, -2px);
    box-shadow: 12px 12px 0 rgba(0, 0, 0, 1);
}

/* === ART DECO THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-deco {
    position: relative;
}

.theme-deco::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image:
        repeating-linear-gradient(0deg, transparent 0px, rgba(212, 175, 55, 0.03) 1px, transparent 2px, transparent 20px),
        repeating-linear-gradient(90deg, transparent 0px, rgba(212, 175, 55, 0.03) 1px, transparent 2px, transparent 20px);
    pointer-events: none;
}

.theme-deco .deco-border {
    border-image: linear-gradient(135deg, #d4af37 0%, #ffd700 50%, #d4af37 100%) 1;
    border-width: 2px;
    border-style: solid;
}

.theme-deco h1,
.theme-deco h2,
.theme-deco h3 {
    font-style: italic;
    letter-spacing: 0.05em;
}

/* === CYBERPUNK THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-cyber {
    position: relative;
}

.theme-cyber::before {
    content: '';
    position: fixed;
    inset: 0;
    background:
        radial-gradient(circle at 20% 50%, rgba(255, 0, 255, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(0, 240, 255, 0.1) 0%, transparent 50%);
    pointer-events: none;
}

.theme-cyber .cyber-glitch {
    position: relative;
}

.theme-cyber .cyber-glitch:hover::before,
.theme-cyber .cyber-glitch:hover::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.theme-cyber .cyber-glitch:hover::before {
    animation: glitch-1 0.3s infinite;
    color: #ff00ff;
    z-index: -1;
}

.theme-cyber .cyber-glitch:hover::after {
    animation: glitch-2 0.3s infinite;
    color: #00f0ff;
    z-index: -2;
}

@keyframes glitch-1 {

    0%,
    100% {
        transform: translate(0);
    }

    33% {
        transform: translate(-2px, 2px);
    }

    66% {
        transform: translate(2px, -1px);
    }
}

@keyframes glitch-2 {

    0%,
    100% {
        transform: translate(0);
    }

    33% {
        transform: translate(2px, -2px);
    }

    66% {
        transform: translate(-2px, 1px);
    }
}

/* === NORDIC THEME === (Variables now in THEME_CONFIG_V2) === */

.theme-nordic .glass-effect {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

@keyframes fadeSlideIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.theme-nordic .animate-in {
    animation: fadeSlideIn 0.6s ease-out forwards;
}

/* === RETRO THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-retro {
    position: relative;
}

.theme-retro::after {
    content: '';
    position: fixed;
    inset: 0;
    background:
        radial-gradient(circle at 30% 30%, rgba(255, 182, 193, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 70% 70%, rgba(255, 107, 157, 0.1) 0%, transparent 50%);
    pointer-events: none;
}

.theme-retro .crt-effect {
    position: relative;
    animation: crt-flicker 0.2s infinite;
}

@keyframes crt-flicker {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.98;
    }
}

/* === SYNTHWAVE THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-synthwave {
    position: relative;
}

.theme-synthwave::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image:
        linear-gradient(0deg, transparent 24%, rgba(255, 0, 255, 0.05) 25%, rgba(255, 0, 255, 0.05) 26%, transparent 27%, transparent 74%, rgba(0, 255, 255, 0.05) 75%, rgba(0, 255, 255, 0.05) 76%, transparent 77%, transparent),
        linear-gradient(90deg, transparent 24%, rgba(255, 0, 255, 0.05) 25%, rgba(255, 0, 255, 0.05) 26%, transparent 27%, transparent 74%, rgba(0, 255, 255, 0.05) 75%, rgba(0, 255, 255, 0.05) 76%, transparent 77%, transparent);
    background-size: 50px 50px;
    pointer-events: none;
}

.theme-synthwave .neon-glow {
    text-shadow: 0 0 10px currentColor, 0 0 20px currentColor;
}

/* === NEWSPAPER THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-newspaper {
    position: relative;
}

.theme-newspaper::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image: repeating-linear-gradient(0deg, transparent, transparent 1px, rgba(0, 0, 0, 0.02) 1px, rgba(0, 0, 0, 0.02) 2px);
    pointer-events: none;
}

.theme-newspaper h1,
.theme-newspaper h2,
.theme-newspaper h3 {
    text-transform: uppercase;
    letter-spacing: -0.02em;
}

/* === CHALKBOARD THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-chalkboard {
    position: relative;
}

.theme-chalkboard::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image:
        radial-gradient(ellipse at top left, rgba(255, 255, 255, 0.02), transparent),
        radial-gradient(ellipse at bottom right, rgba(255, 255, 255, 0.02), transparent);
    pointer-events: none;
}

.theme-chalkboard * {
    font-weight: 700 !important;
}

/* === BLUEPRINT THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-blueprint {
    position: relative;
}

.theme-blueprint::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image:
        repeating-linear-gradient(0deg, transparent 0px, rgba(255, 255, 255, 0.05) 1px, transparent 2px, transparent 10px),
        repeating-linear-gradient(90deg, transparent 0px, rgba(255, 255, 255, 0.05) 1px, transparent 2px, transparent 10px);
    pointer-events: none;
}

.theme-blueprint * {
    letter-spacing: 0.05em;
}

/* === NEON TOKYO THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-neon-tokyo {
    position: relative;
}

.theme-neon-tokyo::after {
    content: '';
    position: fixed;
    inset: 0;
    background:
        radial-gradient(ellipse at 20% 30%, rgba(255, 23, 68, 0.15) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 70%, rgba(0, 229, 255, 0.15) 0%, transparent 50%);
    pointer-events: none;
}

.theme-neon-tokyo .neon-text {
    text-shadow: 0 0 5px currentColor, 0 0 15px currentColor, 0 0 30px currentColor;
}

/* === GAMEBOY THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-gameboy {
    position: relative;
    image-rendering: pixelated;
}

.theme-gameboy::before {
    content: '';
    position: fixed;
    inset: 0;
    background:
        repeating-linear-gradient(0deg, transparent 0px, rgba(155, 188, 15, 0.03) 1px, transparent 2px, transparent 4px),
        repeating-linear-gradient(90deg, transparent 0px, rgba(155, 188, 15, 0.03) 1px, transparent 2px, transparent 4px);
    pointer-events: none;
}

.theme-gameboy * {
    font-weight: 400 !important;
}

/* === VAPORWAVE THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-vaporwave {
    position: relative;
}

.theme-vaporwave::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image: repeating-linear-gradient(0deg, transparent 0%, rgba(255, 255, 255, 0.05) 50%, transparent 100%);
    background-size: 100% 4px;
    pointer-events: none;
    animation: vaporScroll 20s linear infinite;
}

@keyframes vaporScroll {
    0% {
        background-position: 0 0;
    }

    100% {
        background-position: 0 100px;
    }
}

/* === HACKER THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-hacker {
    position: relative;
}

.theme-hacker::after {
    content: 'ACCESS GRANTED';
    position: fixed;
    top: 20px;
    right: 20px;
    color: var(--accent);
    font-size: 10px;
    opacity: 0.3;
    font-family: 'Major Mono Display', monospace;
    pointer-events: none;
    animation: blink 2s infinite;
}

@keyframes blink {

    0%,
    49%,
    51%,
    100% {
        opacity: 0.3;
    }

    50% {
        opacity: 0;
    }
}

/* === MIDNIGHT THEME === (Variables now in THEME_CONFIG_V2) === */

/* === SUNSET THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-sunset {
    position: relative;
}

.theme-sunset::before {
    content: '';
    position: fixed;
    inset: 0;
    background: radial-gradient(ellipse at bottom, rgba(255, 107, 107, 0.2) 0%, transparent 60%);
    pointer-events: none;
}

/* === INDUSTRIAL THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-industrial {
    position: relative;
}

.theme-industrial::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image:
        repeating-linear-gradient(90deg, transparent 0px, rgba(255, 140, 0, 0.02) 1px, transparent 2px, transparent 100px);
    pointer-events: none;
}

/* === FOREST THEME === (Variables now in THEME_CONFIG_V2) === */

/* === LUXURY THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-luxury {
    position: relative;
}

.theme-luxury::before {
    content: '';
    position: fixed;
    inset: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(212, 175, 55, 0.05) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(212, 175, 55, 0.05) 0%, transparent 50%);
    pointer-events: none;
}

/* === PASTEL THEME === (Variables now in THEME_CONFIG_V2) === */

/* === GRUNGE THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-grunge {
    position: relative;
}

.theme-grunge::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><filter id="noise"><feTurbulence baseFrequency="0.9" /></filter><rect width="200" height="200" filter="url(%23noise)" opacity="0.05"/></svg>');
    pointer-events: none;
}

/* === NEON NOIR THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-neon-noir {
    position: relative;
}

.theme-neon-noir::after {
    content: '';
    position: fixed;
    inset: 0;
    background:
        radial-gradient(ellipse at 30% 40%, rgba(255, 0, 110, 0.15) 0%, transparent 40%),
        radial-gradient(ellipse at 70% 60%, rgba(0, 255, 255, 0.1) 0%, transparent 40%);
    pointer-events: none;
}

/* === AMBER TERMINAL THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-amber {
    position: relative;
}

.theme-amber::before {
    content: '';
    position: fixed;
    inset: 0;
    background: repeating-linear-gradient(0deg, transparent 0px, rgba(255, 176, 0, 0.03) 1px, transparent 2px, transparent 3px);
    pointer-events: none;
    animation: scanline 8s linear infinite;
}

/* === COSMIC THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-cosmic {
    position: relative;
}

.theme-cosmic::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image:
        radial-gradient(2px 2px at 20% 30%, white, transparent),
        radial-gradient(2px 2px at 60% 70%, white, transparent),
        radial-gradient(1px 1px at 50% 50%, white, transparent),
        radial-gradient(1px 1px at 80% 10%, white, transparent),
        radial-gradient(2px 2px at 90% 60%, white, transparent),
        radial-gradient(1px 1px at 33% 50%, white, transparent),
        radial-gradient(1px 1px at 66% 90%, white, transparent);
    background-size: 200% 200%;
    opacity: 0.5;
    pointer-events: none;
}

/* === CUTE THEME === (Variables now in THEME_CONFIG_V2) === */
.theme-cute {
    position: relative;
}

.theme-cute::before {
    content: '';
    position: fixed;
    inset: 0;
    background:
        radial-gradient(circle at 20% 20%, rgba(122, 178, 221, 0.08) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(144, 200, 239, 0.06) 0%, transparent 50%);
    pointer-events: none;
}

/* === UNIFIED WINDOW MODE (can be applied to any theme) === */
.unified-window {
    padding: 2rem !important;
}


.unified-window .content-wrapper {

    background: var(--bg-alt) !important;
    border-radius: var(--radius-surface, 24px);
    box-shadow:
        0 10px 30px rgba(0, 0, 0, 0.1),
        0 4px 8px rgba(0, 0, 0, 0.05),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.unified-window aside {
    opacity: 0.95;
}

.unified-window header {
    opacity: 0.95;
}

/* === SECTION BORDERS CONTROL === */
/* Subtle borders (default) - low opacity */
header,
aside {
    border-color: color-mix(in srgb, var(--text-dim) 50%, transparent);
}

/* When borders are set to visible, make them more prominent */
.border-opacity-100 {
    border-opacity: 1 !important;
}

/* === MAIN CONTENT STYLING === */
main {
    border-radius: 16px;
    margin: 0.5rem;
}

/* === CALC STYLE VARIANTS === */

/* Base calc holder - ensure it uses pure background color for visual hierarchy */
#calc-holder {
    background: var(--bg) !important;
}

/* Built-in calc mode - merges calc into background, no visual separation */
.calc-built-in main {
    border-radius: 0;
    box-shadow: none !important;
    margin: 0 !important;
    background: transparent !important;
}

.calc-built-in #calc-holder {
    box-shadow: none !important;
}

/* === CALC META POSITION VARIANTS === */

/* Inline (default) - naturally positioned below calc */
.calc-meta-inline #calc-meta-holder {
    position: relative;
}

/* Bottom Bar - fixed to viewport bottom like mobile nav */
.calc-meta-bottom-bar #calc-meta-holder {
    position: fixed;
    bottom: 0;
    left: 320px;
    right: 0;
    z-index: 40;
    background: var(--bg-alt);
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    padding: 0.75rem 1rem;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
}

.calc-meta-bottom-bar main {
    padding-bottom: 5rem !important;
    /* Space for fixed bottom bar */
}

/* Top Bar - fixed to viewport top like menu bar */
.calc-meta-top-bar #calc-meta-holder {
    position: fixed;
    top: 0;
    left: 320px;
    right: 0;
    z-index: 40;
    background: var(--bg-alt);
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    padding: 0.75rem 1rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.calc-meta-top-bar main {
    padding-top: 5rem !important;
    /* Space for fixed top bar */
}

/* Sidebar Left */
.calc-meta-sidebar-left #calc-meta-holder {
    position: fixed;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 40;
    background: var(--bg-alt);
    border-right: 1px solid rgba(0, 0, 0, 0.1);
    padding: 1rem 0.75rem;
    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Sidebar Right */
.calc-meta-sidebar-right #calc-meta-holder {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 40;
    background: var(--bg-alt);
    border-left: 1px solid rgba(0, 0, 0, 0.1);
    padding: 1rem 0.75rem;
    box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Make toolbar buttons stack vertically in sidebar modes */
.calc-meta-sidebar-left #calc-meta-holder>div,
.calc-meta-sidebar-right #calc-meta-holder>div {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.calc-meta-sidebar-left #calc-meta-holder button,
.calc-meta-sidebar-right #calc-meta-holder button {
    writing-mode: horizontal-tb;
    min-width: 2.5rem;
}

/* === MOBILE RESPONSIVE STYLES === */
@media (max-width: 768px) {

    /* Hide header on mobile */
    header {
        display: none !important;
    }

    /* Hide sidebar by default on mobile */
    aside {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        width: 80% !important;
        max-width: 320px !important;
        z-index: 100 !important;
        transform: translateX(-100%) !important;
        transition: transform 0.3s ease-in-out !important;
    }

    aside.mobile-open {
        transform: translateX(0) !important;
    }

    /* Mobile overlay for sidebar */
    .mobile-sidebar-overlay {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.5);
        z-index: 99;
    }

    .mobile-sidebar-overlay.active {
        display: block;
    }

    /* Main content full width on mobile */
    .content-wrapper {
        flex-direction: column !important;
    }

    main {
        margin: 0 !important;
        border-radius: 0;
        padding-bottom: 80px !important;
        /* Space for bottom nav */
    }

    /* Adjust main content for mobile */
    main .p-8 {
        padding: 1rem !important;
    }

    main h2 {
        font-size: 1.5rem !important;
    }

    /* Config panel full screen on mobile */
    .fixed.rounded-lg.shadow-2xl.z-50.w-72 {
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        max-height: 100vh !important;
        transform: none !important;
        border-radius: 0;
    }

    /* Onboarding welcome card on mobile */
    .fixed.z-50[x-show*="showWelcome"] {
        left: 1rem !important;
        right: 1rem !important;
        transform: none !important;
        max-width: calc(100% - 2rem) !important;
    }
}

[x-cloak] {
    display: none !important;
}

.bg-default {
    background-color: var(--calc-bg-color);
}

@media (min-width: 1024px) {
    .lg\:bg-default {
        background-color: var(--calc-bg-color);
    }
}

.bg-secondary {
    background-color: var(--secondary-bg-color);
}

.hover-bg-button:hover {
    background-color: var(--button-bg-color-hover);
}

.text-color-default {
    color: var(--text);
}

.text-color-calc {
    color: var(--calc-color);
}

.text-color-active {
    color: var(--tab-active-color);
}

.text-color-highlight {
    color: var(--highlight-text-color);
}

.hover-text-color-active:hover {
    color: var(--tab-active-color);
}

@media (prefers-color-scheme: dark) {
    .dark\:bg-gray-800 {
        background-color: var(--secondary-bg-color) !important;
    }

    .dark\:border-gray-700 {
        border-color: color-mix(in srgb, var(--border-color) 50%, transparent) !important;
    }

    .dark\:divide-gray-700>*+* {
        border-color: color-mix(in srgb, var(--border-color) 50%, transparent) !important;
    }
}

#design-lab-calc-list {
    color: var(--text);
}

#design-lab-calc-list input[type="search"],
#design-lab-calc-list .search-box {
    display: none;
}

#design-lab-calc-list .calcs-list {
    display: flex;
    flex-direction: column;
    gap: 1px;
    list-style: none;
    margin: 0;
    padding: 0;
}

#design-lab-calc-list .calc-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0;
    padding: 0;
    background: transparent;
}

#design-lab-calc-list .calclist-item {
    width: 100%;
    text-align: left;
    border: none;
    background: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    padding: 0.375rem 0.75rem;
    border-radius: var(--radius-base);
    transition: transform 150ms ease-out, background-color 150ms ease-out, color 150ms ease-out;
}

#design-lab-calc-list .calclist-item:hover {
    opacity: 0.8;
}

#design-lab-calc-list .calc-item:not(.selected):hover .calclist-item {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    transform: translateX(2px);
}

#design-lab-calc-list .calc-item date {
    color: var(--text-dim);
    font-size: 0.75rem;
    transition: opacity 150ms ease-out;
}

#design-lab-calc-list details summary {
    color: var(--text);
    font-size: 0.75rem;
    font-weight: 500;
    padding: 0.375rem 0.75rem;
    cursor: pointer;
    transition: opacity 150ms ease-out;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

#design-lab-calc-list details summary:hover {
    opacity: 0.7;
}

#design-lab-calc-list details[open]>ul,
#design-lab-calc-list details[open]>div {
    padding-left: 1.5rem;
    margin-left: 0.75rem;
    border-left: 1px solid var(--text-dim);
    opacity: 0.85;
}

.text-theme {
    color: var(--text);
}

.text-theme-dim {
    color: var(--text-dim);
}

.bg-theme-bg {
    background-color: var(--bg);
}

.bg-theme-bg-alt {
    background-color: var(--bg-alt);
}

.bg-accent {
    background-color: var(--accent);
}

.text-bg {
    color: var(--bg);
}

.border-accent {
    border-color: var(--accent);
}

.bg-theme-header-bg {
    background: var(--theme-header-bg, var(--bg-alt));
}


