/* ═══════════════════════════════════════════════════════════════
   Iterum School — Design System
   Palette: deep-navy sidebar + soft-white canvas + teal-purple
   accent drawn from the phoenix logo. Signature: sidebar glows
   with a subtle brand-gradient edge; cards float on a textured
   off-white ground instead of plain white.
═══════════════════════════════════════════════════════════════ */

@import url('../fonts/fonts.css');   /* self-hosted — no Google Fonts calls */

:root {
  --primary:       #5B4FE5;
  --primary-light: #EEEAFF;
  --primary-dark:  #3B2FC9;
  --secondary:     #0DBED6;
  --accent-green:  #22C55E;
  --brand-gradient: linear-gradient(135deg, #6D28D9 0%, #0DBED6 55%, #22C55E 100%);
  --success: #10B981;
  --warning: #F59E0B;
  --danger:  #EF4444;
  --purple:  #8B5CF6;
  --bg:      #F3F4F8;
  --surface: #ECEEF4;
  --card:    #FFFFFF;
  --border:  #E0E3EE;
  --border-strong: #C8CCDC;
  --text:       #0D0E1A;
  --ink:        #1D1147;
  --text-muted: #5A607A;
  --text-light: #9299B2;
  --success-tint: #ECFDF5; --success-tint-border: #6EE7B7; --success-tint-text: #065F46;
  --danger-tint:  #FFF1F2; --danger-tint-border:  #FECACA; --danger-tint-text:  #991B1B;
  --warning-tint: #FFFBEB; --warning-tint-border: #FDE68A; --warning-tint-text: #92400E;
  --purple-tint:  #F5F3FF; --purple-tint-border:  #DDD6FE; --purple-tint-text:  #5B21B6;
  --blue-tint:    #EFF6FF; --blue-tint-border:    #BFDBFE; --blue-tint-text:    #1D4ED8;
  --sidebar-w: 248px;
  --header-h:  60px;
  --radius:    12px;
  --radius-sm:  8px;
  --radius-lg: 16px;
  --shadow-xs: 0 1px 2px rgba(13,14,26,.05);
  --shadow:    0 1px 4px rgba(13,14,26,.07), 0 2px 8px rgba(13,14,26,.04);
  --shadow-md: 0 4px 16px rgba(13,14,26,.10);
  --shadow-lg: 0 8px 32px rgba(13,14,26,.14);
  --shadow-xl: 0 16px 48px rgba(13,14,26,.18);
  --transition: all .17s cubic-bezier(.4,0,.2,1);
}

/* ── Dark mode — "Ember Rising": deep navy canvas + a warm ember
   spectrum (amber → coral → violet) standing in for the phoenix
   fire, instead of the light theme's cooler purple-teal glow. ── */
[data-theme="dark"] {
  --primary:       #7B6FF0;
  --primary-light: rgba(123,111,240,.16);
  --primary-dark:  #5B4FE5;
  --secondary:     #22D3E0;
  --accent-green:  #34D399;
  --brand-gradient: linear-gradient(135deg, #E8873D 0%, #E5527A 50%, #7B5FE8 100%);
  --success: #5ED6A0;
  --warning: #E8873D;
  --danger:  #E5527A;
  --purple:  #9B8CF2;
  --bg:      #0B0C16;
  --surface: #14162A;
  --card:    #14162A;
  --border:  #23253E;
  --border-strong: #33355A;
  --text:       #F5F3FF;
  --ink:        #FFF6EC;
  --text-muted: #9195BC;
  --text-light: #6A6E92;
  --success-tint: rgba(94,214,160,.14);  --success-tint-border: rgba(94,214,160,.4);  --success-tint-text: #7EE8C4;
  --danger-tint:  rgba(229,82,122,.16);  --danger-tint-border:  rgba(229,82,122,.42); --danger-tint-text:  #F4879E;
  --warning-tint: rgba(232,135,61,.16);  --warning-tint-border: rgba(232,135,61,.42); --warning-tint-text: #F0A868;
  --purple-tint:  rgba(123,95,232,.18);  --purple-tint-border:  rgba(123,95,232,.45); --purple-tint-text:  #C3B6F7;
  --blue-tint:    rgba(91,143,229,.16);  --blue-tint-border:    rgba(91,143,229,.42); --blue-tint-text:    #9DC2F5;
  --shadow-xs: 0 1px 2px rgba(0,0,0,.3);
  --shadow:    0 1px 4px rgba(0,0,0,.35), 0 2px 10px rgba(0,0,0,.25);
  --shadow-md: 0 4px 20px rgba(0,0,0,.4);
  --shadow-lg: 0 10px 34px rgba(0,0,0,.45);
  --shadow-xl: 0 18px 52px rgba(0,0,0,.5);
}

@media (prefers-reduced-motion: no-preference) {
  body,.top-header,.card,.stat-card,.modal,.notif-panel,.lang-panel,.search-dropdown,.table-wrap,.kanban-col,.form-input,.form-select,.form-textarea,.search-input{transition:background-color .25s ease,border-color .25s ease,color .25s ease;}
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{height:100%;}
body{font-family:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;height:100%;overflow:hidden;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;}
button{font-family:inherit;}

.app-layout{display:flex;height:100vh;overflow:hidden;}

/* ── Sidebar ── */
.sidebar{width:var(--sidebar-w);background:#12132A;color:#C8CCE8;display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;transition:var(--transition);z-index:200;box-shadow:inset -1px 0 0 rgba(255,255,255,.04),3px 0 0 rgba(109,40,217,.5),6px 0 16px rgba(13,190,214,.12);}
.sidebar-logo{padding:20px 16px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.06);}
.sidebar-collapse-btn{margin-left:auto;background:none;border:none;color:#6366F1;width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;flex-shrink:0;transition:var(--transition);}
.sidebar-collapse-btn:hover{background:rgba(99,102,241,.25);color:#fff;}
.sidebar-rail{flex-shrink:0;position:relative;width:var(--sidebar-w);transition:width .18s ease;}
.sidebar-rail .sidebar{width:100%;height:100%;position:relative;z-index:200;}
@media(min-width:769px){
  html.sidebar-mini .sidebar-rail{width:68px;}
  html.sidebar-mini .sidebar-rail .sidebar{position:absolute;top:0;left:0;width:68px;height:100vh;transition:width .16s ease,box-shadow .16s ease;overflow-x:hidden;}
  html.sidebar-mini .sidebar-rail:hover .sidebar{width:var(--sidebar-w);box-shadow:var(--shadow-xl);}
  html.sidebar-mini .sidebar-rail:not(:hover) .sidebar .logo-text,
  html.sidebar-mini .sidebar-rail:not(:hover) .sidebar .nav-section,
  html.sidebar-mini .sidebar-rail:not(:hover) .sidebar .nav-item span,
  html.sidebar-mini .sidebar-rail:not(:hover) .sidebar .user-info,
  html.sidebar-mini .sidebar-rail:not(:hover) .sidebar .sidebar-user>a,
  html.sidebar-mini .sidebar-rail:not(:hover) .sidebar .sidebar-collapse-btn{display:none;}
  html.sidebar-mini .sidebar-rail:not(:hover) .sidebar .sidebar-logo,
  html.sidebar-mini .sidebar-rail:not(:hover) .sidebar .nav-item,
  html.sidebar-mini .sidebar-rail:not(:hover) .sidebar .sidebar-user{justify-content:center;}
  html.sidebar-mini .sidebar-rail .sidebar .nav-item i{flex-shrink:0;}
}
.logo-icon{width:30px;height:30px;object-fit:contain;flex-shrink:0;display:block;}
.logo-name{font-family:'Bricolage Grotesque',sans-serif;font-size:15px;font-weight:800;color:#fff;letter-spacing:-.3px;}
.logo-sub{font-size:10px;color:#6366F1;margin-top:1px;letter-spacing:.3px;}
.sidebar-nav{flex:1;padding:10px 8px;}
.nav-section{padding:16px 12px 5px;font-size:9.5px;text-transform:uppercase;letter-spacing:1.2px;color:#3D3F6B;font-weight:700;}
button.nav-section-toggle{width:100%;background:none;border:none;font:inherit;display:flex;align-items:center;justify-content:space-between;gap:6px;cursor:pointer;text-align:left;}
button.nav-section-toggle:hover{color:#6366F1;}
button.nav-section-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px;}
.nav-section-chevron{font-size:13px;transition:transform .18s ease;flex-shrink:0;}
.nav-section-toggle[aria-expanded="false"] .nav-section-chevron{transform:rotate(-90deg);}
.nav-group-wrap{display:grid;grid-template-rows:1fr;transition:grid-template-rows .2s ease;}
.nav-group-wrap.collapsed{grid-template-rows:0fr;}
.nav-group{overflow:hidden;min-height:0;}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;cursor:pointer;font-size:13px;color:#9299C8;transition:var(--transition);margin-bottom:1px;position:relative;}
.nav-item:hover{background:rgba(99,102,241,.15);color:#C8CCE8;}
.nav-item.active{background:linear-gradient(90deg,rgba(91,79,229,.3) 0%,rgba(13,190,214,.12) 100%);color:#fff;font-weight:600;}
.nav-item.active::before{content:'';position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:3px;height:20px;background:var(--brand-gradient);border-radius:0 3px 3px 0;}
.nav-item i{font-size:17px;width:19px;flex-shrink:0;}
.nav-badge{margin-left:auto;background:var(--primary);color:#fff;font-size:10px;padding:2px 7px;border-radius:12px;font-weight:700;}
.sidebar-footer{padding:8px;border-top:1px solid rgba(255,255,255,.06);}
.sidebar-user{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-top:4px;}
.user-avatar{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#5B4FE5,#0DBED6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;box-shadow:0 2px 8px rgba(91,79,229,.4);}
.user-name{font-size:12px;color:#fff;font-weight:600;}
.user-role{font-size:10px;color:#6366F1;text-transform:capitalize;letter-spacing:.3px;}

/* ── Main ── */
.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;}
.top-header{min-height:var(--header-h);height:auto;background:var(--card);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:10px 24px;gap:12px;flex-shrink:0;box-shadow:var(--shadow-xs);z-index:100;}
.header-title-wrap{display:flex;flex-direction:column;justify-content:center;gap:2px;}
.header-subtitle{font-size:12px;color:var(--text-muted);font-weight:500;white-space:nowrap;}
.header-title{font-family:'Bricolage Grotesque',sans-serif;font-size:16px;font-weight:800;color:var(--ink);white-space:nowrap;letter-spacing:-.3px;}
.header-actions{margin-left:auto;display:flex;align-items:center;gap:10px;}
.search-wrap{position:relative;}
.search-wrap i{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-light);font-size:15px;pointer-events:none;}
.search-input{padding:7px 12px 7px 34px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:13px;outline:none;width:220px;background:var(--surface);color:var(--text);transition:var(--transition);}
.search-input:focus{border-color:var(--primary);width:260px;background:var(--card);box-shadow:0 0 0 4px rgba(91,79,229,.1);}
.search-dropdown{position:absolute;top:calc(100% + 6px);left:0;width:300px;max-height:360px;overflow-y:auto;background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xl);z-index:200;padding:6px;}
.search-dropdown-item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius-sm);color:var(--text);transition:var(--transition);}
.search-dropdown-item:hover{background:var(--surface);}
.search-dropdown-icon{width:32px;height:32px;border-radius:8px;background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:15px;}
.search-dropdown-text{display:flex;flex-direction:column;min-width:0;}
.search-dropdown-title{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.search-dropdown-subtitle{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.search-dropdown-empty{padding:14px 10px;font-size:12px;color:var(--text-muted);text-align:center;}
.page-content{flex:1;overflow-y:auto;padding:28px 28px 40px;}

/* ── Flash ── */
.flash{display:flex;align-items:center;gap:10px;padding:12px 16px;font-size:13px;border-radius:var(--radius-sm);border:1.5px solid;margin:0;}
.flash-success{background:var(--success-tint);border-color:var(--success-tint-border);color:var(--success-tint-text);}
.flash-error{background:var(--danger-tint);border-color:var(--danger-tint-border);color:var(--danger-tint-text);}
.flash-info{background:var(--primary-light);border-color:var(--purple-tint-border);color:var(--purple-tint-text);}
.flash-close{margin-left:auto;background:none;border:none;cursor:pointer;opacity:.5;}
.flash-close:hover{opacity:1;}

/* ── Cards ── */
.card{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);position:relative;overflow:hidden;}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--brand-gradient);opacity:0;transition:opacity .2s;}
.card:hover::before{opacity:1;}
.card-sm{padding:14px 16px;}
.card-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:14px;display:flex;align-items:center;gap:8px;font-family:'Bricolage Grotesque',sans-serif;}
.card-title i{color:var(--text-muted);}

/* ── Grid ── */
.grid{display:grid;gap:16px;}
.g1{grid-template-columns:1fr;}
.g2{grid-template-columns:repeat(2,1fr);}
.g3{grid-template-columns:repeat(3,1fr);}
.g4{grid-template-columns:repeat(4,1fr);}
.g-auto{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}

/* ── Stat cards ── */
.stat-card{background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);display:flex;align-items:flex-start;gap:14px;transition:var(--transition);position:relative;overflow:hidden;}
.stat-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--brand-gradient);opacity:0;transition:opacity .2s;}
.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);}
.stat-card:hover::after{opacity:1;}
.stat-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.stat-label{font-size:11.5px;color:var(--text-muted);margin-bottom:3px;font-weight:500;letter-spacing:.2px;}
.stat-value{font-size:27px;font-weight:800;color:var(--ink);line-height:1.1;font-family:'Bricolage Grotesque',sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.2px;}
.stat-change{font-size:11px;color:var(--success);margin-top:4px;font-weight:600;}
.stat-change.down{color:var(--danger);}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;border:none;transition:var(--transition);white-space:nowrap;letter-spacing:.1px;}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 2px 8px rgba(91,79,229,.3);}
.btn-primary:hover{background:var(--primary-dark);box-shadow:0 4px 16px rgba(91,79,229,.4);transform:translateY(-1px);}
.btn-success{background:var(--success);color:#fff;box-shadow:0 2px 8px rgba(16,185,129,.3);}
.btn-success:hover{background:#0e9e6f;transform:translateY(-1px);}
.btn-danger{background:var(--danger-tint);color:var(--danger-tint-text);border:1.5px solid var(--danger-tint-border);}
.btn-danger:hover{background:var(--danger-tint-border);}
.btn-outline{background:transparent;border:1.5px solid var(--border);color:var(--text-muted);}
.btn-outline:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light);}
.btn-ghost{background:transparent;color:var(--text-muted);border:none;}
.btn-ghost:hover{color:var(--text);background:var(--surface);}
.btn-warning{background:var(--warning-tint);color:var(--warning-tint-text);border:1.5px solid var(--warning-tint-border);}
.btn-sm{padding:5px 11px;font-size:12px;border-radius:7px;}
.btn-lg{padding:11px 22px;font-size:15px;}
.btn-icon{padding:7px;width:34px;height:34px;justify-content:center;}
.btn-icon.btn-sm{width:28px;height:28px;padding:4px;}
.btn-block{width:100%;justify-content:center;}
.notif-btn{position:relative;background:transparent;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--text-muted);transition:var(--transition);}
.notif-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light);}
.notif-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;background:var(--danger);border-radius:50%;border:2px solid var(--card);}

