/*!
Theme Name:        SMVDU Admission Theme
Theme URI:         https://portal.smvdu.ac.in
Author:            SMVDU Development Team
Author URI:        https://smvdu.ac.in
Description:       Presentation-only layer for the SMVDU Admission Suite. All business logic, authentication, database access, and workflow rules are owned by the SMVDU Core Plugin. Changing or replacing this theme must never break admission workflows.
Version:           1.0.0
Requires at least: 6.0
Tested up to:      6.7
Requires PHP:      8.0
License:           Proprietary — All Rights Reserved
License URI:       #
Text Domain:       smvdu-admission
Tags:              university, admission, portal, custom
*/

/* ================================================================
   DESIGN TOKENS — CSS Custom Properties
   All visual decisions live here. Edit this block to retheme the
   entire suite without touching a single PHP file.
   ================================================================ */
:root {

  /* ── Brand Colors ─────────────────────────────────────────── */
  --color-primary:          #192844;
  --color-primary-dark:     #0f1b2e;
  --color-primary-light:    #243a5e;
  --color-primary-subtle:   #e8ecf3;

  --color-secondary:        #FF860B;
  --color-secondary-dark:   #e07000;
  --color-secondary-light:  #ffa040;
  --color-secondary-subtle: #fff4e6;

  --color-success:          #008131;
  --color-success-dark:     #006126;
  --color-success-light:    #00a83f;
  --color-success-subtle:   #e6f5ec;

  /* ── Semantic Colors ─────────────────────────────────────── */
  --color-danger:           #dc2626;
  --color-danger-subtle:    #fef2f2;
  --color-warning:          #d97706;
  --color-warning-subtle:   #fffbeb;
  --color-info:             #2563eb;
  --color-info-subtle:      #eff6ff;

  /* ── Neutral Palette ─────────────────────────────────────── */
  --color-white:            #ffffff;
  --color-gray-50:          #f8f9fa;
  --color-gray-100:         #f0f2f5;
  --color-gray-200:         #e4e7eb;
  --color-gray-300:         #d1d5db;
  --color-gray-400:         #9ca3af;
  --color-gray-500:         #6b7280;
  --color-gray-600:         #4b5563;
  --color-gray-700:         #374151;
  --color-gray-800:         #1f2937;
  --color-gray-900:         #111827;

  /* ── Typography ──────────────────────────────────────────── */
  --font-sans:  'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
                Oxygen, Ubuntu, Cantarell, sans-serif;
  --font-mono:  'JetBrains Mono', 'Fira Code', Consolas, 'Courier New', monospace;

  --text-xs:    0.75rem;    /* 12 px */
  --text-sm:    0.875rem;   /* 14 px */
  --text-base:  1rem;       /* 16 px */
  --text-lg:    1.125rem;   /* 18 px */
  --text-xl:    1.25rem;    /* 20 px */
  --text-2xl:   1.5rem;     /* 24 px */
  --text-3xl:   1.875rem;   /* 30 px */
  --text-4xl:   2.25rem;    /* 36 px */
  --text-5xl:   3rem;       /* 48 px */

  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;

  --leading-tight:   1.25;
  --leading-snug:    1.375;
  --leading-normal:  1.5;
  --leading-relaxed: 1.625;

  /* ── Spacing Scale (4 px base) ───────────────────────────── */
  --space-1:  0.25rem;   /*  4 px */
  --space-2:  0.5rem;    /*  8 px */
  --space-3:  0.75rem;   /* 12 px */
  --space-4:  1rem;      /* 16 px */
  --space-5:  1.25rem;   /* 20 px */
  --space-6:  1.5rem;    /* 24 px */
  --space-8:  2rem;      /* 32 px */
  --space-10: 2.5rem;    /* 40 px */
  --space-12: 3rem;      /* 48 px */
  --space-16: 4rem;      /* 64 px */
  --space-20: 5rem;      /* 80 px */
  --space-24: 6rem;      /* 96 px */

  /* ── Border Radius ───────────────────────────────────────── */
  --radius-sm:   0.25rem;
  --radius-md:   0.375rem;
  --radius-lg:   0.5rem;
  --radius-xl:   0.75rem;
  --radius-2xl:  1rem;
  --radius-full: 9999px;

  /* ── Elevation / Shadows ─────────────────────────────────── */
  --shadow-sm:    0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-md:    0 4px 6px -1px rgb(0 0 0 / 0.10), 0 2px 4px -2px rgb(0 0 0 / 0.10);
  --shadow-lg:    0 10px 15px -3px rgb(0 0 0 / 0.10), 0 4px 6px -4px rgb(0 0 0 / 0.10);
  --shadow-xl:    0 20px 25px -5px rgb(0 0 0 / 0.10), 0 8px 10px -6px rgb(0 0 0 / 0.10);
  --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);

  /* ── Layout ──────────────────────────────────────────────── */
  --max-width-content: 1280px;
  --max-width-text:     720px;
  --container-px:      var(--space-6);

  /* ── Admin Shell ─────────────────────────────────────────── */
  --admin-sidebar-width:       260px;
  --admin-sidebar-collapsed:    68px;
  --admin-topnav-height:        64px;
  --admin-sidebar-bg:          var(--color-primary);
  --admin-sidebar-text:        rgba(255 255 255 / 0.80);
  --admin-sidebar-text-muted:  rgba(255 255 255 / 0.45);
  --admin-sidebar-hover-bg:    rgba(255 255 255 / 0.08);
  --admin-sidebar-active-bg:   rgba(255 134 11 / 0.18);
  --admin-sidebar-active-text: var(--color-secondary);
  --admin-sidebar-border:      rgba(255 255 255 / 0.08);
  --admin-content-bg:          var(--color-gray-100);

  /* ── Student Shell ───────────────────────────────────────── */
  --student-sidebar-width:     260px;
  --student-topbar-height:      60px;
  --student-sidebar-bg:        var(--color-white);
  --student-sidebar-border:    var(--color-gray-200);
  --student-content-bg:        var(--color-gray-50);

  /* ── Motion ──────────────────────────────────────────────── */
  --t-fast: 120ms ease;
  --t-base: 220ms ease;
  --t-slow: 380ms ease;

  /* ── Z-index ─────────────────────────────────────────────── */
  --z-base:    0;
  --z-raised:  10;
  --z-sidebar: 40;
  --z-topnav:  50;
  --z-overlay: 100;
  --z-modal:   200;
  --z-toast:   300;
}

