
/* ============================================================
   THEME VARIABLES
   Each theme overrides only the color/layout tokens below.
   All actual CSS rules live once, at the bottom of this file.
   ============================================================ */

/* ---- Normal (default) ---- */
:root,
[data-theme="normal"] {
    --theme-body-bg:      #fff;

    --theme-names-bg:     #f4f6ff;
    --theme-names-color:  #333;

    --theme-weekday-bg:   transparent;
    --theme-weekday-color:#333;

    --theme-holiday-bg:   #EEF2FF;

    --theme-month-bg:     #F4F6FF;
    --theme-month-color:  #333;
    --theme-month-align:  center;
    --theme-month-pl:     0px;
    --theme-month-radius: 999px;
    --theme-month-mb:     2px;

    --theme-year-bg:      #000000;
    --theme-year-color:   #ffffff;

    --theme-today-bg:     #5e5e5e;
    --theme-today-color:  #ffffff;

    --theme-mouseover-bg: rgb(240, 245, 250);

    --theme-border-color: #d6def2;

    --theme-btn-bg:       #c3d8f7;
    --theme-btn-hover-bg: #8faeed;
    --theme-btn-color:    #333;

    --theme-top-nav-bg:   #A9BCF5;
    --theme-icon-filter:  none;
}


[data-theme="classic"] {
    --theme-body-bg:      #ffffff;

    --theme-names-bg:     #D9E2F8;
    --theme-names-color:  #000000;

    --theme-weekday-bg:   #D9E2F8;
    --theme-weekday-color:#000000;

    --theme-holiday-bg:   #FFFFCC;

    --theme-month-bg:     #B7C5E4;
    --theme-month-color:  #000000;
    --theme-month-align:  left;
    --theme-month-pl:     13px;
    --theme-month-radius: 0px;
    --theme-month-mb:     0px;

    --theme-year-bg:      #B7C5E4;
    --theme-year-color:   #000000;

    --theme-today-bg:     #B8C9D8;
    --theme-today-color:  #000000;

    --theme-mouseover-bg: #EAF0FF;

    --theme-border-color: #7F7F7F;

    --theme-btn-bg:       #D9E2F8;
    --theme-btn-hover-bg: #B7C5E4;
    --theme-btn-color:    #000000;

    --theme-top-nav-bg:   #A9BCF5;
    --theme-icon-filter:  none;
}

/* ---- Blue/Gray ---- */
[data-theme="bluegray"] {
    --theme-body-bg:      #a6d9fc;

    --theme-names-bg:     #6d81a6;
    --theme-names-color:  #ffffff;

    --theme-weekday-bg:   #52647e;
    --theme-weekday-color:#ffffff;

    --theme-holiday-bg:   #ffff99;

    --theme-month-bg:     #444444;
    --theme-month-color:  #000000;
    --theme-month-align:  left;
    --theme-month-pl:     13px;
    --theme-month-radius: 0px;
    --theme-month-mb:     0px;

    --theme-year-bg:      #123960;
    --theme-year-color:   #ffffff;

    --theme-mouseover-bg: #969DA7;

    --theme-border-color: #7090b0;

    --theme-btn-bg:       #6d81a6;
    --theme-btn-hover-bg: #52647e;
    --theme-btn-color:    #ffffff;

    --theme-top-nav-bg:   #b6c0d2;
    --theme-icon-filter:  saturate(0.73) brightness(0.86);
}



[data-theme="pink"] {
    --theme-body-bg:      #FFF7FB;

    --theme-names-bg:     #E9C7DA;
    --theme-names-color:  #4F2D3D;

    --theme-weekday-bg:   #F6E3EC;
    --theme-weekday-color:#6A4053;

    --theme-holiday-bg:   #FDEFF5;

    --theme-month-bg:     #D88FB3;
    --theme-month-color:  #4A2437;
    --theme-month-align:  center;
    --theme-month-pl:     0px;
    --theme-month-radius: 999px;
    --theme-month-mb:     2px;

    --theme-year-bg:      #A85D7F;
    --theme-year-color:   #ffffff;

    --theme-today-bg:     #DFA3C0;
    --theme-today-color:  #ffffff;

    --theme-mouseover-bg: #F9E8F1;

    --theme-border-color: #E7BDD0;

    --theme-btn-bg:       #DFA3C0;
    --theme-btn-hover-bg: #C97FA6;
    --theme-btn-color:    #4A2437;

    --theme-top-nav-bg:   #E6B7CD;
    --theme-icon-filter:  hue-rotate(83deg) saturate(3) brightness(0.62);
}


