/* ============================================================================
   Табель — дизайн-токены: шрифты, палитра, темы.
   Светлая тема — по умолчанию; тёмная включается системной настройкой или
   атрибутом data-theme на <html> (переключатель в сайдбаре).
   ========================================================================== */

/* ===== FONTS =====
   IBM Plex — «производственная» гарнитура с полной кириллицей.
   Файлы кладёт scripts/fetch_fonts.sh; без них работает системный fallback. */
@font-face { font-family:"IBM Plex Sans"; font-style:normal; font-weight:400; font-display:swap;
    src:url("/static/fonts/ibm-plex-sans-latin-400.woff2") format("woff2");
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"IBM Plex Sans"; font-style:normal; font-weight:400; font-display:swap;
    src:url("/static/fonts/ibm-plex-sans-cyrillic-400.woff2") format("woff2");
    unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:"IBM Plex Sans"; font-style:normal; font-weight:500; font-display:swap;
    src:url("/static/fonts/ibm-plex-sans-latin-500.woff2") format("woff2");
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"IBM Plex Sans"; font-style:normal; font-weight:500; font-display:swap;
    src:url("/static/fonts/ibm-plex-sans-cyrillic-500.woff2") format("woff2");
    unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:"IBM Plex Sans"; font-style:normal; font-weight:600; font-display:swap;
    src:url("/static/fonts/ibm-plex-sans-latin-600.woff2") format("woff2");
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"IBM Plex Sans"; font-style:normal; font-weight:600; font-display:swap;
    src:url("/static/fonts/ibm-plex-sans-cyrillic-600.woff2") format("woff2");
    unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:"IBM Plex Sans"; font-style:normal; font-weight:700; font-display:swap;
    src:url("/static/fonts/ibm-plex-sans-latin-700.woff2") format("woff2");
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"IBM Plex Sans"; font-style:normal; font-weight:700; font-display:swap;
    src:url("/static/fonts/ibm-plex-sans-cyrillic-700.woff2") format("woff2");
    unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }

@font-face { font-family:"IBM Plex Mono"; font-style:normal; font-weight:400; font-display:swap;
    src:url("/static/fonts/ibm-plex-mono-latin-400.woff2") format("woff2");
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD; }
@font-face { font-family:"IBM Plex Mono"; font-style:normal; font-weight:400; font-display:swap;
    src:url("/static/fonts/ibm-plex-mono-cyrillic-400.woff2") format("woff2");
    unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:"IBM Plex Mono"; font-style:normal; font-weight:500; font-display:swap;
    src:url("/static/fonts/ibm-plex-mono-latin-500.woff2") format("woff2");
    unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD; }
@font-face { font-family:"IBM Plex Mono"; font-style:normal; font-weight:500; font-display:swap;
    src:url("/static/fonts/ibm-plex-mono-cyrillic-500.woff2") format("woff2");
    unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }

/* ===== СВЕТЛАЯ ТЕМА (по умолчанию) ===== */
:root {
    --bg:          #F1F3F7;
    --surface:     #FFFFFF;
    --surface-2:   #F5F7FA;
    --border:      #DFE3EB;
    --border-soft: #EBEEF3;
    --text:        #12161F;
    --text-muted:  #626B7D;

    --accent:       #4A55C7;
    --accent-hover: #3B45AC;
    --accent-soft:  #E8EAFA;
    --accent-text:  #2C348C;

    --shadow:    0 1px 2px rgba(18,22,31,0.04), 0 4px 16px rgba(18,22,31,0.06);
    --shadow-lg: 0 8px 32px rgba(18,22,31,0.16);

    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 22px;

    --sidebar:        #FFFFFF;
    --sidebar-border: #E4E8EF;
    --sidebar-active: #EDEFFB;

    --font-display: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
    --font-sans:    "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
    --font-mono:    "IBM Plex Mono", "SF Mono", ui-monospace, monospace;

    /* Часы суток — фон циферблата в календаре */
    --dial-track: #E4E8F0;

    /* Статусы смен */
    --s-planned-bg:   #EDEFFB;
    --s-planned-text: #2C348C;
    --s-confirmed-bg:   #E2F2EC;
    --s-confirmed-text: #1C6B52;
    --s-cancelled-bg:   #F0F1F4;
    --s-cancelled-text: #6B7280;
    --s-warn-bg:   #FDF1DC;
    --s-warn-text: #8A5A08;
    --s-error-bg:   #FCE9E7;
    --s-error-text: #A3301C;

    /* Типы смен — те же значения в app/apps/service/shift_models.py */
    --shift-morning: #E8A33D;
    --shift-day:     #2E9E8F;
    --shift-evening: #E2653C;
    --shift-night:   #5B5BD6;
    --shift-full:    #8A4FBF;
    --shift-off:     #4E9A78;
}