/* ── Badges ── */
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.2px;}
.badge-blue{background:var(--blue-tint);color:var(--blue-tint-text);}
.badge-green{background:var(--success-tint);color:var(--success-tint-text);}
.badge-orange{background:var(--warning-tint);color:var(--warning-tint-text);}
.badge-red{background:var(--danger-tint);color:var(--danger-tint-text);}
.badge-purple{background:var(--purple-tint);color:var(--purple-tint-text);}
.badge-gray{background:var(--surface);color:var(--text-muted);}

/* ── Tables ── */
.table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums;}
.table th{text-align:left;padding:11px 16px;font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--text-muted);border-bottom:2px solid var(--border);font-weight:700;background:var(--surface);}
.table th:first-child{border-radius:var(--radius-sm) 0 0 0;}
.table th:last-child{border-radius:0 var(--radius-sm) 0 0;}
.table td{padding:11px 16px;border-bottom:1px solid var(--border);vertical-align:middle;}
.table tr:last-child td{border-bottom:none;}
.table tbody tr{transition:background .12s;}
.table tbody tr:hover td{background:var(--surface);}
.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1.5px solid var(--border);}

/* ── Forms ── */
.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;}
.form-label{font-size:12px;font-weight:600;color:var(--text-muted);letter-spacing:.2px;}
.form-input,.form-select,.form-textarea{padding:9px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:13px;outline:none;width:100%;background:var(--card);color:var(--text);transition:var(--transition);font-family:inherit;}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);background:var(--card);box-shadow:0 0 0 4px rgba(91,79,229,.1);}
.form-input:hover:not(:focus),.form-select:hover:not(:focus),.form-textarea:hover:not(:focus){border-color:var(--border-strong);}
.form-textarea{resize:vertical;min-height:80px;}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;}
.form-hint{font-size:11px;color:var(--text-light);}

