/* ═══════════════════════════════════════════════════════════════
   DuDuClock · 小框日记 — Base Theme Variables
   所有主题共享的基础变量定义（与 style.css :root 保持一致）
   ═══════════════════════════════════════════════════════════════ */

:root {
    /* Brand — 墨蓝灰 defaults (matches minimal-white theme) */
    --accent: #434358;
    --accent-hover: #333350;
    --accent-soft: rgba(67, 67, 88, 0.06);
    --accent-gradient: linear-gradient(135deg, #434358 0%, #5e5e7a 100%);

    /* Status */
    --success: #16a34a;
    --success-soft: #dcfce7;
    --warning: #d97706;
    --warning-soft: #fef3c7;
    --danger: #dc2626;
    --danger-soft: #fee2e2;
    --info: #0ea5e9;
    --info-soft: #e0f2fe;

    /* Surfaces */
    --bg: #fafaf9;
    --bg-elevated: #ffffff;
    --surface: #ffffff;
    --surface-hover: #f3f3f0;
    --border: #d6d6d8;
    --border-strong: #c5c5ca;

    /* Text */
    --text: #0f172a;
    --text-secondary: #475569;
    --text-muted: #94a3b8;
    --text-inverse: #ffffff;

    /* Layout */
    --sidebar-w: 240px;
    --header-h: 64px;
    --radius: 12px;
    --radius-sm: 8px;
    --radius-lg: 16px;

    /* Shadows — layered elevation (diffuse + tight) */
    --shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.04), 0 1px 2px rgba(15, 23, 42, 0.06);
    --shadow-md: 0 4px 16px rgba(15, 23, 42, 0.06), 0 2px 6px rgba(15, 23, 42, 0.08);
    --shadow-lg: 0 12px 40px rgba(15, 23, 42, 0.08), 0 4px 12px rgba(15, 23, 42, 0.12);
    --shadow-xl: 0 24px 60px rgba(15, 23, 42, 0.1), 0 8px 20px rgba(15, 23, 42, 0.14);

    /* Spring easing for tactile interactions */
    --ease-spring: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);

    /* Mood colors */
    --mood-happy: #fbbf24;
    --mood-sweet: #ec4899;
    --mood-miss: #8b5cf6;
    --mood-sad: #64748b;
    --mood-neutral: #94a3b8;

    /* Font */
    --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans SC', sans-serif;
    --font-mono: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;

    /* Backward-compatible aliases for advanced-effects.css / animations.css */
    --primary: var(--accent);
    --primary-hover: var(--accent-hover);
    --primary-light: var(--accent-soft);
    --text-primary: var(--text);
    --bg-secondary: var(--bg);
    --bg-tertiary: var(--surface-hover);

    /* Theme preview backgrounds — used by settings theme picker */
    --theme-couple-pink-bg: linear-gradient(135deg, #fdf2f8 0%, #fce7f3 100%);
    --theme-tech-blue-bg: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    --theme-minimal-white-bg: linear-gradient(135deg, #fafaf9 0%, #e8e8e4 100%);
    --theme-purple-bg: linear-gradient(135deg, #f8f7ff 0%, #eeedff 100%);
    --theme-warm-orange-bg: linear-gradient(135deg, #fff7ed 0%, #fed7aa 100%);
    --theme-dark-mode-bg: linear-gradient(135deg, #161820 0%, #0d0f13 100%);
    --theme-nature-green-bg: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
    --theme-hello-kitty-bg: url('/static/themes/hello-kitty/kitty_1.webp') center/cover no-repeat;

    /* ── Theme image slots (default: none, overridden by premium themes) ── */
    --theme-img-login-bg: none;
    --theme-img-sidebar-deco: none;
    --theme-img-dashboard-hero: none;
    --theme-img-empty-state: none;
    --theme-img-calendar-bg: none;
    --theme-img-login-card-deco: none;
    --theme-img-loading: none;
    --theme-img-couple-hero: none;
    --theme-img-floating-mascot: none;
    --theme-img-schedule-calendar: none;
    --theme-img-routine-box: none;
    --theme-img-couple-box: none;
    --theme-img-messages-box: none;
    --theme-img-settings-box: none;

    /* ── Fill mode overrides per slot (set by theme JS at runtime) ── */
    /* Each slot gets --theme-img-XXX-size and --theme-img-XXX-repeat */
    --theme-img-login-bg-size: cover;
    --theme-img-login-bg-repeat: no-repeat;
    --theme-img-sidebar-deco-size: contain;
    --theme-img-sidebar-deco-repeat: no-repeat;
    --theme-img-dashboard-hero-size: contain;
    --theme-img-dashboard-hero-repeat: no-repeat;
    --theme-img-empty-state-size: contain;
    --theme-img-empty-state-repeat: no-repeat;
    --theme-img-calendar-bg-size: cover;
    --theme-img-calendar-bg-repeat: no-repeat;
    --theme-img-login-card-deco-size: contain;
    --theme-img-login-card-deco-repeat: no-repeat;
    --theme-img-loading-size: contain;
    --theme-img-loading-repeat: no-repeat;
    --theme-img-couple-hero-size: cover;
    --theme-img-couple-hero-repeat: no-repeat;
    --theme-img-floating-mascot-size: contain;
    --theme-img-floating-mascot-repeat: no-repeat;
    --theme-img-schedule-calendar-size: cover;
    --theme-img-schedule-calendar-repeat: no-repeat;
    --theme-img-routine-box-size: cover;
    --theme-img-routine-box-repeat: no-repeat;
    --theme-img-couple-box-size: cover;
    --theme-img-couple-box-repeat: no-repeat;
    --theme-img-messages-box-size: cover;
    --theme-img-messages-box-repeat: no-repeat;
    --theme-img-settings-box-size: cover;
    --theme-img-settings-box-repeat: no-repeat;
}

/* Default ambient glow — 水墨山水风格 (matches minimal-white) */
body::before {
    background:
        /* 远山 — ink-wash mountain silhouette */
        radial-gradient(ellipse 50% 45% at 20% 30%, rgba(60, 58, 55, 0.05) 0%, transparent 65%),
        /* 云雾 — drifting mist through the valley */
        radial-gradient(ellipse 55% 50% at 70% 60%, rgba(130, 125, 115, 0.04) 0%, transparent 70%),
        /* 宣纸 — warm rice-paper undertone */
        radial-gradient(ellipse 65% 55% at 50% 45%, rgba(210, 205, 195, 0.03) 0%, transparent 60%);
}