/* ===== ТЁМНАЯ ТЕМА ===== */
[data-theme="dark"] {
    --bg:          #0F1218;
    --surface:     #161A21;
    --surface-2:   #1D222B;
    --border:      #2A303B;
    --border-soft: #232830;
    --text:        #EDEFF3;
    --text-muted:  #8B94A6;

    --accent:       #7C86F0;
    --accent-hover: #98A0FF;
    --accent-soft:  #1E2245;
    --accent-text:  #AAB2FF;

    --shadow:    0 1px 2px rgba(0,0,0,0.4), 0 4px 16px rgba(0,0,0,0.45);
    --shadow-lg: 0 8px 32px rgba(0,0,0,0.6);

    --sidebar:        #131720;
    --sidebar-border: #242A35;
    --sidebar-active: #1E2245;

    --dial-track: #262C38;

    --s-planned-bg:   #1E2245;
    --s-planned-text: #AAB2FF;
    --s-confirmed-bg:   #122C24;
    --s-confirmed-text: #5FC49F;
    --s-cancelled-bg:   #1D222B;
    --s-cancelled-text: #8B94A6;
    --s-warn-bg:   #2E2413;
    --s-warn-text: #E8B45C;
    --s-error-bg:   #331613;
    --s-error-text: #F08A76;

    --shift-morning: #F0B45C;
    --shift-day:     #45B7A7;
    --shift-evening: #F07C52;
    --shift-night:   #8A8AF0;
    --shift-full:    #A66FD6;
    --shift-off:     #63B48E;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --bg:          #0F1218;
        --surface:     #161A21;
        --surface-2:   #1D222B;
        --border:      #2A303B;
        --border-soft: #232830;
        --text:        #EDEFF3;
        --text-muted:  #8B94A6;

        --accent:       #7C86F0;
        --accent-hover: #98A0FF;
        --accent-soft:  #1E2245;
        --accent-text:  #AAB2FF;

        --shadow:    0 1px 2px rgba(0,0,0,0.4), 0 4px 16px rgba(0,0,0,0.45);
        --shadow-lg: 0 8px 32px rgba(0,0,0,0.6);

        --sidebar:        #131720;
        --sidebar-border: #242A35;
        --sidebar-active: #1E2245;

        --dial-track: #262C38;

        --s-planned-bg:   #1E2245;
        --s-planned-text: #AAB2FF;
        --s-confirmed-bg:   #122C24;
        --s-confirmed-text: #5FC49F;
        --s-cancelled-bg:   #1D222B;
        --s-cancelled-text: #8B94A6;
        --s-warn-bg:   #2E2413;
        --s-warn-text: #E8B45C;
        --s-error-bg:   #331613;
        --s-error-text: #F08A76;

        --shift-morning: #F0B45C;
        --shift-day:     #45B7A7;
        --shift-evening: #F07C52;
        --shift-night:   #8A8AF0;
        --shift-full:    #A66FD6;
        --shift-off:     #63B48E;
    }
}
