/* Arman Pouyan — Global Indigo Theme
   Brand green/teal is intentionally replaced with indigo/royal-blue.
   Green remains only for semantic success / online / healthy states.
*/

:root{
  --brand-primary:#4F46E5;
  --brand-primary-strong:#4338CA;
  --brand-primary-dark:#312E81;
  --brand-primary-deep:#1E1B4B;
  --brand-blue:#2563EB;
  --brand-sky:#38BDF8;

  --brand-soft:#EEF2FF;
  --brand-soft-blue:#EFF6FF;
  --brand-ice:#F7FAFF;

  --surface:#FFFFFF;
  --canvas:#F5F7FB;

  --text-primary:#172033;
  --text-secondary:#667085;
  --border-soft:#DDE3EE;

  /* Legacy application aliases */
  --t:#4F46E5;
  --t2:#6366F1;
  --ts:#EEF2FF;

  --i:#4338CA;
  --id:#312E81;
  --ix:#1E1B4B;
  --is:#EEF2FF;

  --ink:#172033;
  --text:#475569;
  --muted:#667085;
  --line:#DDE3EE;
  --bg:#F5F7FB;

  /* Premium legacy aliases */
  --forest:#312E81;
  --forest-2:#4338CA;
  --forest-3:#4F46E5;

  /* Portal legacy aliases */
  --pf:#312E81;
  --pf2:#4F46E5;
  --pbg:#F5F7FB;
  --pink:#172033;
  --pm:#667085;

  /* Semantic colors */
  --gr:#16A34A;
  --grs:#F0FDF4;
}

/* ---------- General ---------- */

html{
  accent-color:var(--brand-primary);
}

body{
  background:var(--canvas);
  color:var(--text-secondary);
}

::selection{
  background:#C7D2FE;
  color:#1E1B4B;
}

:focus-visible{
  outline:3px solid rgba(79,70,229,.24)!important;
  outline-offset:2px;
}

input:focus,
select:focus,
textarea:focus{
  border-color:var(--brand-primary)!important;
  box-shadow:0 0 0 4px rgba(79,70,229,.11)!important;
}

/* ---------- Buttons ---------- */

