/**
 * Theme System - Optimized
 *
 * Structure:
 * 1. :root - Global variables
 * 2. [data-theme=light] - Shared light mode values
 * 3. [data-theme=dark] - Shared dark mode values
 * 4. [data-color=X] - Color-specific overrides only
 */

/* ===========================================
   1. GLOBAL VARIABLES
   =========================================== */
:root {
    --toolbarHeight: 50px;
    --saveSpaceH: 40px;
    --saveSpaceV: 40px;
    --pico-block-spacing-vertical: 40px;
    --pico-border-radius: 16px;

    --pico-h1-color: var(--pico-primary);
    --custom-body-background: radial-gradient(circle at 80% 120%, rgb(0 245 255 / 50%), var(--pico-background-color) 90%);
    --custom-header-background: rgba(from var(--pico-background-color) r g b / 0.7);
    --custom-header-color: var(--pico-inverse);
    --custom-footer-background: var(--custom-header-background);
    --custom-footer-color: var(--pico-white);
    --custom-footer-border: var(--pico-muted-border-color);
    --custom-footer-color-active: var(--pico-primary-hover);
    --custom-footer-border-active: var(--pico-primary-hover);

    hgroup {
        --pico-typography-spacing-vertical: 80px;
    }
}

/* ===========================================
   2. SHARED LIGHT MODE
   =========================================== */
[data-theme=light] {
    color-scheme: light;
    --pico-background-color: #fff;
    --pico-color: #373c44;
    --pico-muted-color: #646b79;
    --pico-muted-border-color: rgb(231, 234, 239.5);

    /* Secondary colors (shared across all light themes) */
    --pico-secondary: #5d6b89;
    --pico-secondary-background: #525f7a;
    --pico-secondary-border: var(--pico-secondary-background);
    --pico-secondary-underline: rgba(93, 107, 137, 0.5);
    --pico-secondary-hover: #48536b;
    --pico-secondary-hover-background: #48536b;
    --pico-secondary-hover-border: var(--pico-secondary-hover-background);
    --pico-secondary-hover-underline: var(--pico-secondary-hover);
    --pico-secondary-focus: rgba(93, 107, 137, 0.25);
    --pico-secondary-inverse: #fff;

    /* Contrast colors */
    --pico-contrast: #181c25;
    --pico-contrast-background: #181c25;
    --pico-contrast-border: var(--pico-contrast-background);
    --pico-contrast-underline: rgba(24, 28, 37, 0.5);
    --pico-contrast-hover: #000;
    --pico-contrast-hover-background: #000;
    --pico-contrast-hover-border: var(--pico-contrast-hover-background);
    --pico-contrast-hover-underline: var(--pico-secondary-hover);
    --pico-contrast-focus: rgba(93, 107, 137, 0.25);
    --pico-contrast-inverse: #fff;

    /* Typography */
    --pico-h2-color: #373c44;
    --pico-h3-color: #424751;
    --pico-h4-color: #4d535e;
    --pico-h5-color: #5c6370;
    --pico-h6-color: #646b79;

    /* Misc */
    --pico-box-shadow: 0.0145rem 0.029rem 0.174rem rgba(129, 145, 181, 0.01698), 0.0335rem 0.067rem 0.402rem rgba(129, 145, 181, 0.024), 0.0625rem 0.125rem 0.75rem rgba(129, 145, 181, 0.03), 0.1125rem 0.225rem 1.35rem rgba(129, 145, 181, 0.036), 0.2085rem 0.417rem 2.502rem rgba(129, 145, 181, 0.04302), 0.5rem 1rem 6rem rgba(129, 145, 181, 0.06), 0 0 0 0.0625rem rgba(129, 145, 181, 0.015);
    --pico-mark-background-color: rgb(252.5, 230.5, 191.5);
    --pico-mark-color: #0f1114;
    --pico-ins-color: rgb(28.5, 105.5, 84);
    --pico-del-color: rgb(136, 56.5, 53);
    --pico-blockquote-border-color: var(--pico-muted-border-color);
    --pico-blockquote-footer-color: var(--pico-muted-color);
    --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
    --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
    --pico-table-border-color: var(--pico-muted-border-color);
    --pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375);

    /* Code */
    --pico-code-background-color: rgb(243, 244.5, 246.75);
    --pico-code-color: #646b79;
    --pico-code-kbd-background-color: var(--pico-color);
    --pico-code-kbd-color: var(--pico-background-color);

    /* Forms */
    --pico-form-element-background-color: rgb(251, 251.5, 252.25);
    --pico-form-element-selected-background-color: #dfe3eb;
    --pico-form-element-border-color: #cfd5e2;
    --pico-form-element-color: #23262c;
    --pico-form-element-placeholder-color: var(--pico-muted-color);
    --pico-form-element-active-background-color: #fff;
    --pico-form-element-active-border-color: var(--pico-primary-border);
    --pico-form-element-focus-color: var(--pico-primary-border);
    --pico-form-element-disabled-opacity: 0.5;
    --pico-form-element-invalid-border-color: rgb(183.5, 105.5, 106.5);
    --pico-form-element-invalid-active-border-color: rgb(200.25, 79.25, 72.25);
    --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color);
    --pico-form-element-valid-border-color: rgb(76, 154.5, 137.5);
    --pico-form-element-valid-active-border-color: rgb(39, 152.75, 118.75);
    --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color);

    /* Switch & Range */
    --pico-switch-background-color: #bfc7d9;
    --pico-switch-checked-background-color: var(--pico-primary-background);
    --pico-switch-color: #fff;
    --pico-switch-thumb-box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.25);
    --pico-range-border-color: #dfe3eb;
    --pico-range-active-border-color: #bfc7d9;
    --pico-range-thumb-border-color: var(--pico-background-color);
    --pico-range-thumb-color: var(--pico-secondary-background);
    --pico-range-thumb-active-color: var(--pico-primary-background);

    /* Components */
    --pico-accordion-border-color: var(--pico-muted-border-color);
    --pico-accordion-active-summary-color: var(--pico-primary-hover);
    --pico-accordion-close-summary-color: var(--pico-color);
    --pico-accordion-open-summary-color: var(--pico-muted-color);
    --pico-card-background-color: var(--pico-background-color);
    --pico-card-border-color: var(--pico-muted-border-color);
    --pico-card-box-shadow: var(--pico-box-shadow);
    --pico-card-sectioning-background-color: rgb(251, 251.5, 252.25);
    --pico-dropdown-background-color: #fff;
    --pico-dropdown-border-color: #eff1f4;
    --pico-dropdown-box-shadow: var(--pico-box-shadow);
    --pico-dropdown-color: var(--pico-color);
    --pico-dropdown-hover-background-color: #eff1f4;
    --pico-loading-spinner-opacity: 0.5;
    --pico-modal-overlay-background-color: rgba(232, 234, 237, 0.75);
    --pico-progress-background-color: #dfe3eb;
    --pico-progress-color: var(--pico-primary-background);
    --pico-tooltip-background-color: var(--pico-contrast-background);
    --pico-tooltip-color: var(--pico-contrast-inverse);

    /* Icons */
    --pico-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(76, 154.5, 137.5)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
    --pico-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(200.25, 79.25, 72.25)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
}