/* ── Tabs ── */
.tabs{display:flex;gap:2px;border-bottom:2px solid var(--border);margin-bottom:20px;}
.tab{padding:9px 18px;font-size:13px;font-weight:600;cursor:pointer;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:var(--transition);background:none;border-top:none;border-left:none;border-right:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;}
.tab.active{color:var(--primary);border-bottom-color:transparent;background:var(--primary-light);border-image:var(--brand-gradient) 1;border-bottom-style:solid;border-bottom-width:2px;}
.tab:hover:not(.active){color:var(--text);background:var(--surface);}

/* ── Progress ── */
.progress{height:7px;background:var(--surface);border-radius:4px;overflow:hidden;border:1px solid var(--border);}
.progress-bar{height:100%;border-radius:4px;background:var(--brand-gradient);transition:width .5s cubic-bezier(.4,0,.2,1);}
.progress-lg{height:11px;}

/* ── Avatar ── */
.avatar{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;}
.avatar-sm{width:26px;height:26px;font-size:10px;border-radius:6px;}
.avatar-lg{width:52px;height:52px;font-size:18px;border-radius:14px;}

/* ── Status ── */
.status{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;}
.status::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;}
.status-active{color:var(--success);}
.status-scheduled{color:var(--primary);}
.status-progress{color:var(--warning);}
.status-cancelled{color:var(--danger);}
.status-completed{color:var(--success);}
.status-rescheduled{color:var(--purple);}