/* ================================================================
   RESET & BASE
   ================================================================ */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%; /* Safari / older WebKit */
  text-size-adjust: 100%;         /* Chrome 54+, Edge 79+, Firefox 116+, Samsung Internet 6+ */
}

body {
  font-family: var(--font-sans);
  font-size: var(--text-base);
  font-weight: var(--fw-regular);
  line-height: var(--leading-normal);
  color: var(--color-gray-800);
  background-color: var(--color-gray-50);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}

input, button, textarea, select {
  font: inherit;
}

a {
  color: var(--color-primary);
  text-decoration: none;
  transition: color var(--t-fast);
}

a:hover { color: var(--color-secondary); }

ul, ol { list-style: none; }

table { border-collapse: collapse; width: 100%; }

/* ================================================================
   BASE TYPOGRAPHY
   ================================================================ */
h1, h2, h3, h4, h5, h6 {
  font-weight: var(--fw-bold);
  line-height: var(--leading-tight);
  color: var(--color-gray-900);
}

h1 { font-size: var(--text-4xl); }
h2 { font-size: var(--text-3xl); }
h3 { font-size: var(--text-2xl); }
h4 { font-size: var(--text-xl); }
h5 { font-size: var(--text-lg); }
h6 { font-size: var(--text-base); font-weight: var(--fw-semibold); }

p {
  margin-bottom: var(--space-4);
  line-height: var(--leading-relaxed);
  color: var(--color-gray-600);
}

p:last-child { margin-bottom: 0; }

/* ================================================================
   LAYOUT UTILITIES
   ================================================================ */
.container {
  max-width: var(--max-width-content);
  margin-inline: auto;
  padding-inline: var(--container-px);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* ================================================================
   ACCESSIBILITY
   ================================================================ */
:focus-visible {
  outline: 2px solid var(--color-secondary);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

.skip-link {
  position: absolute;
  top: -100%;
  left: var(--space-4);
  padding: var(--space-2) var(--space-4);
  background: var(--color-primary);
  color: var(--color-white);
  font-weight: var(--fw-semibold);
  border-radius: var(--radius-md);
  z-index: var(--z-toast);
  transition: top var(--t-fast);
}

.skip-link:focus {
  top: var(--space-4);
  color: var(--color-white);
}

/* ================================================================
   WORDPRESS ADMIN BAR OFFSET
   ================================================================ */
.admin-bar .smvdu-site-header { top: 32px; }
.admin-bar .smvdu-admin-topnav { top: 32px; }

@media (max-width: 782px) {
  .admin-bar .smvdu-site-header,
  .admin-bar .smvdu-admin-topnav { top: 46px; }
}

/* ================================================================
   DEV-MODE PLUGIN PLACEHOLDER
   Visible only when WP_DEBUG is true (rendered by smvdu_plugin_placeholder())
   ================================================================ */
.smvdu-dev-placeholder {
  margin: var(--space-4);
  padding: var(--space-4) var(--space-6);
  background: var(--color-warning-subtle);
  border: 1px dashed var(--color-warning);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  color: var(--color-gray-700);
}

.smvdu-dev-placeholder code {
  font-family: var(--font-mono);
  background: rgb(0 0 0 / 0.06);
  padding: 0.1em 0.4em;
  border-radius: var(--radius-sm);
}

/* ================================================================
   PRINT
   ================================================================ */
@media print {
  .smvdu-site-header,
  .smvdu-site-footer,
  .smvdu-admin-sidebar,
  .smvdu-admin-topnav,
  .smvdu-student-sidebar,
  .smvdu-student-topbar { display: none !important; }
}