/* ===========================================
   3. SHARED DARK MODE
   =========================================== */
[data-theme=dark] {
    color-scheme: dark;
    --pico-background-color: rgb(19, 22.5, 30.5);
    --pico-color: #c2c7d0;
    --pico-muted-color: #7b8495;
    --pico-muted-border-color: #202632;

    /* Secondary colors (shared across all dark themes) */
    --pico-secondary: #969eaf;
    --pico-secondary-background: #525f7a;
    --pico-secondary-border: var(--pico-secondary-background);
    --pico-secondary-underline: rgba(150, 158, 175, 0.5);
    --pico-secondary-hover: #b3b9c5;
    --pico-secondary-hover-background: #5d6b89;
    --pico-secondary-hover-border: var(--pico-secondary-hover-background);
    --pico-secondary-hover-underline: var(--pico-secondary-hover);
    --pico-secondary-focus: rgba(144, 158, 190, 0.25);
    --pico-secondary-inverse: #fff;

    /* Contrast colors */
    --pico-contrast: #dfe3eb;
    --pico-contrast-background: #eff1f4;
    --pico-contrast-border: var(--pico-contrast-background);
    --pico-contrast-underline: rgba(223, 227, 235, 0.5);
    --pico-contrast-hover: #fff;
    --pico-contrast-hover-background: #fff;
    --pico-contrast-hover-border: var(--pico-contrast-hover-background);
    --pico-contrast-hover-underline: var(--pico-contrast-hover);
    --pico-contrast-focus: rgba(207, 213, 226, 0.25);
    --pico-contrast-inverse: #000;

    /* Typography */
    --pico-h1-color: #f0f1f3;
    --pico-h2-color: #e0e3e7;
    --pico-h3-color: #c2c7d0;
    --pico-h4-color: #b3b9c5;
    --pico-h5-color: #a4acba;
    --pico-h6-color: #8891a4;

    /* Misc */
    --pico-box-shadow: 0.0145rem 0.029rem 0.174rem rgba(7, 8.5, 12, 0.01698), 0.0335rem 0.067rem 0.402rem rgba(7, 8.5, 12, 0.024), 0.0625rem 0.125rem 0.75rem rgba(7, 8.5, 12, 0.03), 0.1125rem 0.225rem 1.35rem rgba(7, 8.5, 12, 0.036), 0.2085rem 0.417rem 2.502rem rgba(7, 8.5, 12, 0.04302), 0.5rem 1rem 6rem rgba(7, 8.5, 12, 0.06), 0 0 0 0.0625rem rgba(7, 8.5, 12, 0.015);
    --pico-mark-background-color: #014063;
    --pico-mark-color: #fff;
    --pico-ins-color: #62af9a;
    --pico-del-color: rgb(205.5, 126, 123);
    --pico-blockquote-border-color: var(--pico-muted-border-color);
    --pico-blockquote-footer-color: var(--pico-muted-color);
    --pico-button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
    --pico-button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
    --pico-table-border-color: var(--pico-muted-border-color);
    --pico-table-row-stripped-background-color: rgba(111, 120, 135, 0.0375);

    /* Code */
    --pico-code-background-color: rgb(26, 30.5, 40.25);
    --pico-code-color: #8891a4;
    --pico-code-kbd-background-color: var(--pico-color);
    --pico-code-kbd-color: var(--pico-background-color);

    /* Forms */
    --pico-form-element-background-color: rgb(28, 33, 43.5);
    --pico-form-element-selected-background-color: #2a3140;
    --pico-form-element-border-color: #2a3140;
    --pico-form-element-color: #e0e3e7;
    --pico-form-element-placeholder-color: #8891a4;
    --pico-form-element-active-background-color: rgb(26, 30.5, 40.25);
    --pico-form-element-active-border-color: var(--pico-primary-border);
    --pico-form-element-focus-color: var(--pico-primary-border);
    --pico-form-element-disabled-opacity: 0.5;
    --pico-form-element-invalid-border-color: rgb(149.5, 74, 80);
    --pico-form-element-invalid-active-border-color: rgb(183.25, 63.5, 59);
    --pico-form-element-invalid-focus-color: var(--pico-form-element-invalid-active-border-color);
    --pico-form-element-valid-border-color: #2a7b6f;
    --pico-form-element-valid-active-border-color: rgb(22, 137, 105.5);
    --pico-form-element-valid-focus-color: var(--pico-form-element-valid-active-border-color);

    /* Switch & Range */
    --pico-switch-background-color: #333c4e;
    --pico-switch-checked-background-color: var(--pico-primary-background);
    --pico-switch-color: #fff;
    --pico-switch-thumb-box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.25);
    --pico-range-border-color: #202632;
    --pico-range-active-border-color: #2a3140;
    --pico-range-thumb-border-color: var(--pico-background-color);
    --pico-range-thumb-color: var(--pico-secondary-background);
    --pico-range-thumb-active-color: var(--pico-primary-background);

    /* Components */
    --pico-accordion-border-color: var(--pico-muted-border-color);
    --pico-accordion-active-summary-color: var(--pico-primary-hover);
    --pico-accordion-close-summary-color: var(--pico-color);
    --pico-accordion-open-summary-color: var(--pico-muted-color);
    --pico-card-background-color: #181c25;
    --pico-card-border-color: var(--pico-card-background-color);
    --pico-card-box-shadow: var(--pico-box-shadow);
    --pico-card-sectioning-background-color: rgb(26, 30.5, 40.25);
    --pico-dropdown-background-color: #181c25;
    --pico-dropdown-border-color: #202632;
    --pico-dropdown-box-shadow: var(--pico-box-shadow);
    --pico-dropdown-color: var(--pico-color);
    --pico-dropdown-hover-background-color: #202632;
    --pico-loading-spinner-opacity: 0.5;
    --pico-modal-overlay-background-color: rgba(7.5, 8.5, 10, 0.75);
    --pico-progress-background-color: #202632;
    --pico-progress-color: var(--pico-primary-background);
    --pico-tooltip-background-color: var(--pico-contrast-background);
    --pico-tooltip-color: var(--pico-contrast-inverse);

    /* Icons */
    --pico-icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(42, 123, 111)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
    --pico-icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(149.5, 74, 80)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
}