/* ── Chat ── */
.chat-container{display:flex;flex-direction:column;height:100%;}
.chat-messages{display:flex;flex-direction:column;gap:14px;padding:20px;overflow-y:auto;flex:1;}
.chat-bubble{padding:11px 15px;max-width:78%;font-size:13px;line-height:1.65;}
.chat-incoming{background:var(--card);border:1.5px solid var(--border);border-radius:14px 14px 14px 3px;align-self:flex-start;box-shadow:var(--shadow-xs);}
.chat-outgoing{background:var(--primary);color:#fff;border-radius:14px 14px 3px 14px;align-self:flex-end;box-shadow:0 2px 8px rgba(91,79,229,.25);}
.chat-ai{background:var(--purple-tint);border:1.5px solid var(--purple-tint-border);border-radius:14px 14px 14px 3px;}
.chat-input-wrap{padding:12px 16px;border-top:1.5px solid var(--border);display:flex;gap:8px;align-items:center;background:var(--card);}

/* ── Calendar ── */
.cal-event{border-left:3px solid;border-radius:6px;padding:4px 8px;font-size:11px;cursor:pointer;transition:var(--transition);}
.cal-event:hover{opacity:.85;transform:translateX(2px);}

/* ── Video player ── */
.video-player{background:#080811;border-radius:var(--radius);aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.video-controls{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.8));padding:16px;display:flex;align-items:center;gap:10px;}
.video-progress{flex:1;height:4px;background:rgba(255,255,255,.25);border-radius:2px;cursor:pointer;}
.video-progress-fill{height:100%;background:#fff;border-radius:2px;}

/* ── Kanban ── */
.kanban-board{display:flex;gap:16px;overflow-x:auto;padding-bottom:8px;}
.kanban-col{background:var(--surface);border-radius:var(--radius);padding:14px;min-width:230px;border:1.5px solid var(--border);}
.kanban-col-title{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.7px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;}
.kanban-card{background:var(--card);border:1.5px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px;cursor:grab;box-shadow:var(--shadow-xs);transition:var(--transition);font-size:12px;}
.kanban-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px);}
.kanban-card.dragging{opacity:.4;}
.kanban-card:active{cursor:grabbing;}

/* ── Drag & drop ── */
.drag-handle{color:var(--text-light);cursor:grab;}
.drag-handle:hover{color:var(--text-muted);}
.drop-target{border:2px dashed var(--primary) !important;background:var(--primary-light) !important;}

/* ── Charts ── */
.bar-chart{display:flex;align-items:flex-end;gap:6px;height:140px;}
.bar-chart-col{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;}
.bar{border-radius:5px 5px 0 0;transition:height .5s cubic-bezier(.4,0,.2,1);cursor:pointer;min-width:14px;width:60%;}
.bar:hover{opacity:.8;}
.bar-label{font-size:10px;color:var(--text-muted);font-weight:500;}

/* ── Page header ── */
.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:12px;}
.page-header-left h2{font-family:'Bricolage Grotesque',sans-serif;font-size:23px;font-weight:800;letter-spacing:-.4px;color:var(--ink);text-wrap:balance;}
.page-header-left p{font-size:13px;color:var(--text-muted);margin-top:3px;}
.page-header-actions{display:flex;gap:8px;flex-wrap:wrap;}