.btn-primary,
.portal-submit{
  background:linear-gradient(135deg,#4F46E5,#2563EB)!important;
  color:#fff!important;
}

.btn-primary:hover,
.portal-submit:hover{
  background:linear-gradient(135deg,#4338CA,#1D4ED8)!important;
}

.btn-ghost{
  color:#4338CA!important;
  border-color:#C7D2FE!important;
}

.btn-light{
  background:#EEF2FF!important;
  color:#4338CA!important;
}

/* ---------- Public website ---------- */

.topbar{
  background:linear-gradient(90deg,#1E1B4B,#312E81,#4338CA)!important;
}

.public-nav a:hover,
.eyebrow,
.section-title-row a,
.portal-card b,
.panel-head a,
.back-link{
  color:#4F46E5!important;
}

.public-nav a:after{
  background:linear-gradient(90deg,#4F46E5,#38BDF8)!important;
}

.hero{
  background:
    radial-gradient(circle at 10% 20%,rgba(79,70,229,.15),transparent 31%),
    linear-gradient(125deg,#fff 34%,#F3F6FF)!important;
}

.hero-visual{
  background:linear-gradient(145deg,#EEF2FF,#DBEAFE)!important;
}

.page-hero,
.page-hero.grade-hero{
  background:
    radial-gradient(circle at 15% 25%,rgba(56,189,248,.22),transparent 34%),
    linear-gradient(110deg,#1E1B4B,#4338CA,#2563EB)!important;
}

.parent-theme,
.student-theme,
.teacher-theme{
  background:linear-gradient(110deg,#312E81,#4F46E5,#2563EB)!important;
}

.cta-card{
  background:
    radial-gradient(circle at 12% 20%,rgba(56,189,248,.22),transparent 33%),
    linear-gradient(105deg,#1E1B4B,#4338CA,#2563EB)!important;
}

.footer{
  background:linear-gradient(120deg,#111640,#1E1B4B,#312E81)!important;
}

.portal-card:hover{
  border-color:#A5B4FC!important;
}

.portal-card>span,
.form-section-title>span,
.feature-card>span,
.portal-aside>span,
.worker-icon,
.class-icon{
  background:#EEF2FF!important;
  color:#4F46E5!important;
}

/* ---------- Premium public pages ---------- */

.premium-header{
  background:#fffffff2!important;
  border-color:#E1E7F0!important;
}

.premium-brand strong,
.premium-nav a:hover,
.premium-login{
  color:#312E81!important;
}

.premium-nav a:after{
  background:linear-gradient(90deg,#4F46E5,#38BDF8)!important;
}

.vision-hero,
.about-hero{
  background:
    radial-gradient(circle at 15% 20%,rgba(56,189,248,.18),transparent 30%),
    linear-gradient(125deg,#1E1B4B,#312E81,#4338CA)!important;
}

.vision-hero:before{
  background:
    linear-gradient(90deg,transparent 48%,rgba(15,23,42,.34)),
    radial-gradient(circle at 16% 14%,rgba(99,102,241,.22),transparent 27%)!important;
}

.vision-hero__badge{
  color:#312E81!important;
}

.vision-hero__grade{
  background:rgba(30,27,75,.92)!important;
}

.intelligence-card--feature{
  background:linear-gradient(155deg,#312E81,#4338CA)!important;
}

.card-icon{
  background:#EEF2FF!important;
  color:#4F46E5!important;
}

.grade-journey{
  background:linear-gradient(135deg,#1E1B4B,#312E81,#4338CA)!important;
}

.final-invitation__inner{
  background:linear-gradient(125deg,#312E81,#4338CA,#2563EB)!important;
}

.premium-gallery__item:after{
  background:linear-gradient(transparent 55%,rgba(30,27,75,.78))!important;
}

/* ---------- Admin ---------- */

.sidebar{
  background:
    radial-gradient(circle at 18% 6%,rgba(56,189,248,.15),transparent 25%),
    linear-gradient(180deg,#1E1B4B,#312E81,#4338CA)!important;
}

.sidebar nav a:hover{
  background:rgba(255,255,255,.10)!important;
}

.sidebar nav a.active{
  background:linear-gradient(90deg,rgba(99,102,241,.42),rgba(255,255,255,.10))!important;
  border-color:rgba(165,180,252,.25)!important;
  box-shadow:inset -3px 0 #93C5FD!important;
}

.admin-top{
  border-color:#E2E8F0!important;
  box-shadow:0 7px 25px rgba(49,46,129,.06)!important;
}

.admin-search{
  background:#F8FAFF!important;
  border-color:#E0E7FF!important;
}

.avatar{
  background:linear-gradient(135deg,#4F46E5,#2563EB)!important;
  box-shadow:0 7px 16px rgba(79,70,229,.20)!important;
}

.page-heading:after{
  background:linear-gradient(90deg,#4F46E5,#38BDF8)!important;
}

thead th{
  color:#312E81!important;
  background:#F3F4FF!important;
  border-bottom-color:#E0E7FF!important;
}

tbody tr:hover{
  background:#F8FAFF!important;
}

.pagination a.active,
.tab-links a.active{
  background:#4F46E5!important;
  color:#fff!important;
}

code{
  color:#4338CA!important;
  background:#EEF2FF!important;
}

/* ---------- Admin communications ---------- */

.comm-head h1,
.comm-section-title h2{
  color:#172033!important;
}

.comm-kpis b{
  color:#4338CA!important;
}

.comm-filters a.active,
.comm-card button,
.meeting-card button{
  background:#4F46E5!important;
  color:#fff!important;
}

.comm-status,
.meeting-card header>span{
  background:#EEF2FF!important;
  color:#4338CA!important;
}

/* ---------- Portal login ---------- */

.portal-login-story{
  background:
    radial-gradient(circle at 12% 14%,rgba(56,189,248,.14),transparent 28%),
    linear-gradient(145deg,#1E1B4B,#312E81,#4338CA)!important;
}

.portal-login-story:after{
  border-color:rgba(165,180,252,.18)!important;
  box-shadow:
    0 0 0 80px rgba(129,140,248,.05),
    0 0 0 160px rgba(129,140,248,.025)!important;
}

.portal-back,
.portal-story-copy p,
.portal-story-points b,
.portal-login-story>small{
  color:#D8E3FF!important;
}

.portal-story-copy>span{
  color:#BFDBFE!important;
}

.portal-login-panel{
  background:#FAFBFF!important;
}

.portal-login-eyebrow,
.portal-help a{
  color:#4F46E5!important;
}

.portal-login-box h2{
  color:#312E81!important;
}

.role-switch{
  background:#EEF2FF!important;
}

.role-switch a{
  color:#64748B!important;
}

.role-switch a.active{
  color:#312E81!important;
  background:#fff!important;
  box-shadow:0 5px 16px rgba(79,70,229,.10)!important;
}

.portal-login-form input{
  border-color:#DDE3EE!important;
}

.portal-login-form input:focus{
  border-color:#4F46E5!important;
  box-shadow:0 0 0 3px rgba(79,70,229,.12)!important;
}

/* ---------- Student / Parent portal ---------- */

.member-sidebar{
  background:
    radial-gradient(circle at 16% 6%,rgba(56,189,248,.13),transparent 24%),
    linear-gradient(180deg,#1E1B4B,#312E81,#4338CA)!important;
}

.member-brand>span{
  background:linear-gradient(135deg,#EEF2FF,#DBEAFE)!important;
  color:#312E81!important;
}

.member-brand small,
.member-sidebar-foot small{
  color:#C7D2FE!important;
}

.member-sidebar nav a{
  color:#DDE5FF!important;
}

.member-sidebar nav a:hover{
  background:rgba(255,255,255,.09)!important;
}

.member-sidebar nav a.active{
  background:rgba(99,102,241,.28)!important;
  border-right-color:#93C5FD!important;
  color:#fff!important;
}

.member-top{
  border-color:#E2E8F0!important;
  box-shadow:0 7px 25px rgba(49,46,129,.055)!important;
}

.member-top-actions button{
  border-color:#E0E7FF!important;
  color:#4338CA!important;
}

.member-welcome{
  background:
    radial-gradient(circle at 8% 10%,rgba(56,189,248,.16),transparent 30%),
    linear-gradient(125deg,#312E81,#4338CA,#2563EB)!important;
}

.member-welcome span{
  color:#BFDBFE!important;
}

.member-welcome p{
  color:#DCE7FF!important;
}

.member-overview article,
.member-module-grid article,
.member-card{
  border-color:#E0E7FF!important;
}

.member-overview article>span,
.member-module-grid article>span,
.member-growth>span{
  background:#EEF2FF!important;
  color:#4F46E5!important;
}

.member-section-head h2,
.workspace-heading h1{
  color:#312E81!important;
}

.member-module-grid a,
.workspace-heading>a{
  color:#4F46E5!important;
}

.member-growth i{
  background:linear-gradient(90deg,#4F46E5,#38BDF8)!important;
}

/* ---------- Older teacher/shared portal styles ---------- */

.class-tabs a.active{
  background:#4F46E5!important;
}

.op-card-head>span,
.student-mini-avatar{
  background:#EEF2FF!important;
  color:#4338CA!important;
}

.op-form button{
  background:linear-gradient(135deg,#4F46E5,#2563EB)!important;
}

/* ---------- Attendance ----------
   Present is brand-blue, not green.
   Green is reserved for actual success messages only.
*/

.attendance-student{
  --status:#4F46E5!important;
  --soft:#EEF2FF!important;
}

.attendance-status-button{
  color:#4338CA!important;
}

.attendance-status-button[data-pick-status="unexcused_absent"]{
  color:#B91C1C!important;
}

.attendance-status-button[data-pick-status="excused_absent"]{
  color:#1D4ED8!important;
}

.attendance-status-button[data-pick-status="late"]{
  color:#92400E!important;
}

.attendance-all-present{
  color:#4338CA!important;
  border-color:#6366F1!important;
  background:#fff!important;
}

.attendance-save{
  background:#4F46E5!important;
}

.attendance-state-label[data-status="present"]{
  color:#4338CA!important;
  background:#EEF2FF!important;
}

.attendance-state-label[data-status="unexcused_absent"]{
  color:#991B1B!important;
  background:#FEF2F2!important;
}

.attendance-state-label[data-status="excused_absent"]{
  color:#1E40AF!important;
  background:#EFF6FF!important;
}

.attendance-state-label[data-status="late"]{
  color:#92400E!important;
  background:#FFFBEB!important;
}

/* semantic success intentionally stays green */
.alert.success,
.attendance-success,
.online,
.job-status.done,
.published,
.success-icon{
  /* intentionally semantic green */
}

/* ---------- Utility visual cleanup ---------- */

.status-badge:not(.success){
  background:#EEF2FF!important;
  color:#4338CA!important;
  border-color:#C7D2FE!important;
}

.security-note .icon{
  color:#4F46E5!important;
}

.info-card,
.security-note,
.portal-aside{
  background:linear-gradient(145deg,#F8FAFF,#EEF2FF)!important;
  border-color:#E0E7FF!important;
}

.success-page{
  background:radial-gradient(circle,#EEF2FF,transparent 58%)!important;
}

.tracking-code{
  color:#312E81!important;
  background:#EEF2FF!important;
  border-color:#A5B4FC!important;
}

/* Keep online/status dots green because they are semantic */
.status-dot,
.online-dot{
  /* semantic success/online */
}