/* ---- Blue ---- */
[data-theme="blue"] {
    --theme-body-bg:      #F2F7F9;

    --theme-names-bg:     #CDE3EA;
    --theme-names-color:  #123E4A;

    --theme-weekday-bg:   #E3F0F4;
    --theme-weekday-color:#1A4F5C;

    --theme-holiday-bg:   #EAF6FA;

    --theme-month-bg:     #045876;
    --theme-month-color:  #333;
    --theme-month-align:  center;
    --theme-month-pl:     0px;
    --theme-month-radius: 999px;
    --theme-month-mb:     2px;

    --theme-year-bg:      #165764;
    --theme-year-color:   #ffffff;

    --theme-today-bg:     #0B3F4A;
    --theme-today-color:  #ffffff;

    --theme-mouseover-bg: #E0EFF4;

    --theme-border-color: #BFD6DE;

    --theme-btn-bg:       #2F7F96;
    --theme-btn-hover-bg: #045876;
    --theme-btn-color:    #ffffff;

    --theme-top-nav-bg:   #165764;
    --theme-icon-filter:  hue-rotate(339deg) saturate(3) brightness(0.67);
}




/* ---- Green ---- */
[data-theme="green"] {
    --theme-body-bg:      #F4FAF5;

    --theme-names-bg:     #CFE8D1;
    --theme-names-color:  #2F4F34;

    --theme-weekday-bg:   #E6F3E8;
    --theme-weekday-color:#3E5F44;

    --theme-holiday-bg:   #EDF8EF;

    --theme-month-bg:     #8FCF9A;
    --theme-month-color:  #1F3A28;
    --theme-month-align:  center;
    --theme-month-pl:     0px;
    --theme-month-radius: 999px;
    --theme-month-mb:     2px;

    --theme-year-bg:      #4F8A5B;
    --theme-year-color:   #ffffff;

    --theme-today-bg:     #2F6B3C;
    --theme-today-color:  #ffffff;

    --theme-mouseover-bg: #E9F7EC;

    --theme-border-color: #C8E0CC;

    --theme-btn-bg:       #A8DDB0;
    --theme-btn-hover-bg: #7FC98A;
    --theme-btn-color:    #1F3A28;

    --theme-top-nav-bg:   #BFE5C5;
    --theme-icon-filter:  hue-rotate(223deg) saturate(1.6) brightness(1.1);
}


/* ---- Black/White ---- */
[data-theme="blackwhite"] {
    --theme-body-bg:      gray;

    --theme-names-bg:     #444444;
    --theme-names-color:  #ffffff;

    --theme-weekday-bg:   #888888;
    --theme-weekday-color:#ffffff;

    --theme-holiday-bg:   #cccccc;

    --theme-month-bg:     #000000;
    --theme-month-color:  #000000;
    --theme-month-align:  left;
    --theme-month-pl:     13px;
    --theme-month-radius: 0px;
    --theme-month-mb:     0px;

    --theme-mouseover-bg: #000000;

    --theme-border-color: #888888;

    --theme-btn-bg:       #888888;
    --theme-btn-hover-bg: #444444;
    --theme-btn-color:    #ffffff;

    --theme-top-nav-bg:   #a1a1a1;
    --theme-icon-filter:  grayscale(1) brightness(0.43);
}


