:root {
    --tp-ivory: #fcf7ef;
    --tp-cream: #f1eadb;
    --tp-charcoal: #16202a;
    --tp-deep: #e8eef5;
    --tp-slate: #102d49;
    --tp-gold: #173a62;
    --tp-gold-light: #2f5b89;
    --tp-surface-rgb: 255 255 255;
    --tp-ivory-rgb: 252 247 239;
    --tp-cream-rgb: 241 234 219;
    --tp-deep-rgb: 232 240 248;
    --tp-slate-rgb: 16 45 73;
    --tp-gold-rgb: 23 58 98;
    --tp-gold-light-rgb: 47 91 137;
    --tp-shadow-rgb: 16 38 62;
    --tp-gold-muted: rgba(23, 58, 98, 0.14);
    --tp-text-primary: rgba(20, 32, 43, 0.94);
    --tp-text-secondary: rgba(20, 32, 43, 0.72);
    --tp-text-muted: rgba(20, 32, 43, 0.52);
    --tp-border: rgba(23, 58, 98, 0.14);
    --tp-border-strong: rgba(23, 58, 98, 0.24);
    --tp-border-gold: rgba(23, 58, 98, 0.28);
    --tp-surface: rgba(255, 255, 255, 0.82);
    --tp-surface-hover: rgba(255, 255, 255, 0.96);
    --tp-surface-strong: rgba(255, 255, 255, 0.94);
    --tp-shadow: 0 22px 54px rgba(16, 38, 62, 0.10);
    --tp-radius: 4px;
    --tp-radius-lg: 8px;
    --tp-transition: 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    --tp-link: var(--tp-gold);
    --tp-link-hover: var(--tp-gold-light);
    --tp-accent: var(--tp-slate);
    --tp-accent-strong: var(--tp-gold);
    --tp-on-accent: var(--tp-ivory);
    --tp-page-background: linear-gradient(180deg, #fcfaf4 0%, #f4edde 48%, #eef3fa 100%);
    --tp-page-background-solid: #fcfaf4;
    --tp-header-surface: rgba(251, 247, 239, 0.94);
    --tp-header-surface-strong: rgba(248, 243, 232, 0.96);
    --tp-header-border: rgba(23, 58, 98, 0.14);
    --tp-nav-link: #102d49;
    --tp-nav-link-hover: #173f67;
    --tp-nav-link-hover-bg: rgba(23, 58, 98, 0.08);
    --tp-footer-text: #5a6777;
    --tp-success: #2f6c4e;
    --tp-danger: #8d2f2f;
    --tp-info: #125889;
    --tp-social-link-bg: rgba(16, 45, 73, 0.05);
    --tp-service-status-bg: rgba(255, 255, 255, 0.78);
    --tp-service-status-item-bg: rgba(23, 58, 98, 0.04);
    --tp-service-status-offline-bg: rgba(140, 40, 40, 0.05);
    --tp-service-status-live-bg: rgba(52, 120, 88, 0.08);
}

body.theme-summer {
    --tp-page-background: linear-gradient(180deg, #fcfaf4 0%, #f4edde 48%, #eef3fa 100%);
    --tp-page-background-solid: #fcfaf4;
    --tp-header-surface: rgba(251, 247, 239, 0.94);
    --tp-header-surface-strong: rgba(248, 243, 232, 0.96);
}

body.theme-autumn {
    --tp-ivory: #fbf3e8;
    --tp-cream: #ead8c2;
    --tp-charcoal: #2a1f18;
    --tp-deep: #f4e8db;
    --tp-slate: #6b3a20;
    --tp-gold: #9d5a21;
    --tp-gold-light: #bf7b3b;
    --tp-surface-rgb: 255 250 244;
    --tp-ivory-rgb: 251 243 232;
    --tp-cream-rgb: 234 216 194;
    --tp-deep-rgb: 244 232 219;
    --tp-slate-rgb: 107 58 32;
    --tp-gold-rgb: 157 90 33;
    --tp-gold-light-rgb: 191 123 59;
    --tp-shadow-rgb: 86 46 19;
    --tp-gold-muted: rgba(157, 90, 33, 0.14);
    --tp-text-primary: rgba(43, 27, 18, 0.94);
    --tp-text-secondary: rgba(43, 27, 18, 0.72);
    --tp-text-muted: rgba(43, 27, 18, 0.54);
    --tp-border: rgba(120, 63, 27, 0.16);
    --tp-border-strong: rgba(120, 63, 27, 0.28);
    --tp-border-gold: rgba(157, 90, 33, 0.30);
    --tp-surface: rgba(255, 250, 244, 0.84);
    --tp-surface-hover: rgba(255, 250, 244, 0.96);
    --tp-surface-strong: rgba(255, 247, 238, 0.96);
    --tp-shadow: 0 22px 54px rgba(86, 46, 19, 0.12);
    --tp-link: #9d5a21;
    --tp-link-hover: #bf7b3b;
    --tp-accent: #6b3a20;
    --tp-accent-strong: #9d5a21;
    --tp-on-accent: #fff8f0;
    --tp-page-background: linear-gradient(180deg, #fff4e8 0%, #f0dac1 46%, #f8efe5 100%);
    --tp-page-background-solid: #fff4e8;
    --tp-header-surface: rgba(255, 245, 235, 0.94);
    --tp-header-surface-strong: rgba(252, 239, 225, 0.96);
    --tp-header-border: rgba(120, 63, 27, 0.16);
    --tp-nav-link: #6b3a20;
    --tp-nav-link-hover: #9d5a21;
    --tp-nav-link-hover-bg: rgba(157, 90, 33, 0.08);
    --tp-footer-text: #6f503c;
    --tp-success: #3d6b44;
    --tp-danger: #8b3c27;
    --tp-info: #7a4a28;
    --tp-social-link-bg: rgba(107, 58, 32, 0.05);
    --tp-service-status-bg: rgba(255, 247, 238, 0.80);
    --tp-service-status-item-bg: rgba(157, 90, 33, 0.05);
    --tp-service-status-offline-bg: rgba(139, 60, 39, 0.08);
    --tp-service-status-live-bg: rgba(61, 107, 68, 0.09);
}

body.theme-winter {
    --tp-ivory: #f6fbff;
    --tp-cream: #dfeaf4;
    --tp-charcoal: #152533;
    --tp-deep: #e7f1fb;
    --tp-slate: #1d4664;
    --tp-gold: #2e6b96;
    --tp-gold-light: #4b89b4;
    --tp-surface-rgb: 250 253 255;
    --tp-ivory-rgb: 246 251 255;
    --tp-cream-rgb: 223 234 244;
    --tp-deep-rgb: 231 241 251;
    --tp-slate-rgb: 29 70 100;
    --tp-gold-rgb: 46 107 150;
    --tp-gold-light-rgb: 75 137 180;
    --tp-shadow-rgb: 20 54 79;
    --tp-gold-muted: rgba(46, 107, 150, 0.14);
    --tp-text-primary: rgba(18, 37, 51, 0.94);
    --tp-text-secondary: rgba(18, 37, 51, 0.72);
    --tp-text-muted: rgba(18, 37, 51, 0.54);
    --tp-border: rgba(29, 70, 100, 0.16);
    --tp-border-strong: rgba(29, 70, 100, 0.28);
    --tp-border-gold: rgba(46, 107, 150, 0.30);
    --tp-surface: rgba(250, 253, 255, 0.82);
    --tp-surface-hover: rgba(250, 253, 255, 0.96);
    --tp-surface-strong: rgba(245, 250, 255, 0.95);
    --tp-shadow: 0 22px 54px rgba(20, 54, 79, 0.12);
    --tp-link: #2e6b96;
    --tp-link-hover: #4b89b4;
    --tp-accent: #1d4664;
    --tp-accent-strong: #2e6b96;
    --tp-on-accent: #f6fbff;
    --tp-page-background: linear-gradient(180deg, #f7fbff 0%, #e6f1fa 48%, #f3f8fd 100%);
    --tp-page-background-solid: #f7fbff;
    --tp-header-surface: rgba(247, 251, 255, 0.94);
    --tp-header-surface-strong: rgba(240, 247, 254, 0.96);
    --tp-header-border: rgba(29, 70, 100, 0.16);
    --tp-nav-link: #1d4664;
    --tp-nav-link-hover: #2e6b96;
    --tp-nav-link-hover-bg: rgba(46, 107, 150, 0.08);
    --tp-footer-text: #557288;
    --tp-success: #2e6a5b;
    --tp-danger: #8b4a5d;
    --tp-info: #24557b;
    --tp-social-link-bg: rgba(29, 70, 100, 0.05);
    --tp-service-status-bg: rgba(250, 253, 255, 0.80);
    --tp-service-status-item-bg: rgba(46, 107, 150, 0.05);
    --tp-service-status-offline-bg: rgba(139, 74, 93, 0.08);
    --tp-service-status-live-bg: rgba(46, 106, 91, 0.09);
}

body.theme-spring {
    --tp-ivory: #fbfff7;
    --tp-cream: #e6f1df;
    --tp-charcoal: #1c2a20;
    --tp-deep: #edf7ea;
    --tp-slate: #305f46;
    --tp-gold: #4a8a66;
    --tp-gold-light: #68a57f;
    --tp-surface-rgb: 252 255 250;
    --tp-ivory-rgb: 251 255 247;
    --tp-cream-rgb: 230 241 223;
    --tp-deep-rgb: 237 247 234;
    --tp-slate-rgb: 48 95 70;
    --tp-gold-rgb: 74 138 102;
    --tp-gold-light-rgb: 104 165 127;
    --tp-shadow-rgb: 38 73 53;
    --tp-gold-muted: rgba(74, 138, 102, 0.14);
    --tp-text-primary: rgba(24, 40, 29, 0.94);
    --tp-text-secondary: rgba(24, 40, 29, 0.72);
    --tp-text-muted: rgba(24, 40, 29, 0.54);
    --tp-border: rgba(48, 95, 70, 0.16);
    --tp-border-strong: rgba(48, 95, 70, 0.28);
    --tp-border-gold: rgba(74, 138, 102, 0.30);
    --tp-surface: rgba(252, 255, 250, 0.82);
    --tp-surface-hover: rgba(252, 255, 250, 0.96);
    --tp-surface-strong: rgba(247, 252, 244, 0.96);
    --tp-shadow: 0 22px 54px rgba(38, 73, 53, 0.12);
    --tp-link: #4a8a66;
    --tp-link-hover: #68a57f;
    --tp-accent: #305f46;
    --tp-accent-strong: #4a8a66;
    --tp-on-accent: #fbfff7;
    --tp-page-background: linear-gradient(180deg, #fbfff8 0%, #e8f2df 48%, #f7fbf2 100%);
    --tp-page-background-solid: #fbfff8;
    --tp-header-surface: rgba(251, 255, 248, 0.94);
    --tp-header-surface-strong: rgba(245, 251, 239, 0.96);
    --tp-header-border: rgba(48, 95, 70, 0.16);
    --tp-nav-link: #305f46;
    --tp-nav-link-hover: #4a8a66;
    --tp-nav-link-hover-bg: rgba(74, 138, 102, 0.08);
    --tp-footer-text: #56705f;
    --tp-success: #2f6c4e;
    --tp-danger: #8c4d63;
    --tp-info: #3c6f8f;
    --tp-social-link-bg: rgba(48, 95, 70, 0.05);
    --tp-service-status-bg: rgba(252, 255, 250, 0.80);
    --tp-service-status-item-bg: rgba(74, 138, 102, 0.05);
    --tp-service-status-offline-bg: rgba(140, 77, 99, 0.08);
    --tp-service-status-live-bg: rgba(47, 108, 78, 0.09);
}

body.theme-summer,
body.theme-autumn,
body.theme-winter,
body.theme-spring {
    color: var(--tp-text-primary);
    background: var(--tp-page-background);
    background-attachment: fixed;
}