/* ── Curriculum tree ── */
.tree-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:9px;cursor:pointer;transition:var(--transition);}
.tree-item:hover{background:var(--surface);}
.tree-item.active{background:var(--primary-light);color:var(--primary);font-weight:600;}
.tree-children{padding-left:16px;}
.tree-actions{display:flex;align-items:center;gap:2px;margin-left:auto;flex-shrink:0;}
.tree-action-icon{display:flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:7px;color:var(--text-light);font-size:14px;cursor:pointer;transition:var(--transition);}
.tree-action-icon:hover{background:var(--border);color:var(--text-muted);}
.tree-action-icon.icon-danger:hover{background:var(--danger-tint);color:var(--danger);}
.tree-item.item-hidden>span:not(.tree-actions),.lesson-item.item-hidden .fw-500,.step-item.item-hidden .fw-500{opacity:.45;font-style:italic;}
.lesson-item .tree-actions,.step-item .tree-actions{opacity:0;}
.lesson-item:hover .tree-actions,.step-item:hover .tree-actions{opacity:1;}

/* ── Finance ── */
.profit-positive{color:var(--success);font-weight:700;}
.profit-negative{color:var(--danger);font-weight:700;}
.invoice-row:hover{cursor:pointer;}

/* ── AI Panel ── */
.ai-panel-wrap{background:var(--brand-gradient);border-radius:var(--radius) var(--radius) 0 0;padding:16px;display:flex;align-items:center;gap:10px;}
.ai-avatar{width:38px;height:38px;background:rgba(255,255,255,.2);border-radius:50%;display:flex;align-items:center;justify-content:center;}

