/* ============================================================
   BYOUSCHOLARSHIP — main.css
   Theme: Green + White | Fonts: Noto Sans Lao + Poppins
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Lao:wght@100..900&family=Poppins:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900&display=swap');

:root {
  --primary:       #2e7d32;
  --primary-light: #43a047;
  --primary-dark:  #1b5e20;
  --primary-bg:    #e8f5e9;
  --primary-bg2:   #f1f8f1;
  --bg:          #f5f7f5;
  --sidebar:     #ffffff;
  --card:        #ffffff;
  --border:      #c8dfc8;
  --border-lt:   #e0eee0;
  --text:        #1a2e1a;
  --text-sub:    #3d5c3d;
  --text-muted:  #7a9a7a;
  --green:       #2e7d32;  --green-bg:  #e8f5e9;
  --amber:       #e65100;  --amber-bg:  #fff3e0;
  --red:         #c62828;  --red-bg:    #ffebee;
  --blue:        #1565c0;  --blue-bg:   #e3f2fd;
  --purple:      #6a1b9a;  --purple-bg: #f3e5f5;
  --shadow-sm:   0 2px 8px rgba(46,125,50,.09);
  --shadow-md:   0 6px 24px rgba(46,125,50,.13);
  --shadow-hover:0 8px 28px rgba(46,125,50,.2);
  --sidebar-w:   260px;
  --radius:      14px;
  --radius-sm:   10px;
  --radius-xs:   6px;
  --font: 'Noto Sans Lao','Poppins','Calibri',sans-serif;
  --font-lao: 'Noto Sans Lao',sans-serif;
  --font-en: 'Calibri','Poppins',sans-serif;
  --font-zh: 'SimSun','STSong',serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.65;font-size:15px;-webkit-font-smoothing:antialiased}
.lao{font-family:var(--font-lao)} .en{font-family:var(--font-en)} .zh{font-family:var(--font-zh)}
a{text-decoration:none;color:inherit}

/* Layout */
.layout{display:flex;height:100vh;overflow:clip}
.main-content{flex:1;padding:36px 42px;overflow-y:auto;height:100vh;background:var(--bg)}

/* Sidebar */
.sidebar{width:var(--sidebar-w);background:var(--sidebar);border-right:2px solid var(--border);display:flex;flex-direction:column;height:100vh;overflow:hidden;flex-shrink:0;box-shadow:3px 0 16px rgba(46,125,50,.08);z-index:50}

.sidebar-brand{padding:24px 20px 20px;border-bottom:2px solid var(--border);display:flex;align-items:center;gap:12px}
.brand-logo{width:42px;height:42px;border-radius:10px;object-fit:contain;flex-shrink:0;background:var(--primary-bg);padding:3px}
.brand-name{font-size:15px;font-weight:900;color:var(--primary-dark);letter-spacing:-.3px;line-height:1.2}
.brand-sub{font-size:10px;color:var(--text-muted);letter-spacing:.7px;text-transform:uppercase;margin-top:2px}

.sidebar-nav{flex:1;padding:14px 10px;overflow-y:auto}
.nav-group-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1.2px;font-weight:700;padding:10px 12px 4px;margin-top:4px}

.nav-item{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--text-sub);margin-bottom:3px;transition:background .15s,color .15s,transform .12s,box-shadow .15s;cursor:pointer;text-decoration:none;border:1.5px solid transparent}
.nav-item:hover{background:var(--primary-bg);color:var(--primary);border-color:var(--border);transform:translateX(4px)}
.nav-item.active{background:var(--primary);color:#fff;font-weight:700;border-color:var(--primary-dark);box-shadow:0 4px 12px rgba(46,125,50,.35)}
.nav-item.active:hover{transform:none}
.nav-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}

.sidebar-footer{padding:14px 14px;border-top:2px solid var(--border);display:flex;flex-direction:column;gap:10px}
.lang-toggle{background:var(--primary-bg);border-radius:var(--radius-sm);padding:4px;display:flex;gap:2px}
.lang-btn{flex:1;padding:7px 0;border-radius:var(--radius-xs);text-align:center;font-size:12px;font-weight:700;color:var(--text-muted);transition:all .15s;cursor:pointer;text-decoration:none}
.lang-btn:hover{color:var(--primary)}
.lang-btn.active{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}

.user-info{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--primary-bg2);font-size:13px}
.user-avatar{width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px rgba(46,125,50,.3)}
.user-name{flex:1;color:var(--text-sub);font-weight:600;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.logout-link{color:var(--red);font-size:11px;font-weight:600;white-space:nowrap}
.logout-link:hover{text-decoration:underline}

/* Topbar */
.topbar{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px}
.page-title{font-size:26px;font-weight:800;color:var(--text)}
.page-subtitle{font-size:13px;color:var(--text-muted);margin-top:3px}

/* Utilities */
.flex{display:flex} .gap-10{gap:10px} .gap-14{gap:14px} .gap-18{gap:18px}
.mb-16{margin-bottom:16px} .mb-20{margin-bottom:20px} .mb-24{margin-bottom:24px}
.wrap{flex-wrap:wrap}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}

/* Login */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-bg) 0%,#fff 60%,var(--primary-bg2) 100%)}
.login-card{background:#fff;border:2px solid var(--border);border-radius:20px;box-shadow:var(--shadow-md);padding:44px 40px;width:100%;max-width:420px}
.login-logo-wrap{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.login-logo-img{width:50px;height:50px;border-radius:12px;object-fit:contain;background:var(--primary-bg);padding:3px}
.login-logo{font-size:21px;font-weight:900;color:var(--primary-dark)}
.login-sub{font-size:12px;color:var(--text-muted);margin-bottom:28px;text-transform:uppercase;letter-spacing:.8px}

@media(max-width:1024px){.sidebar{width:220px}.main-content{padding:24px 20px;height:100vh}}
@media(max-width:768px){
  .sidebar{width:64px}
  .brand-text,.nav-item span,.nav-group-label,.user-name,.logout-link,.lang-toggle{display:none}
  .nav-item{justify-content:center;padding:13px}
  .main-content{padding:20px 14px}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
}