/* ===========================================
   4. COLOR-SPECIFIC OVERRIDES (Cyan)
   =========================================== */
[data-color=cyan] {
    &[data-theme=light] {
        --pico-h1-color: var(--pico-color);
        --custom-body-background: radial-gradient(circle at 80% 120%, rgb(0 245 255 / 50%), #25DDDD 90%);
        --custom-header-background: rgba(from var(--pico-primary) r g b / 0.7);
        --custom-header-color: var(--pico-primary-inverse);
        --custom-footer-background: var(--custom-header-background);
        --custom-footer-color: var(--pico-primary-inverse);
        --custom-footer-border: var(--pico-border-color);
        --custom-footer-color-active: var(--pico-primary-inverse);
        --custom-footer-border-active: var(--pico-primary-inverse);
    }
    /* Dark mode uses defaults from :root */
}

/* ===========================================
   4. COLOR-SPECIFIC OVERRIDES (Amber)
   =========================================== */
[data-color=amber] {
    /* Primary color palette */
    --pico-text-selection-color: rgba(183, 136, 0, 0.25);
    --pico-primary: #876400;
    --pico-primary-background: #ffbf00;
    --pico-primary-border: var(--pico-primary-background);
    --pico-primary-underline: rgba(135, 100, 0, 0.5);
    --pico-primary-hover: #694d00;
    --pico-primary-hover-background: #e8ae01;
    --pico-primary-hover-border: var(--pico-primary-hover-background);
    --pico-primary-hover-underline: var(--pico-primary-hover);
    --pico-primary-focus: rgba(183, 136, 0, 0.5);
    --pico-primary-inverse: #000;

    &[data-theme=light] {
        --pico-h1-color: white;
        --custom-body-background: radial-gradient(circle at 80% 120%, rgb(239 200 65 / 50%), #FFBF00 90%);
        --custom-header-background: rgba(from var(--pico-primary-background) r g b / 0.7);
        --custom-header-color: rgb(248, 248, 248);
        --custom-footer-background: var(--custom-header-background);
        --custom-footer-color: var(--custom-header-color);
        --custom-footer-border: var(--pico-primary-inverse);
        --custom-footer-color-active: white;
        --custom-footer-border-active: white;
    }

    &[data-theme=dark] {
        --pico-text-selection-color: rgba(199, 148, 0, 0.1875);
        --pico-primary: #c79400;
        --pico-primary-underline: rgba(199, 148, 0, 0.5);
        --pico-primary-hover: #e8ae01;
        --pico-primary-hover-background: #fecc63;
        --pico-primary-hover-border: var(--pico-primary-hover-background);
        --pico-primary-hover-underline: var(--pico-primary-hover);
        --pico-primary-focus: rgba(199, 148, 0, 0.375);
    }
}

/* ===========================================
   4. COLOR-SPECIFIC OVERRIDES (Blue)
   =========================================== */
[data-color=blue] {
    /* Primary color palette */
    --pico-text-selection-color: rgba(116, 139, 248, 0.25);
    --pico-primary: #2060df;
    --pico-primary-background: #2060df;
    --pico-primary-border: var(--pico-primary-background);
    --pico-primary-underline: rgba(32, 96, 223, 0.5);
    --pico-primary-hover: #184eb8;
    --pico-primary-hover-background: #1d59d0;
    --pico-primary-hover-border: var(--pico-primary-hover-background);
    --pico-primary-hover-underline: var(--pico-primary-hover);
    --pico-primary-focus: rgba(116, 139, 248, 0.5);
    --pico-primary-inverse: #fff;

    &[data-theme=light] {
        --pico-h1-color: var(--pico-color);
        --custom-body-background: radial-gradient(circle at 80% 120%, #d9dcff, #868eff 90%);
        --custom-header-background: rgba(from var(--pico-primary) r g b / 0.7);
        --custom-header-color: var(--pico-primary-inverse);
        --custom-footer-background: var(--custom-header-background);
        --custom-footer-color: var(--pico-primary-inverse);
        --custom-footer-border: var(--pico-border-color);
        --custom-footer-color-active: var(--pico-primary-inverse);
        --custom-footer-border-active: var(--pico-primary-inverse);
    }

    &[data-theme=dark] {
        --pico-text-selection-color: rgba(137, 153, 249, 0.1875);
        --pico-primary: #8999f9;
        --pico-primary-underline: rgba(137, 153, 249, 0.5);
        --pico-primary-hover: #aeb5fb;
        --pico-primary-hover-background: #3c71f7;
        --pico-primary-hover-border: var(--pico-primary-hover-background);
        --pico-primary-hover-underline: var(--pico-primary-hover);
        --pico-primary-focus: rgba(137, 153, 249, 0.375);
    }
}
