:root {
  --background: rgb(240, 240, 240);
  --foreground: rgb(51, 51, 51);
  --card: rgb(245, 245, 245);
  --card-foreground: rgb(51, 51, 51);
  --popover: rgb(245, 245, 245);
  --popover-foreground: rgb(51, 51, 51);
  --primary: rgb(96, 96, 96);
  --primary-foreground: rgb(255, 255, 255);
  --secondary: rgb(224, 224, 224);
  --secondary-foreground: rgb(51, 51, 51);
  --muted: rgb(217, 217, 217);
  --muted-foreground: rgb(102, 102, 102);
  --accent: rgb(192, 192, 192);
  --accent-foreground: rgb(51, 51, 51);
  --destructive: rgb(204, 51, 51);
  --destructive-foreground: rgb(255, 255, 255);
  --border: rgb(208, 208, 208);
  --input: rgb(224, 224, 224);
  --ring: rgb(96, 96, 96);
  --chart-1: rgb(96, 96, 96);
  --chart-2: rgb(71, 102, 102);
  --chart-3: rgb(144, 144, 144);
  --chart-4: rgb(168, 168, 168);
  --chart-5: rgb(192, 192, 192);
  --sidebar: rgb(234, 234, 234);
  --sidebar-foreground: rgb(51, 51, 51);
  --sidebar-primary: rgb(96, 96, 96);
  --sidebar-primary-foreground: rgb(255, 255, 255);
  --sidebar-accent: rgb(192, 192, 192);
  --sidebar-accent-foreground: rgb(51, 51, 51);
  --sidebar-border: rgb(208, 208, 208);
  --sidebar-ring: rgb(96, 96, 96);
  --font-sans: 'Noto Sans SC', Montserrat, sans-serif;
  --font-serif: Georgia, serif;
  --font-mono: 'Fira Code', monospace;
  --radius: 0.35rem;
  --shadow-x: 0px;
  --shadow-y: 2px;
  --shadow-blur: 0px;
  --shadow-spread: 0px;
  --shadow-opacity: 0.15;
  --shadow-color: hsl(0 0% 20% / 0.1);
  --shadow-2xs: 0px 2px 0px 0px hsl(0 0% 20% / 0.07);
  --shadow-xs: 0px 2px 0px 0px hsl(0 0% 20% / 0.07);
  --shadow-sm: 0px 2px 0px 0px hsl(0 0% 20% / 0.15), 0px 1px 2px -1px hsl(0 0% 20% / 0.15);
  --shadow: 0px 2px 0px 0px hsl(0 0% 20% / 0.15), 0px 1px 2px -1px hsl(0 0% 20% / 0.15);
  --shadow-md: 0px 2px 0px 0px hsl(0 0% 20% / 0.15), 0px 2px 4px -1px hsl(0 0% 20% / 0.15);
  --shadow-lg: 0px 2px 0px 0px hsl(0 0% 20% / 0.15), 0px 4px 6px -1px hsl(0 0% 20% / 0.15);
  --shadow-xl: 0px 2px 0px 0px hsl(0 0% 20% / 0.15), 0px 8px 10px -1px hsl(0 0% 20% / 0.15);
  --shadow-2xl: 0px 2px 0px 0px hsl(0 0% 20% / 0.38);
  --tracking-normal: 0em;
  --spacing: 0.25rem;
}

.dark {
  --background: rgb(26, 26, 26);
  --foreground: rgb(217, 217, 217);
  --card: rgb(32, 32, 32);
  --card-foreground: rgb(217, 217, 217);
  --popover: rgb(32, 32, 32);
  --popover-foreground: rgb(217, 217, 217);
  --primary: rgb(160, 160, 160);
  --primary-foreground: rgb(26, 26, 26);
  --secondary: rgb(48, 48, 48);
  --secondary-foreground: rgb(217, 217, 217);
  --muted: rgb(42, 42, 42);
  --muted-foreground: rgb(128, 128, 128);
  --accent: rgb(64, 64, 64);
  --accent-foreground: rgb(217, 217, 217);
  --destructive: rgb(224, 102, 102);
  --destructive-foreground: rgb(255, 255, 255);
  --border: rgb(53, 53, 53);
  --input: rgb(48, 48, 48);
  --ring: rgb(160, 160, 160);
  --chart-1: rgb(160, 160, 160);
  --chart-2: rgb(126, 156, 160);
  --chart-3: rgb(112, 112, 112);
  --chart-4: rgb(88, 88, 88);
  --chart-5: rgb(64, 64, 64);
  --sidebar: rgb(31, 31, 31);
  --sidebar-foreground: rgb(217, 217, 217);
  --sidebar-primary: rgb(160, 160, 160);
  --sidebar-primary-foreground: rgb(26, 26, 26);
  --sidebar-accent: rgb(64, 64, 64);
  --sidebar-accent-foreground: rgb(217, 217, 217);
  --sidebar-border: rgb(53, 53, 53);
  --sidebar-ring: rgb(160, 160, 160);
}

body {
    background-color: var(--background);
    color: var(--foreground);
    font-family: var(--font-sans);
    margin: 0;
    height: 100vh;
    overflow: hidden;
}

.app-layout {
    display: flex;
    height: 100%;
}

/* --- Sidebar Styles --- */
.sidebar {
    width: 280px;
    background-color: var(--sidebar);
    border-right: 1px solid var(--border);
    padding: 1.5rem 0;
    display: flex;
    flex-direction: column;
}

.sidebar-header {
    padding: 0 1.5rem;
    margin-bottom: 1rem;
}

.sidebar-header h2 {
    margin: 0;
    font-size: 1.5rem;
    color: var(--primary);
}

#city-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

#city-list li button {
    width: 100%;
    padding: 1rem 1.5rem;
    font-size: 1.1rem;
    font-family: var(--font-sans);
    text-align: left;
    border: none;
    background-color: transparent;
    color: var(--sidebar-foreground);
    cursor: pointer;
    transition: background-color 0.2s ease;
}

#city-list li button:hover {
    background-color: var(--sidebar-accent);
}

#city-list li button.active {
    background-color: var(--primary);
    color: var(--primary-foreground);
    font-weight: 500;
}


/* --- Main Content Styles --- */
.main-content {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 2rem;
}

.current-city-name {
    font-size: 5rem;
    font-weight: 700;
    color: var(--primary);
    margin: 0;
}

.current-date {
    font-size: 1.75rem;
    color: var(--muted-foreground);
    margin: 0.5rem 0 2rem 0;
}

.current-time {
    font-size: 10rem;
    font-weight: 700;
    font-family: var(--font-mono);
    line-height: 1;
    color: var(--foreground);
    margin: 0;
}

/* Responsive Design for smaller screens */
@media (max-width: 768px) {
    .app-layout {
        flex-direction: column;
    }

    .sidebar {
        width: 100%;
        height: auto;
        border-right: none;
        border-bottom: 1px solid var(--border);
    }
    
    .current-city-name {
        font-size: 3rem;
    }
    .current-date {
        font-size: 1.2rem;
    }
    .current-time {
        font-size: 5rem;
    }
}