/* ── Notifications ── */
.notif-panel{position:fixed;top:var(--header-h);right:20px;width:320px;background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xl);z-index:500;display:none;}
.notif-panel.open{display:block;animation:slideDown .15s ease;}
@keyframes slideDown{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:translateY(0);}}
.notif-header{padding:13px 16px;border-bottom:1.5px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.notif-item{padding:12px 16px;display:flex;align-items:flex-start;gap:10px;border-bottom:1px solid var(--border);cursor:pointer;transition:var(--transition);}
.notif-item:hover{background:var(--surface);}
.notif-item.unread{background:var(--primary-light);}
.notif-item:last-child{border-bottom:none;}
.notif-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.notif-title{font-size:12px;font-weight:600;}
.notif-time{font-size:11px;color:var(--text-light);margin-top:2px;}

/* ── Language switcher ── */
.lang-panel{position:absolute;top:calc(100% + 8px);right:0;width:170px;background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xl);z-index:500;display:none;padding:6px;}
.lang-panel.open{display:block;animation:slideDown .15s ease;}
.lang-option{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);border:none;background:none;font-size:13px;font-weight:500;color:var(--text);cursor:pointer;transition:var(--transition);text-align:left;}
.lang-option:hover{background:var(--surface);}
.lang-option.active{background:var(--primary-light);color:var(--primary);}
.lang-option .ti-check{margin-left:auto;font-size:14px;}

