/**
 * @file pms-variables.css
 * Rising PMS — Master Design Token System
 *
 * Single source of truth for all CSS custom properties used across
 * both the theme (rising_pms) and the custom pms module.
 *
 * ── What lives here ────────────────────────────────────────────
 *  • Typography / font family
 *  • Surface & background tokens
 *  • Border tokens
 *  • Text color tokens
 *  • Role aliases (--primary, --success etc.) wired to --pms-*
 *  • Status colors (success / danger / warning / info / cyan)
 *  • Notification icon palette
 *  • Priority badge palette
 *  • Status / leave / holiday badge palette
 *  • Avatar letter-color palette (--bg-color-1…10)
 *  • Progress-bar palette (timesheet)
 *  • Layout sizing tokens (sidebar, topbar, card)
 *
 * ── What does NOT live here ────────────────────────────────────
 *  Dynamic admin-customisable tokens are set exclusively by the
 *  file public://pms-theme-colors.css generated under
 *  Admin → Config → Rising PMS → Theme Colors:
 *
 *    --pms-primary            --pms-primary-dark
 *    --pms-primary-light      --pms-primary-rgb
 *    --pms-secondary          --pms-secondary-rgb
 *    --pms-sidebar-bg         --pms-sidebar-link
 *    --pms-accent             --pms-accent-dark  --pms-accent-rgb
 *    --pms-header-bg          --pms-body-color
 *    --pms-link-color         --pms-font-family
 *
 *  Never declare those here — this file loads after that CSS and
 *  would silently override the user's saved colour choices.
 *
 * ── Load order ─────────────────────────────────────────────────
 *  Listed first in rising_pms.libraries.yml → loaded before
 *  style.css, main.css, and all module CSS that reference these
 *  variables.
 */

