        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
            font-family: Arial, sans-serif;
        }

        body {
            padding: 20px;
            background-color: #f5f5f5;
        }

        h1 {
            text-align: center;
            margin-bottom: 20px;
            color: #333;
        }

        .calendar-container {
            display: flex;
            max-width: 1000px;
            margin: 0 auto;
            border: 1px solid #ddd;
            border-radius: 8px;
            overflow: hidden;
            background-color: white;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }

        .column {
            display: flex;
            flex-direction: column;
            flex: 1;
        }

        .months-column {
            border-right: 1px solid #ddd;
        }

        .seasons-column {
            border-right: 1px solid #ddd;
        }

        .header {
            background-color: #3a7bd5;
            color: white;
            padding: 15px 10px;
            font-weight: bold;
            text-align: center;
            border-bottom: 1px solid #ddd;
            flex: none; /* Don't grow or shrink */
        }

        .month {
            padding: 15px 10px;
            border-bottom: 1px solid #eee;
            display: flex;
            align-items: center;
            justify-content: center;
            flex: 1;
        }

        /* Season groupings */
        .winter-part1 { /* Dec 21-31 */
            flex: 0.33;
        }
        
        .winter-part2 { /* Jan, Feb, Mid-Mar */
            flex: 2.5;
        }
        
        .spring { /* Mid-Mar to Mid-Jun */
            flex: 3;
        }
        
        .summer { /* Mid-Jun to Mid-Sep */
            flex: 3;
        }
        
        .fall { /* Mid-Sep to Dec 20 */
            flex: 3.17;
        }

        .season-container {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            text-align: center;
            font-weight: bold;
        }

        .sub-season {
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            padding: 10px;
            width: 100%;
        }

        /* Season Colors */
        .winter-bg { background-color: #e0f7fa; color: #006064; }
        .spring-bg { background-color: #e8f5e9; color: #2e7d32; }
        .summer-bg { background-color: #fff9c4; color: #f57f17; }
        .fall-bg { background-color: #ffebee; color: #b71c1c; }
        
        /* Sub-season variations */
        .early-winter { background-color: #b2ebf2; color: #006064; }
        .mid-winter { background-color: #e0f7fa; color: #006064; }
        .late-winter { background-color: #bbdefb; color: #0d47a1; }
        
        .early-spring { background-color: #c8e6c9; color: #2e7d32; }
        .mid-spring { background-color: #e8f5e9; color: #2e7d32; }
        .late-spring { background-color: #dcedc8; color: #33691e; }
        
        .early-summer { background-color: #f0f4c3; color: #827717; }
        .mid-summer { background-color: #fff9c4; color: #f57f17; flex: 2; }
        .late-summer { background-color: #ffe0b2; color: #e65100; }
        
        .early-fall { background-color: #ffccbc; color: #bf360c; }
        .mid-fall { background-color: #ffcdd2; color: #b71c1c; }
        .late-fall { background-color: #d1c4e9; color: #4527a0; }