/* ── Modals ── */
.modal-backdrop{position:fixed;inset:0;background:rgba(8,8,20,.5);backdrop-filter:blur(3px);z-index:900;display:flex;align-items:center;justify-content:center;}
.modal{background:var(--card);border-radius:var(--radius-lg);padding:26px;width:min(560px,95vw);box-shadow:var(--shadow-xl);max-height:90vh;overflow-y:auto;animation:modalIn .18s cubic-bezier(.4,0,.2,1);}
@keyframes modalIn{from{opacity:0;transform:scale(.96) translateY(8px);}to{opacity:1;transform:scale(1) translateY(0);}}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;}
.modal-title{font-family:'Bricolage Grotesque',sans-serif;font-size:17px;font-weight:800;letter-spacing:-.3px;color:var(--ink);}
.modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:22px;padding-top:16px;border-top:1.5px solid var(--border);}

/* ── Markdown ── */
.markdown-body{line-height:1.75;font-size:14px;color:var(--text);word-wrap:break-word;}
.markdown-body h1,.markdown-body h2,.markdown-body h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;line-height:1.3;margin:0 0 10px;letter-spacing:-.3px;}
.markdown-body h1{font-size:26px;}
.markdown-body h2{font-size:21px;}
.markdown-body h3{font-size:17px;}
.markdown-body p{margin:0 0 12px;}
.markdown-body p:last-child{margin-bottom:0;}
.markdown-body strong{font-weight:700;}
.markdown-body em{font-style:italic;}
.markdown-body u{text-decoration:underline;}
.markdown-body del{text-decoration:line-through;opacity:.65;}
.markdown-body mark{background:#FEF08A;color:inherit;padding:1px 3px;border-radius:3px;}
.markdown-body a{color:var(--primary);text-decoration:underline;}
.markdown-body ul,.markdown-body ol{margin:0 0 12px;padding-left:22px;}
.markdown-body li{margin-bottom:5px;}
.markdown-body ul.md-tasklist{list-style:none;padding-left:0;margin:0 0 12px;}
.markdown-body li.md-task-item{margin-bottom:6px;}
.markdown-body label.md-task-label{display:flex;align-items:flex-start;gap:9px;cursor:pointer;line-height:1.5;}
.markdown-body input.md-task-checkbox{width:17px;height:17px;flex-shrink:0;margin-top:2px;accent-color:var(--primary);cursor:pointer;}
.markdown-body li.md-task-item.md-task-checked label.md-task-label span{color:var(--text-muted);text-decoration:line-through;}
.markdown-body blockquote{border-left:3px solid var(--primary);padding:4px 16px;margin:0 0 12px;color:var(--text-muted);background:var(--primary-light);border-radius:0 8px 8px 0;}
.markdown-body blockquote p{margin-bottom:6px;}
.markdown-body code{background:var(--surface);border:1px solid var(--border);padding:2px 6px;border-radius:5px;font-family:monospace;font-size:12.5px;}
.markdown-body pre{background:#0D0E1A;color:#E2E8F0;padding:14px 16px;border-radius:10px;overflow-x:auto;margin:0 0 12px;}
.markdown-body pre code{background:none;border:none;padding:0;color:inherit;}
.md-toolbar select.form-input{min-width:0;}
.md-toolbar .btn-active{background:var(--primary-light);border-color:var(--primary);color:var(--primary);}
.md-preview{min-height:60px;padding:8px 2px;}
.md-preview:empty::before{content:'Nothing to preview yet — switch back to Edit and start typing.';color:var(--text-muted);font-size:13px;}

/* ── Misc ── */
.feedback-temp-chip{font-weight:700;font-size:12px;width:26px;height:26px;padding:0;}
.subject-tab-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 18px;font-size:13px;font-weight:600;border-radius:999px;border:1.5px solid var(--border);background:var(--card);color:var(--text-muted);cursor:pointer;transition:var(--transition);}
.subject-tab-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light);}
.subject-tab-btn.active{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 2px 8px rgba(91,79,229,.3);}
.hw-list-item{transition:var(--transition);}
.hw-list-item:hover{border-color:var(--primary) !important;box-shadow:var(--shadow-md) !important;}