/* ---- Yellow ---- */
[data-theme="yellow"] {
    --theme-body-bg:      #FFFCF5;

    --theme-names-bg:     #FDE7A9;
    --theme-names-color:  #5A4300;

    --theme-weekday-bg:   #FEF1C7;
    --theme-weekday-color:#6B5200;

    --theme-holiday-bg:   #FFF6D9;

    --theme-month-bg:     #F6C453;
    --theme-month-color:  #4A3600;
    --theme-month-align:  center;
    --theme-month-pl:     0px;
    --theme-month-radius: 999px;
    --theme-month-mb:     2px;

    --theme-year-bg:      #C9971A;
    --theme-year-color:   #ffffff;

    --theme-today-bg:     #8A6A12;
    --theme-today-color:  #FFF4CC;

    --theme-mouseover-bg: #FFF3C4;

    --theme-border-color: #F2D27A;

    --theme-btn-bg:       #F7D36B;
    --theme-btn-hover-bg: #E2B84A;
    --theme-btn-color:    #4A3600;

    --theme-top-nav-bg:   #FBE3A2;
    --theme-icon-filter:  hue-rotate(193deg) saturate(2.2) brightness(0.82);
}


/* ---- Red ---- */
[data-theme="red"] {
    --theme-body-bg:      #FFF5F5;

    --theme-names-bg:     #F8C9C9;
    --theme-names-color:  #7A1C1C;

    --theme-weekday-bg:   #FADADA;
    --theme-weekday-color:#8A2A2A;

    --theme-holiday-bg:   #FFE5E5;

    --theme-month-bg:     #E53935;
    --theme-month-color:  #333;
    --theme-month-align:  center;
    --theme-month-pl:     0px;
    --theme-month-radius: 999px;
    --theme-month-mb:     2px;

    --theme-year-bg:      #C62828;
    --theme-year-color:   #ffffff;

    --theme-today-bg:     #B71C1C;
    --theme-today-color:  #ffffff;

    --theme-mouseover-bg: #FFECEC;

    --theme-border-color: #F28B82;

    --theme-btn-bg:       #EF5350;
    --theme-btn-hover-bg: #D32F2F;
    --theme-btn-color:    #ffffff;

    --theme-top-nav-bg:   #E53935;
    --theme-icon-filter:  sepia(1) saturate(20) hue-rotate(300deg) brightness(0.65);
}


/* ---- Purple ---- */
[data-theme="purple"] {
    --theme-body-bg:      #FAF7FF;

    --theme-names-bg:     #E6D9F8;
    --theme-names-color:  #4B3566;

    --theme-weekday-bg:   #F1EAFE;
    --theme-weekday-color:#5C437A;

    --theme-holiday-bg:   #F6F0FF;

    --theme-month-bg:     #8B5CF6;
    --theme-month-color:  #333;
    --theme-month-align:  center;
    --theme-month-pl:     0px;
    --theme-month-radius: 999px;
    --theme-month-mb:     2px;

    --theme-year-bg:      #6D28D9;
    --theme-year-color:   #ffffff;

    --theme-today-bg:     #5B21B6;
    --theme-today-color:  #ffffff;

    --theme-mouseover-bg: #F0E7FF;

    --theme-border-color: #D8C5F3;

    --theme-btn-bg:       #A78BFA;
    --theme-btn-hover-bg: #7C3AED;
    --theme-btn-color:    #ffffff;

    --theme-top-nav-bg:   #C4B5FD;
    --theme-icon-filter:  none;
}

/* ---- Dark Purple ---- */

[data-theme="darkpurple"] {
    --theme-body-bg:      #F7F4FB;

    --theme-names-bg:     #2E1A3B;
    --theme-names-color:  #F5F0FF;

    --theme-weekday-bg:   #3B2A4D;
    --theme-weekday-color:#E9E1FF;

    --theme-holiday-bg:   #EFE7FA;

    --theme-month-bg:     #6D28D9;
    --theme-month-color:  #333;
    --theme-month-align:  center;
    --theme-month-pl:     0px;
    --theme-month-radius: 999px;
    --theme-month-mb:     2px;

    --theme-year-bg:      #2E1A3B;
    --theme-year-color:   #FFD166;

    --theme-today-bg:     #4C1D95;
    --theme-today-color:  #FFE8A3;

    --theme-mouseover-bg: #EFE3FF;

    --theme-border-color: #E6C97A;

    --theme-btn-bg:       #C9A227;
    --theme-btn-hover-bg: #A8861F;
    --theme-btn-color:    #2E1A3B;

    --theme-top-nav-bg:   #2E1A3B;
    --theme-icon-filter:  hue-rotate(193deg) saturate(2.2) brightness(0.82);
}