:root {

  /* ═══════════════════════════════════════════════════════════
     TYPOGRAPHY
     ═══════════════════════════════════════════════════════════ */

  --pms-font:              var(--pms-font-family, 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
  --pms-font-mono:         'JetBrains Mono', 'Fira Code', Consolas, 'Courier New', monospace;


  /* ═══════════════════════════════════════════════════════════
     SURFACE & BACKGROUNDS
     ═══════════════════════════════════════════════════════════ */

  --pms-surface:           #ffffff;        /* card / panel white */
  --pms-surface-soft:      #f8f9fc;        /* slightly off-white surface (tables, sidebar alt) */
  --pms-bg-page:           #f8f9fa;        /* outer page background */
  --pms-bg-highlight:      #eef0fd;        /* primary-tinted hover / active-tab bg */
  --pms-bg-sidebar-hover:  #eff6ff;        /* sidebar nav item hover */


  /* ═══════════════════════════════════════════════════════════
     BORDERS
     ═══════════════════════════════════════════════════════════ */

  --pms-border:            #e8ecf0;        /* standard divider / card border */
  --pms-border-soft:       #f0f2f8;        /* subtle inner divider */
  --pms-border-strong:     #d1d5db;        /* input outline / prominent divider */
  --pms-border-primary:    rgba(74, 108, 247, 0.20); /* primary-tinted focus ring */


  /* ═══════════════════════════════════════════════════════════
     TEXT
     ═══════════════════════════════════════════════════════════ */

  --pms-text-heading:      #111827;        /* headings, page titles */
  --pms-text-body:         var(--pms-body-color, #374151); /* standard body copy */
  --pms-text-subtle:       #6b7280;        /* secondary text, labels */
  --pms-text-muted:        #9ca3af;        /* placeholder, timestamps, captions */
  --pms-text-dark:         #1e293b;        /* unread/highlighted text (near-black slate) */
  --pms-text-link:         var(--pms-link-color, #1d4ed8); /* anchor / clickable text */
  --pms-text-inverse:      #ffffff;        /* text on dark/coloured backgrounds */


  /* ═══════════════════════════════════════════════════════════
     LAYOUT SIZING
     ═══════════════════════════════════════════════════════════ */

  --pms-sidebar-width:     250px;
  --pms-sidebar-collapsed: 0px;
  --pms-topbar-height:     60px;
  --pms-radius-sm:         4px;
  --pms-radius:            6px;
  --pms-radius-md:         8px;
  --pms-radius-lg:         12px;
  --pms-radius-xl:         16px;
  --pms-transition:        all 0.25s ease;
  --pms-shadow-sm:         0 1px 3px rgba(0, 0, 0, 0.07);
  --pms-shadow:            0 1px 8px rgba(0, 0, 0, 0.07);
  --pms-shadow-md:         0 4px 16px rgba(0, 0, 0, 0.10);
  --pms-shadow-lg:         0 8px 32px rgba(0, 0, 0, 0.12);


  /* ═══════════════════════════════════════════════════════════
     STATUS COLORS
     ═══════════════════════════════════════════════════════════ */

  /* Success / Green */
  --pms-success:           #16a34a;        /* green-600 */
  --pms-success-dark:      #059669;        /* emerald-600 */
  --pms-success-light:     #dcfce7;        /* green-100  */
  --pms-success-mid:       #d1fae5;        /* emerald-100 */

  /* Danger / Red */
  --pms-danger:            #dc2626;        /* red-600 */
  --pms-danger-light:      #fee2e2;        /* red-100 */

  /* Warning / Amber */
  --pms-warning:           #f59e0b;        /* amber-500 */
  --pms-warning-dark:      #d97706;        /* amber-600 */
  --pms-warning-light:     #fef3c7;        /* amber-100 */

  /* Info / Blue */
  --pms-info:              #2563eb;        /* blue-600 */
  --pms-info-light:        #dbeafe;        /* blue-100 */

  /* Cyan / Resource / Hosting */
  --pms-cyan:              #0891b2;        /* cyan-600 */
  --pms-cyan-light:        #e0f2fe;        /* sky-100 */


  /* ═══════════════════════════════════════════════════════════
     ROLE ALIASES
     (thin wrappers so component CSS uses short names and still
     respects the admin-customisable --pms-primary dynamic var)
     ═══════════════════════════════════════════════════════════ */

  --primary:               var(--pms-primary, #4a6cf7);
  --primary-hover:         var(--pms-primary-dark, #3a5ce5);
  --primary-light:         var(--pms-primary-light, #eef0fd);
  --accent:                var(--pms-accent, #4a6cf7);
  --accent-hover:          var(--pms-accent-dark, #3a5ce5);

  --success:               var(--pms-success,  #16a34a);
  --warning:               var(--pms-warning,  #f59e0b);
  --danger:                var(--pms-danger,   #dc2626);
  --info:                  var(--pms-info,     #2563eb);


  /* ═══════════════════════════════════════════════════════════
     SIDEBAR / TOPBAR / CARD (layout component tokens)
     These reference the dynamic --pms-secondary / --pms-header-bg
     that come from the admin-generated CSS.
     ═══════════════════════════════════════════════════════════ */

  --sidebar-bg:            var(--pms-sidebar-bg, #ffffff);
  --sidebar-brand-bg:      var(--pms-sidebar-bg, #ffffff);
  --sidebar-border:        #e8ecf0;
  --sidebar-text:          var(--pms-sidebar-link, #111827);
  --sidebar-icon:          var(--pms-sidebar-link, #6b7280);
  --sidebar-muted:         #6b7280;
  --sidebar-hover-bg:      var(--pms-bg-sidebar-hover, #eff6ff);
  --sidebar-active-text:   var(--pms-primary, #4a6cf7);
  --sidebar-submenu-bg:    var(--pms-sidebar-bg, #ffffff);
  --sidebar-submenu-active-text: var(--pms-primary, #4a6cf7);

  --topbar-bg:             var(--pms-header-bg, #ffffff);
  --topbar-shadow:         0 1px 4px rgba(0,0,0,0.08);
  --topbar-shadow-right:   0px 10px 5px rgba(0,0,0,0.08);
  --topbar-icon:           #6b7280;
  --topbar-border:         var(--pms-border, #e8ecf0);

  --content-bg:            var(--pms-bg-page, #f8f9fa);
  --card-bg:               var(--pms-surface, #ffffff);
  --card-radius:           var(--pms-radius, 6px);
  --card-shadow:           var(--pms-shadow, 0 1px 8px rgba(0,0,0,0.07));
  --card-border:           var(--pms-border, #e8ecf0);
  --border-color:          var(--pms-border, #e8ecf0);
  --border-radius:         var(--pms-radius, 6px);

  --text-color:            var(--pms-text-body, #374151);
  --text-muted:            var(--pms-text-muted, #9ca3af);
  --heading-color:         var(--pms-text-heading, #111827);
  --transition:            var(--pms-transition, all 0.25s ease);


  /* ═══════════════════════════════════════════════════════════
     AVATAR / LETTER PALETTE  (--bg-color-1 … --bg-color-10)
     Used for coloured initials in user avatars across the app.
     ═══════════════════════════════════════════════════════════ */

  --bg-color-1:   #6366f1;   /* indigo  */
  --bg-color-2:   #ec4899;   /* pink    */
  --bg-color-3:   #f59e0b;   /* amber   */
  --bg-color-4:   #10b981;   /* emerald */
  --bg-color-5:   #4a6cf7;   /* primary */
  --bg-color-6:   #f97316;   /* orange  */
  --bg-color-7:   #84cc16;   /* lime    */
  --bg-color-8:   #06b6d4;   /* cyan    */
  --bg-color-9:   #8b5cf6;   /* violet  */
  --bg-color-10:  #ef4444;   /* red     */


  /* ═══════════════════════════════════════════════════════════
     NOTIFICATION ICON BACKGROUNDS  (entity type icons)
     ═══════════════════════════════════════════════════════════ */

  --pms-notif-task-bg:        #dcfce7;
  --pms-notif-task-txt:       #16a34a;
  --pms-notif-subtask-bg:     #e0f2fe;
  --pms-notif-subtask-txt:    #0284c7;
  --pms-notif-project-bg:     #dbeafe;
  --pms-notif-project-txt:    #2563eb;
  --pms-notif-discuss-bg:     #ede9fe;
  --pms-notif-discuss-txt:    #7c3aed;
  --pms-notif-comment-bg:     #fef9c3;
  --pms-notif-comment-txt:    #ca8a04;
  --pms-notif-mention-bg:     #fce7f3;
  --pms-notif-mention-txt:    #db2777;
  --pms-notif-leave-bg:       #d1fae5;
  --pms-notif-leave-txt:      #059669;
  --pms-notif-resource-bg:    #e0f2fe;
  --pms-notif-resource-txt:   #0891b2;
  --pms-notif-other-bg:       #f1f5f9;
  --pms-notif-other-txt:      #64748b;


  /* ═══════════════════════════════════════════════════════════
     NOTIFICATION ACTION TYPE BADGES
     ═══════════════════════════════════════════════════════════ */

  --pms-badge-updated-bg:  #fff3e0;    --pms-badge-updated-txt:  #e65100;
  --pms-badge-created-bg:  #e8f5e9;    --pms-badge-created-txt:  #2e7d32;
  --pms-badge-deleted-bg:  #fce4ec;    --pms-badge-deleted-txt:  #c62828;
  --pms-badge-assigned-bg: #e3f2fd;    --pms-badge-assigned-txt: #1565c0;
  --pms-badge-comment-bg:  #f3e5f5;    --pms-badge-comment-txt:  #6a1b9a;
  --pms-badge-mention-bg:  #fce7f3;    --pms-badge-mention-txt:  #9d174d;
  --pms-badge-expiry-bg:   #fef3c7;    --pms-badge-expiry-txt:   #92400e;


  /* ═══════════════════════════════════════════════════════════
     PRIORITY BADGES
     ═══════════════════════════════════════════════════════════ */

  --pms-pri-trivial-bg:   #f3f4f6;   --pms-pri-trivial-txt:  #6b7280;
  --pms-pri-low-bg:       #dcfce7;   --pms-pri-low-txt:      #16a34a;
  --pms-pri-medium-bg:    #dbeafe;   --pms-pri-medium-txt:   #2563eb;
  --pms-pri-high-bg:      #ffedd5;   --pms-pri-high-txt:     #ea580c;
  --pms-pri-critical-bg:  #fee2e2;   --pms-pri-critical-txt: #dc2626;
  --pms-pri-blocker-bg:   #111827;   --pms-pri-blocker-txt:  #f3f4f6;


  /* ═══════════════════════════════════════════════════════════
     LEAVE STATUS BADGES
     ═══════════════════════════════════════════════════════════ */

  --pms-leave-full-bg:      #dbeafe;  --pms-leave-full-txt:     #1d4ed8;
  --pms-leave-half-bg:      #fef3c7;  --pms-leave-half-txt:     #92400e;
  --pms-leave-approved-bg:  #dcfce7;  --pms-leave-approved-txt: #16a34a;
  --pms-leave-pending-bg:   #fef9c3;  --pms-leave-pending-txt:  #ca8a04;
  --pms-leave-rejected-bg:  #fee2e2;  --pms-leave-rejected-txt: #dc2626;
  --pms-leave-cancelled-bg: #f3f4f6;  --pms-leave-cancelled-txt:#6b7280;


  /* ═══════════════════════════════════════════════════════════
     HOLIDAY / RESOURCE TYPE BADGES
     ═══════════════════════════════════════════════════════════ */

  --pms-badge-national-bg:  #dcfce7;   --pms-badge-national-txt: #15803d;
  --pms-badge-regional-bg:  #ede9fe;   --pms-badge-regional-txt: #6d28d9;
  --pms-badge-company-bg:   #dbeafe;   --pms-badge-company-txt:  #1d4ed8;
  --pms-badge-early-bg:     #fef3c7;   --pms-badge-early-txt:    #b45309;


  /* ═══════════════════════════════════════════════════════════
     PROJECT PROGRESS REPORT TAG COLORS
     ═══════════════════════════════════════════════════════════ */

  --pms-tag-seo-bg:       #dbeafe;  --pms-tag-seo-txt:      #1d4ed8;
  --pms-tag-dev-bg:       #d1fae5;  --pms-tag-dev-txt:      #065f46;
  --pms-tag-design-bg:    #fce7f3;  --pms-tag-design-txt:   #9d174d;
  --pms-tag-marketing-bg: #fef3c7;  --pms-tag-marketing-txt:#92400e;
  --pms-tag-client-bg:    #e0f2fe;  --pms-tag-client-txt:   #0369a1;
  --pms-tag-internal-bg:  #f3f4f6;  --pms-tag-internal-txt: #374151;


  /* ═══════════════════════════════════════════════════════════
     TIMESHEET / PROGRESS BAR PALETTE
     ═══════════════════════════════════════════════════════════ */

  --pms-progress-ontime:     #558bfb;   /* on-track task bar */
  --pms-progress-delayed:    #fb558a;   /* delayed / at-risk bar */
  --pms-progress-overdue:    #dc2626;   /* overdue bar */
  --pms-progress-running-out:#f59e0b;   /* near-limit bar */
  --pms-progress-done:       #16a34a;   /* completed bar */
  --pms-progress-track:      #e5e7eb;   /* track / background bar */
}