/* ── Utilities ── */
.mb-0{margin-bottom:0;}.mb-8{margin-bottom:8px;}.mb-12{margin-bottom:12px;}.mb-16{margin-bottom:16px;}.mb-20{margin-bottom:20px;}.mb-24{margin-bottom:24px;}
.mt-auto{margin-top:auto;}
.fw-500{font-weight:500;}.fw-600{font-weight:600;}.fw-700{font-weight:700;}
.text-muted{color:var(--text-muted);}.text-sm{font-size:12px;}.text-xs{font-size:11px;}.text-success{color:var(--success);}.text-danger{color:var(--danger);}.text-primary{color:var(--primary);}.text-center{text-align:center;}
.flex{display:flex;}.flex-col{flex-direction:column;}.items-center{align-items:center;}.justify-between{justify-content:space-between;}
.gap-6{gap:6px;}.gap-8{gap:8px;}.gap-10{gap:10px;}.gap-12{gap:12px;}
.flex-1{flex:1;}.w-full{width:100%;}.hidden{display:none;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ── Mobile ── */
.sidebar-toggle{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-muted);padding:4px;display:none;}
@media(max-width:768px){
  .sidebar-toggle{display:flex;align-items:center;}
  .sidebar-rail{width:0 !important;}
  .sidebar-rail .sidebar,.sidebar{position:fixed;left:-100%;top:0;width:var(--sidebar-w);height:100vh;transition:left .2s;z-index:300;}
  .sidebar.open{left:0;}
}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:5px;height:5px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--text-light);}