/* ---- Confetti ---- */
[data-theme="confetti"] {
    --theme-body-bg:      #FFF8F1;

    --theme-names-bg:     #FF6B6B;
    --theme-names-color:  #ffffff;

    --theme-weekday-bg:   #4ECDC4;
    --theme-weekday-color:#083B3A;

    --theme-holiday-bg:   #FFE66D;

    --theme-month-bg:     #7C4DFF;
    --theme-month-color:  #333;
    --theme-month-align:  center;
    --theme-month-pl:     0px;
    --theme-month-radius: 999px;
    --theme-month-mb:     2px;

    --theme-year-bg:      #FF8A00;
    --theme-year-color:   #ffffff;

    --theme-today-bg:     #00B894;
    --theme-today-color:  #ffffff;

    --theme-mouseover-bg: #FFD9EC;

    --theme-border-color: #FF9F43;

    --theme-btn-bg:       #3A86FF;
    --theme-btn-hover-bg: #8338EC;
    --theme-btn-color:    #ffffff;

    --theme-top-nav-bg:   #FF006E;
    --theme-icon-filter:  none;
}



/* ============================================================
   BASE RULES  (written once, use variables for colors)
   ============================================================ */

body {
    margin: 0;
    background-color: var(--theme-body-bg);
}

td {
    font-family: 'lucida grande', tahoma, verdana, arial, sans-serif;
    font-weight: normal;
}

.text {
    font-family: arial, verdana, helvetica, sans-serif;
    font-weight: normal;
    color: #000000;
}

/* Column headings */
.namesheading {
    background-color: var(--theme-names-bg);
    color:            var(--theme-names-color);
    font-family: 'lucida grande', tahoma, verdana, arial, sans-serif;
}

/* Weekday column */
.weekdaystyle {
    background-color: var(--theme-weekday-bg);
    color:            var(--theme-weekday-color);
    font-family: 'lucida grande', tahoma, verdana, arial, sans-serif;
}

/* Normal weekdays */
.datestyleblank {
    color:            #000000;
    background-color: #ffffff;
}

/* Weekends / public holidays */
.holidaystyle {
    background-color: var(--theme-holiday-bg);
    color:            #000000;
}

/* Month headings */
.monthheading {
    background-color: var(--theme-month-bg);
    color:            var(--theme-month-color);
    text-align:       var(--theme-month-align);
    padding-left:     var(--theme-month-pl);
    border-radius:    var(--theme-month-radius);
    margin-bottom:    var(--theme-month-mb);
    font-family: 'lucida grande', tahoma, verdana, arial, sans-serif;
    border-radius: 0px;
    background-color: transparent;
}

/* Year headings */
.yearheading {
    background-color: var(--theme-year-bg);
    color:            var(--theme-year-color);
    font-weight:      bold;
    text-align:       center;
    font-family: 'lucida grande', tahoma, verdana, arial, sans-serif;
}

/* Today highlight */
.datestyleToday .day-number,
.datestyleToday .day-name {
    width: fit-content;
    background-color: var(--theme-today-bg);
    color: var(--theme-today-color);
    padding: 1px 4px;
    border-radius: 3px;
}

#calendarTable1.compact-view .datestyleToday .day-number,
#calendarTable1.compact-view .datestyleToday .day-name {
    border-radius: 0;
}

@media (max-width: 760px) {
    #calendarTable1.compact-view-mobile-only .datestyleToday .day-number,
    #calendarTable1.compact-view-mobile-only .datestyleToday .day-name {
        border-radius: 0;
    }
}

/* Row hover */
.mouseoverstyle {
    background-color: var(--theme-mouseover-bg);
    text-align:       left;
}

/* Top nav icons */
.topnav-icon {
    filter: var(--theme-icon-filter);
    transition: filter 0.2s;
}
