@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@600;700&display=swap');

  .student-tools-content { padding:18px 23px 24px; }
  .student-library-modal { width:min(100%,900px); }
  .student-search-modal { width:min(100%,680px); }
  .student-profile-modal,.student-password-modal { width:min(100%,620px); }
  .student-library-toolbar { display:grid; gap:13px; margin-bottom:15px; }
  .student-tools-search { display:flex; align-items:center; gap:9px; border:1px solid #dce7ea; border-radius:7px; padding:0 12px; background:#fff; }
  .student-tools-search span { color:#628792; font-size:17px; }
  .student-tools-search input { min-width:0; flex:1; border:0; outline:0; padding:12px 0; color:var(--navy); background:transparent; font-size:12px; }
  .student-library-tabs { display:flex; gap:5px; overflow:auto; }
  .student-library-tabs button { border:1px solid #dfe9eb; border-radius:6px; padding:8px 11px; color:#6f858e; background:#fff; font-size:10px; white-space:nowrap; }
  .student-library-tabs button.active { color:#fff; border-color:var(--navy); background:var(--navy); }
  .student-library-tabs b { margin-left:4px; font-size:9px; opacity:.8; }
  .student-library-list,.student-search-results { display:grid; gap:8px; max-height:min(58vh,520px); overflow:auto; }
  .student-library-item { display:flex; align-items:center; gap:12px; padding:13px 14px; border:1px solid #e4ecef; border-radius:9px; background:#fbfcfc; }
  .student-library-icon,.student-search-icon { display:grid; place-items:center; width:37px; height:37px; flex:0 0 37px; border-radius:10px; color:#fff; background:#4a9caf; font-size:13px; }
  .student-library-icon.material { background:#d39a43; }
  .student-library-copy { min-width:0; flex:1; }
  .student-library-copy strong,.student-search-result strong { display:block; color:#294b5d; font-size:12px; }
  .student-library-copy small,.student-search-result small { display:block; margin-top:4px; color:#8a9ba3; font-size:10px; }
  .student-library-copy p { margin:6px 0 0; color:#718791; font-size:10px; line-height:1.4; }
  .student-library-open { flex:0 0 auto; color:#2b8497; background:transparent; font-size:10px; font-weight:700; }
  .student-library-open span { margin-left:5px; font-size:15px; vertical-align:-1px; }
  .student-tools-empty { padding:24px 8px; color:#8b9ca4; font-size:11px; text-align:center; }
  .student-search-input { margin-bottom:14px; }
  .student-search-result { display:flex; align-items:center; gap:11px; width:100%; padding:12px 13px; border:1px solid #e4ecef; border-radius:9px; color:inherit; background:#fff; text-align:left; }
  a.student-search-result:hover,.student-search-result:hover { background:#f7fafb; }
  .student-search-result>span:nth-child(2) { min-width:0; flex:1; }
  .student-search-result b { color:#8aa0a9; font-size:17px; font-weight:400; }
  .student-search-result .student-search-icon { width:32px; height:32px; flex-basis:32px; font-size:12px; background:#eaf4f4; color:#348797; }
  .student-profile-details { display:grid; gap:16px; }
  .student-profile-highlight { display:flex; align-items:center; gap:12px; padding:14px; border-radius:9px; background:#f4f8f8; }
  .student-profile-avatar { display:grid; place-items:center; width:44px; height:44px; border-radius:12px; color:#fff; background:#e0aa43; font-size:13px; font-weight:700; }
  .student-profile-highlight strong { display:block; color:#294b5d; font-size:14px; }
  .student-profile-highlight small { display:block; margin-top:4px; color:#8a9ba3; font-size:10px; }
  .student-profile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .student-profile-grid>div { padding:12px 13px; border:1px solid #e4ecef; border-radius:8px; }
  .student-profile-grid>div.wide { grid-column:1 / -1; }
  .student-profile-grid span { display:block; color:#8a9ba3; font-size:10px; }
  .student-profile-grid strong { display:block; margin-top:5px; color:#345262; font-size:11px; font-weight:600; }
  .student-secondary-action { margin-top:17px; padding:10px 13px; border-radius:6px; color:#fff; background:var(--navy); font-size:11px; }
  .student-support-content>p { color:#718791; font-size:12px; line-height:1.55; margin:0 0 15px; }
  .student-support-link { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 13px; margin-top:8px; border:1px solid #e4ecef; border-radius:8px; color:#2b8497; font-size:11px; font-weight:700; }
  .student-support-link span { font-size:16px; }
  @media (max-width:650px) { .student-library-item { align-items:flex-start; flex-wrap:wrap; }.student-library-open { margin-left:49px; }.student-profile-grid { grid-template-columns:1fr; }.student-profile-grid>div.wide { grid-column:auto; }.student-tools-content { padding:16px; } }
:root { --navy:#102f4a; --navy-2:#174767; --ink:#182431; --muted:#758391; --line:#e8edf1; --bg:#f6f8fa; --gold:#e9b74b; --blue:#4aa4c7; --green:#43ad88; --shadow:0 12px 35px rgba(22,48,69,.07); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:'DM Sans',Arial,sans-serif; font-size:14px; }
.modal-open { overflow:hidden; }
button,a { font:inherit; } button { border:0; cursor:pointer; } a { color:inherit; text-decoration:none; }
.app-shell { display:flex; min-height:100vh; }
.sidebar { width:252px; background:var(--navy); color:#fff; display:flex; flex-direction:column; flex-shrink:0; padding:27px 18px 18px; }
.brand { display:flex; align-items:center; gap:10px; padding:0 10px 28px; position:relative; }
.brand-mark { display:grid; place-items:center; width:36px; height:36px; border:1px solid rgba(233,183,75,.65); border-radius:11px; color:var(--gold); }
.brand-mark svg { width:26px; height:19px; display:block; overflow:visible; color:var(--gold); }
.brand-mark svg path { fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.brand-mark svg circle { fill:currentColor; }
.brand strong { display:block; font-size:18px; letter-spacing:-.6px; }.brand strong span { color:#65c1d1; }.brand small { display:block; color:#93aebe; font-size:9px; text-transform:uppercase; letter-spacing:1.3px; margin-top:2px; }
.close-sidebar { display:none; background:transparent; color:#fff; font-size:26px; margin-left:auto; }
.profile-mini { display:flex; align-items:center; gap:10px; padding:15px 10px; background:rgba(255,255,255,.075); border-radius:12px; margin-bottom:23px; }.profile-mini strong { display:block; font-size:12px; }.profile-mini span { display:block; color:#9fb2bf; font-size:10px; margin-top:3px; }.profile-mini .more-button { margin-left:auto; color:#8ca6b6; }
.avatar { display:grid; place-items:center; border-radius:50%; font-weight:700; }.avatar-gold { width:32px; height:32px; background:var(--gold); color:var(--navy); font-size:11px; }
.main-nav { flex:1; }.nav-label { color:#7595a8; font-size:10px; letter-spacing:1.15px; text-transform:uppercase; padding:0 12px; margin:0 0 9px; }.second-label { margin-top:29px; }
.nav-item { display:flex; align-items:center; gap:12px; height:43px; color:#b5c4cc; border-radius:9px; padding:0 12px; margin:3px 0; font-size:13px; transition:.2s ease; }.nav-item:hover { color:#fff; background:rgba(255,255,255,.07); }.nav-item.active { color:#fff; background:#226083; box-shadow:inset 3px 0 var(--gold); }.nav-icon { color:#8fb1c1; width:18px; text-align:center; font-size:16px; }.active .nav-icon { color:var(--gold); }.nav-item b { margin-left:auto; border-radius:10px; background:#3b849f; color:#d8f3f5; font-size:10px; padding:2px 7px; }
.sidebar-bottom { margin-top:24px; }.support-card { background:#173d59; border:1px solid rgba(255,255,255,.08); border-radius:13px; padding:15px; }.support-icon { color:var(--gold); font-size:18px; }.support-card strong { display:block; margin-top:9px; font-size:12px; }.support-card p { color:#96b1bf; font-size:10px; line-height:1.5; margin:6px 0 13px; }.support-link { background:transparent; color:#80d4df; padding:0; font-size:11px; }.support-link span { margin-left:5px; }.logout { margin-top:14px; color:#8fa7b3; }
.main-content { min-width:0; flex:1; }.topbar { height:76px; border-bottom:1px solid var(--line); background:#fff; display:flex; align-items:center; justify-content:space-between; padding:0 42px; }.breadcrumb { color:#9aa7b2; font-size:12px; }.breadcrumb i { font-style:normal; margin:0 10px; color:#d5dce0; }.breadcrumb strong { color:var(--ink); font-weight:600; }.top-actions { display:flex; align-items:center; gap:17px; }.icon-button,.help-button { background:transparent; color:#6e7f8d; font-size:20px; position:relative; padding:5px; }.notification-button em { position:absolute; right:-2px; top:0; display:grid; place-items:center; width:15px; height:15px; border-radius:50%; color:#fff; background:#e06d61; font-style:normal; font-size:9px; }.top-divider { height:24px; width:1px; background:var(--line); }.help-button { border:1px solid #cbd6dd; width:23px; height:23px; border-radius:50%; display:grid; place-items:center; font-size:13px; }.top-user-wrap { position:relative; }.top-user { display:flex; align-items:center; gap:8px; color:#425564; font-size:12px; border:0; background:transparent; padding:0; cursor:pointer; }.top-user small { color:#91a0aa; font-size:15px; }.menu-button { display:none; background:transparent; font-size:21px; color:var(--navy); }
.profile-dropdown { position:absolute; z-index:30; top:calc(100% + 13px); right:0; width:285px; background:#fff; border:1px solid var(--line); border-radius:8px; overflow:hidden; box-shadow:0 15px 35px rgba(22,48,69,.16); }.profile-dropdown[hidden] { display:none; }.profile-dropdown-header { display:grid; gap:5px; padding:18px 20px; background:#f1f3f4; color:#59666c; }.profile-dropdown-header strong { color:#637078; font-size:16px; font-weight:500; }.profile-dropdown-header b { color:#68737a; font-size:10px; letter-spacing:.5px; }.profile-dropdown-header span { color:#69757d; font-size:11px; }.profile-dropdown-list { padding:8px 0; }.profile-menu-item { display:flex; align-items:center; gap:12px; width:100%; border:0; background:transparent; color:#66737a; padding:10px 18px; text-align:left; font-size:11px; cursor:pointer; }.profile-menu-item:hover { background:#f5f8f9; color:var(--navy); }.profile-menu-item span { display:inline-grid; place-items:center; width:17px; color:#6f7d83; font-size:16px; }.profile-menu-item.logout { margin-top:4px; border-top:1px solid var(--line); color:#68757b; }
.page-wrap { max-width:1440px; padding:38px 42px 22px; margin:0 auto; }.welcome-row { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:25px; }.eyebrow { color:#89a0ad; font-weight:700; font-size:10px; letter-spacing:1.2px; margin:0 0 8px; }.welcome-row h1 { color:var(--navy); font-family:'Playfair Display',Georgia,serif; font-size:32px; line-height:1; letter-spacing:-.6px; margin:0; }.welcome-row h1 span { font-family:Arial; font-size:25px; }.welcome-text { color:var(--muted); font-size:13px; margin:10px 0 0; }.primary-button { background:var(--navy); color:#fff; padding:12px 18px; border-radius:8px; font-size:12px; box-shadow:0 6px 14px rgba(16,47,74,.16); }.primary-button span { color:var(--gold); font-size:18px; vertical-align:-2px; margin-right:6px; }
.hero-card { position:relative; min-height:225px; overflow:hidden; border-radius:14px; background:linear-gradient(115deg,#163e5c,#226b83); color:#fff; padding:30px 40px; box-shadow:var(--shadow); }.hero-card:after { content:''; position:absolute; width:430px; height:430px; right:8%; top:-240px; border:1px solid rgba(255,255,255,.11); border-radius:50%; box-shadow:0 0 0 42px rgba(255,255,255,.025),0 0 0 84px rgba(255,255,255,.025); }.hero-copy { position:relative; z-index:2; }.hero-tag { color:#a9e0df; font-size:10px; text-transform:uppercase; letter-spacing:1px; }.hero-tag span { color:var(--gold); margin-right:7px; }.hero-card h2 { font-family:'Playfair Display',Georgia,serif; font-weight:600; font-size:31px; line-height:1.15; letter-spacing:-.7px; margin:15px 0 8px; }.hero-card h2 strong { color:#f3ca70; font-weight:600; }.hero-card p { color:#b9d7dc; font-size:12px; margin:0 0 21px; }.light-button { background:#fff; color:var(--navy); border-radius:6px; padding:10px 14px; font-size:11px; font-weight:700; }.light-button span { color:#bd8b24; margin-left:15px; font-size:15px; }.hero-art { position:absolute; right:7%; top:0; width:310px; height:100%; }.sun-glow { position:absolute; width:190px; height:190px; background:rgba(233,183,75,.19); border-radius:50%; filter:blur(12px); top:30px; left:60px; }.art-orbit { position:absolute; border:1px solid rgba(203,241,236,.25); border-radius:50%; transform:rotate(-25deg); }.orbit-one { width:260px; height:85px; left:24px; top:73px; }.orbit-two { width:220px; height:62px; left:48px; top:88px; transform:rotate(35deg); }.book-art { position:absolute; display:grid; place-items:center; width:98px; height:118px; background:linear-gradient(145deg,#f4cf7b,#c89031); color:#274b5c; left:121px; top:47px; border-radius:5px 10px 8px 4px; transform:rotate(-10deg); box-shadow:13px 17px 0 rgba(11,37,53,.27); font-family:'Playfair Display',serif; }.book-art:after { content:''; position:absolute; width:84px; height:105px; border:1px solid rgba(39,75,92,.33); border-radius:4px; }.book-art span { font-size:19px; }.book-art b { font-size:20px; letter-spacing:2px; }.art-star { position:absolute; color:#f2c96f; }.star-one { top:38px; right:35px; }.star-two { bottom:40px; left:35px; color:#8bd3d3; font-size:23px; }.star-three { bottom:28px; right:48px; font-size:12px; }
.hero-card { display:flex; align-items:center; gap:28px; }.hero-copy { flex:1 1 45%; min-width:270px; }.hero-course-carousel { position:relative; z-index:2; flex:0 1 475px; min-width:360px; overflow:hidden; border:1px solid rgba(255,255,255,.38); border-radius:14px; background:rgba(9,45,64,.32); box-shadow:0 10px 25px rgba(5,27,42,.13); }.course-promo-track { display:flex; transition:transform .45s ease; }.course-promo-slide { display:grid; grid-template-columns:minmax(0,1fr) 94px; align-items:center; gap:14px; flex:0 0 100%; min-height:145px; padding:18px; box-sizing:border-box; }.course-promo-info { min-width:0; }.course-promo-label { color:#a9e0df !important; font-size:9px !important; font-weight:700; letter-spacing:1px; margin:0 0 7px !important; }.course-promo-slide h3 { overflow:hidden; color:#fff; font-family:'Playfair Display',Georgia,serif; font-size:19px; line-height:1.12; text-overflow:ellipsis; margin:0 0 7px; }.course-promo-slide p:not(.course-promo-label) { overflow:hidden; color:#d1e5e5; font-size:10px; line-height:1.35; text-overflow:ellipsis; margin:0 0 8px; }.course-promo-slide strong { display:block; color:#f3ca70; font-size:13px; margin-bottom:9px; }.course-promo-button { display:inline-flex; align-items:center; gap:12px; padding:8px 10px; border-radius:5px; color:var(--navy); background:#fff; font-size:10px; font-weight:700; }.course-promo-button span { color:#bd8b24; font-size:14px; }.course-promo-cover { width:86px; height:100px; object-fit:contain; border-radius:9px; background:rgba(255,255,255,.12); }.course-promo-cover-placeholder { display:grid; place-items:center; color:#f3ca70; font-size:30px; }.course-promo-controls { display:flex; align-items:center; justify-content:flex-end; gap:7px; padding:0 14px 12px; color:#d2e6e7; font-size:9px; }.course-promo-controls button { display:grid; place-items:center; width:23px; height:23px; border:1px solid rgba(255,255,255,.45); border-radius:50%; color:#fff; background:transparent; font-size:17px; line-height:1; }.course-promo-controls button:disabled { cursor:default; opacity:.45; }
.stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin:18px 0; }.stat-card { background:#fff; border:1px solid var(--line); border-radius:11px; padding:17px 18px; display:flex; align-items:center; gap:12px; min-width:0; }.stat-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:10px; font-weight:700; font-size:18px; flex-shrink:0; }.stat-icon.blue { color:#4a9ab7; background:#e5f3f6; }.stat-icon.green { color:#389975; background:#e2f4ec; }.stat-icon.gold { color:#bd8c2d; background:#fbf0d5; }.stat-card span { display:block; color:#8998a3; font-size:10px; }.stat-card strong { display:flex; align-items:baseline; gap:3px; color:var(--navy); font-size:21px; line-height:1; margin-top:3px; letter-spacing:-.5px; white-space:nowrap; }.stat-card .stat-number { display:inline; color:inherit; font-size:inherit; }.stat-card small { color:#9caab2; font-size:9px; margin-left:6px; }.stat-card small.positive { color:#43a982; }.stat-card .unit { display:inline; color:var(--navy); font-size:12px; }.stat-card a { margin-left:auto; color:#97aab3; font-size:19px; }
.quick-actions-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; margin:0 0 18px; }.quick-action-card { display:flex; align-items:center; gap:14px; min-height:104px; padding:18px 21px; border:1px solid transparent; border-radius:11px; color:#fff; text-align:left; transition:transform .2s ease, box-shadow .2s ease; }.quick-action-card:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(22,48,69,.14); }.quick-action-teacher { background:linear-gradient(135deg,#1a5275,#287f91); }.quick-action-notifications { background:linear-gradient(135deg,#e5a83f,#d4882d); }.quick-action-icon { display:grid; place-items:center; width:48px; height:48px; border:1px solid rgba(255,255,255,.3); border-radius:13px; background:rgba(255,255,255,.12); font-size:25px; flex:0 0 48px; }.quick-action-copy { min-width:0; flex:1; }.quick-action-copy strong { display:block; font-size:16px; }.quick-action-copy small { display:block; margin-top:6px; color:rgba(255,255,255,.78); font-size:11px; line-height:1.4; }.quick-action-copy small span { color:#fff; font-weight:700; }.quick-action-card>b { font-size:23px; font-weight:400; color:rgba(255,255,255,.85); }
.content-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:18px; }.panel { background:#fff; border:1px solid var(--line); border-radius:11px; padding:22px; }.panel-heading { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:14px; }.panel-heading h2 { color:var(--navy); font-family:'Playfair Display',Georgia,serif; font-size:21px; margin:0; }.text-link { color:#398eaa; background:transparent; padding:0; font-size:11px; }.text-link span { font-size:16px; margin-left:5px; vertical-align:-1px; }.more-button { background:transparent; color:#9aaab4; letter-spacing:2px; font-size:12px; padding:0; }
.course-item { display:flex; align-items:center; gap:12px; padding:13px 0; border-top:1px solid #eef2f4; }.course-item[data-course-id] { cursor:pointer; border-radius:8px; transition:background .15s ease, padding .15s ease; }.course-item[data-course-id]:hover { background:#f7fafb; }.course-badge { width:38px; height:38px; border-radius:10px; display:grid; place-items:center; color:#fff; font-weight:700; font-size:11px; flex-shrink:0; }.purple { background:#8974c9; }.orange { background:#e39a55; }.teal { background:#52a9a2; }.course-details { min-width:0; flex:1; }.course-top { display:flex; justify-content:space-between; gap:10px; }.course-top strong { color:#294252; font-size:12px; }.course-top span { color:#8298a4; font-size:10px; }.course-details p { color:#9aa8af; font-size:10px; margin:4px 0 8px; }.progress { height:5px; background:#edf1f3; border-radius:4px; overflow:hidden; }.progress i { display:block; height:100%; border-radius:4px; background:#806bc2; }.progress .orange-bar { background:#df9850; }.progress .teal-bar { background:#55aaa2; }.course-details small { display:block; color:#9daab1; font-size:9px; margin-top:7px; }.course-arrow,.agenda-arrow { display:inline-grid; place-items:center; background:transparent; color:#9aabb3; font-size:19px; padding:8px; text-decoration:none; }
.agenda-list { border-top:1px solid #eef2f4; }.agenda-empty { color:#8c9da5; font-size:11px; padding:20px 0; text-align:center; }.agenda-item { display:flex; align-items:center; gap:11px; padding:13px 0; border-bottom:1px solid #eef2f4; }.date-box { width:39px; text-align:center; color:var(--navy); background:#f2f7f8; border-radius:7px; padding:5px 0; flex-shrink:0; }.date-box strong { display:block; font-size:15px; line-height:15px; }.date-box span { color:#7d9ca6; font-size:8px; font-weight:700; }.agenda-item>div:nth-child(2) { min-width:0; flex:1; }.agenda-label { display:block; color:#e3aa46; font-size:8px; letter-spacing:.7px; font-weight:700; margin-bottom:4px; }.agenda-label.live { color:#45aa8c; }.agenda-item strong { display:block; color:#344b5a; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.agenda-item small { display:block; color:#9ca9b1; font-size:9px; margin-top:4px; }.join-button { background:#e7f5ee; color:#359371; border-radius:5px; font-size:10px; padding:7px 10px; }
.bottom-grid { display:grid; grid-template-columns:1.5fr .8fr; gap:18px; margin-top:18px; }.notice-card { background:#fff; border:1px solid var(--line); border-radius:11px; display:flex; align-items:flex-start; gap:14px; padding:19px 21px; position:relative; }.notice-symbol { width:32px; height:32px; border-radius:9px; background:#fff2d8; color:#d09a35; display:grid; place-items:center; font-weight:700; flex-shrink:0; }.notice-card h3 { color:var(--navy); font-family:'Playfair Display',serif; font-size:17px; margin:0 0 5px; }.notice-card p:not(.eyebrow) { color:#8998a1; font-size:10px; line-height:1.5; margin:0 0 10px; }.notice-date { margin-left:auto; color:#c49032; text-align:center; font-weight:700; font-size:19px; line-height:17px; }.notice-date small { font-size:8px; letter-spacing:1px; }.verse-card { background:#eaf5f3; border-radius:11px; padding:20px 24px; position:relative; overflow:hidden; }.quote-mark { color:#6db9b0; font-family:Georgia,serif; font-size:49px; line-height:20px; }.verse-card p { color:#3c6d70; font-family:'Playfair Display',serif; font-size:14px; line-height:1.45; margin:8px 0 9px; max-width:260px; }.verse-card small { color:#70a29f; font-size:9px; }.verse-spark { position:absolute; right:24px; bottom:22px; color:#7cc1b5; font-size:21px; }.footer { display:flex; justify-content:space-between; color:#98a7af; font-size:10px; padding:24px 3px 0; }.footer a { color:#6c9baa; }
.toast { position:fixed; right:24px; bottom:24px; background:var(--navy); color:#fff; border-left:3px solid var(--gold); border-radius:7px; padding:13px 17px; box-shadow:0 8px 24px rgba(0,0,0,.18); font-size:12px; opacity:0; transform:translateY(14px); pointer-events:none; transition:.25s; z-index:10; }.toast.show { opacity:1; transform:translateY(0); }
.quick-modal { width:min(100%,620px); }.quick-modal-content { padding:20px 23px 23px; }.quick-modal-intro,.quick-modal-loading { color:#7d919b; font-size:12px; margin:0 0 15px; }.teacher-contact-list { display:grid; gap:9px; }.teacher-contact-item { display:flex; align-items:center; gap:12px; padding:13px 14px; border:1px solid #e4ecef; border-radius:9px; background:#fbfcfc; }.teacher-contact-item>span { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; color:#fff; background:#3a94a0; font-weight:700; font-size:11px; }.teacher-contact-item div { min-width:0; flex:1; }.teacher-contact-item strong { display:block; color:#294b5d; font-size:12px; }.teacher-contact-item small { display:block; color:#8a9ba3; margin-top:4px; font-size:10px; }.teacher-contact-item a { color:#2b8497; font-size:11px; font-weight:700; }.notifications-list { display:grid; gap:8px; max-height:360px; overflow:auto; }.notification-item { padding:13px 14px; border:1px solid #e4ecef; border-radius:9px; background:#fff; }.notification-item.unread { border-left:3px solid var(--gold); background:#fffaf0; }.notification-item strong { display:block; color:#294b5d; font-size:12px; }.notification-item p { color:#718791; font-size:11px; line-height:1.45; margin:5px 0 0; }.notification-item small { display:block; color:#9aaab2; font-size:9px; margin-top:7px; }.notifications-empty { padding:20px 0; color:#8b9ca4; font-size:11px; text-align:center; }.notifications-read-button { margin-top:15px; padding:10px 13px; border-radius:6px; color:#fff; background:var(--navy); font-size:11px; }
.sidebar-overlay { display:none; }.close-sidebar { flex-shrink:0; }
@media (max-width:1050px) { .page-wrap { padding-left:25px; padding-right:25px; }.topbar { padding:0 25px; }.hero-art { right:-5%; opacity:.8; }.content-grid { grid-template-columns:1fr; }.bottom-grid { grid-template-columns:1fr; } }
@media (max-width:760px) { .sidebar { position:fixed; left:-280px; top:0; bottom:0; z-index:20; transition:left .25s; box-shadow:8px 0 30px rgba(0,0,0,.2); }.sidebar.open { left:0; }.sidebar-overlay { position:fixed; inset:0; background:rgba(11,31,45,.5); z-index:15; }.sidebar-overlay.show { display:block; }.close-sidebar,.menu-button { display:block; }.topbar { height:64px; padding:0 18px; gap:14px; }.breadcrumb { display:none; }.top-actions { margin-left:auto; gap:10px; }.top-divider,.help-button,.top-user span,.top-user small { display:none; }.page-wrap { padding:28px 17px 20px; }.welcome-row { align-items:flex-start; gap:18px; flex-direction:column; margin-bottom:21px; }.welcome-row h1 { font-size:29px; }.primary-button { width:100%; }.hero-card { min-height:300px; padding:25px 23px; }.hero-card h2 { font-size:27px; }.hero-art { right:-30px; top:95px; transform:scale(.82); transform-origin:top right; opacity:.75; }.stats-grid { grid-template-columns:1fr; gap:9px; }.stat-card { padding:14px 15px; }.quick-actions-grid { grid-template-columns:1fr; }.quick-action-card { min-height:88px; padding:15px; }.panel { padding:18px 15px; }.course-item { gap:9px; }.course-arrow { padding:5px; }.bottom-grid { gap:10px; }.notice-card { padding:16px; }.footer { gap:10px; flex-wrap:wrap; } }
@media (max-width:760px) { .hero-card { flex-direction:column; align-items:stretch; gap:20px; min-height:390px; }.hero-copy { min-width:0; }.hero-course-carousel { width:100%; min-width:0; flex-basis:auto; }.course-promo-slide { min-height:150px; } }
@media (max-width:400px) { .hero-card { min-height:420px; }.hero-art { right:-70px; }.course-top strong { font-size:11px; }.agenda-item strong { font-size:10px; } }
.login-body { min-height:100vh; display:grid; place-items:center; padding:24px; background:linear-gradient(145deg,#edf4f6,#f8fafb); }
.login-shell { width:min(100%,430px); }
.login-card { background:#fff; border:1px solid var(--line); border-radius:16px; padding:34px; box-shadow:var(--shadow); }
.login-brand { display:flex; align-items:center; gap:10px; margin-bottom:34px; }
.login-brand strong { display:block; color:var(--navy); font-size:19px; letter-spacing:-.6px; }.login-brand strong span { color:#419fb3; }.login-brand small { display:block; color:#91a2ab; font-size:9px; text-transform:uppercase; letter-spacing:1.3px; margin-top:2px; }
.login-card h1 { color:var(--navy); font-family:'Playfair Display',Georgia,serif; font-size:30px; margin:0 0 8px; }.login-intro { color:var(--muted); font-size:13px; margin:0 0 25px; }
.social-login { display:grid; gap:9px; }.social-button { display:flex; align-items:center; justify-content:center; border:1px solid #dce5e9; border-radius:7px; padding:11px 13px; font-size:12px; font-weight:700; transition:.2s ease; }.social-button:hover { transform:translateY(-1px); box-shadow:0 5px 12px rgba(22,48,69,.08); }.social-button.google { color:#3c5362; background:#fff; }.social-button.facebook { color:#fff; background:#1877f2; border-color:#1877f2; }
.login-divider { display:flex; align-items:center; gap:10px; color:#9aaab2; font-size:10px; margin:22px 0 12px; }.login-divider:before,.login-divider:after { content:''; height:1px; background:var(--line); flex:1; }
.login-form { display:grid; gap:8px; }.login-form label { color:#435b68; font-size:11px; font-weight:700; margin-top:8px; }.login-form input { width:100%; border:1px solid #dce5e9; border-radius:7px; padding:12px 13px; color:var(--ink); outline:none; }.login-form input:focus { border-color:#5caabd; box-shadow:0 0 0 3px rgba(92,170,189,.13); }.login-status { min-height:17px; color:#c45e58; font-size:11px; margin:8px 0 2px; }.login-submit { width:100%; margin-top:5px; }.login-submit:disabled { opacity:.65; cursor:wait; }.login-footer { display:grid; gap:6px; color:#8c9da5; text-align:center; font-size:10px; line-height:1.45; margin:17px 0 0; }.login-footer p { margin:0; }.login-footer a { color:#6c9baa; }.login-footer a:hover { color:var(--navy); }.login-footer-links { display:flex; justify-content:center; gap:16px; margin-top:2px; }.login-footer-links a { font-weight:700; }
.assessment-body { min-height:100vh; background:#f5f7f9; color:var(--ink); }
.assessment-topbar { height:72px; display:flex; align-items:center; justify-content:space-between; padding:0 42px; background:#fff; border-bottom:1px solid var(--line); }
.assessment-brand { display:flex; align-items:center; gap:10px; color:inherit; }.assessment-brand strong { display:block; color:var(--navy); font-size:18px; letter-spacing:-.6px; }.assessment-brand strong span { color:#419fb3; }.assessment-brand small { display:block; color:#91a2ab; font-size:9px; text-transform:uppercase; letter-spacing:1.2px; margin-top:2px; }.assessment-brand .brand-mark { width:34px; height:34px; }
.back-link { color:#6a8593; font-size:12px; }.back-link:hover { color:var(--navy); }
.assessment-page { max-width:1440px; margin:0 auto; padding:30px 42px 42px; }
.assessment-summary { background:#fff; border:1px solid var(--line); border-radius:10px; padding:23px 24px; box-shadow:0 5px 20px rgba(22,48,69,.03); }.assessment-heading h1 { color:var(--navy); font-family:'Playfair Display',Georgia,serif; font-size:24px; margin:0 0 22px; }.assessment-meta { display:grid; grid-template-columns:repeat(4,1fr); gap:20px 28px; }.assessment-meta div { display:grid; gap:6px; min-width:0; }.assessment-meta strong { color:#465b68; font-size:11px; }.assessment-meta span { color:#728792; font-size:11px; line-height:1.35; }.activity-error { color:#c45e58; font-size:12px; margin:14px 0 0; }
.assessment-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:18px; margin-top:20px; align-items:start; }.question-card,.question-sidebar { background:#fff; border:1px solid var(--line); border-radius:10px; }.question-card-heading { display:flex; justify-content:space-between; align-items:center; padding:18px 22px; border-bottom:1px solid var(--line); color:#3d5969; font-size:11px; font-weight:700; letter-spacing:.4px; }.question-card-heading span:last-child { color:#9aaab2; font-weight:500; }.question-content { padding:27px 30px 32px; min-height:360px; }.question-statement { color:#405b69; font-size:14px; line-height:1.8; white-space:pre-line; margin:0 0 23px; }.answer-instruction { color:#344f5f; font-size:12px; font-weight:700; margin:0 0 13px; }.answer-options { display:grid; gap:9px; }.question-option { display:flex; align-items:flex-start; gap:10px; padding:12px 13px; border:1px solid #e5ecef; border-radius:7px; color:#58707c; font-size:12px; line-height:1.5; cursor:pointer; transition:.2s ease; }.question-option:hover { border-color:#80bdc7; background:#f8fcfc; }.question-option input { margin-top:3px; accent-color:#24839b; }.option-key { display:grid; place-items:center; width:22px; height:22px; flex:0 0 22px; border-radius:50%; background:#edf4f5; color:#4a93a3; font-size:10px; font-weight:700; }.question-actions { display:flex; justify-content:space-between; padding:16px 22px; border-top:1px solid var(--line); }.question-button { border:0; border-radius:6px; background:var(--navy); color:#fff; padding:10px 14px; font-size:11px; cursor:pointer; }.question-button.secondary { background:#eef4f5; color:#426472; }.question-button:disabled { opacity:.45; cursor:not-allowed; }
.question-sidebar { overflow:hidden; }.sidebar-heading { display:flex; justify-content:space-between; padding:18px 17px; border-bottom:1px solid var(--line); }.sidebar-heading h2 { color:#365366; font-size:12px; margin:0; }.sidebar-heading span { color:#8499a2; }.legend-heading { color:#7e929d; font-size:10px; padding:15px 17px 8px; }.question-legend { display:grid; grid-template-columns:1fr 1fr; gap:10px 8px; padding:0 17px 17px; border-bottom:1px solid var(--line); }.question-legend span { display:flex; align-items:center; gap:6px; color:#7d909a; font-size:9px; text-transform:uppercase; }.legend-dot { display:inline-block; width:10px; height:10px; flex:0 0 10px; border-radius:2px; background:#dfe5e8; }.legend-dot.answered { background:#40a7dc; }.legend-dot.unanswered { background:#e1e6e8; }.legend-dot.correct { background:#24c6ad; }.legend-dot.incorrect { background:#f26165; }.legend-dot.void { background:#f3c7ca; }.question-nav { display:grid; gap:7px; padding:10px; max-height:560px; overflow:auto; }.question-nav-item { display:grid; grid-template-columns:28px 12px 1fr; align-items:center; gap:7px; width:100%; border:1px dashed #d4dde0; border-radius:5px; background:#fff; padding:9px 7px; color:#5c7582; text-align:left; cursor:pointer; }.question-nav-item:hover,.question-nav-item.active { border-color:#5caabd; background:#f6fbfb; }.question-nav-item span { color:#7b909b; font-size:9px; font-weight:700; }.question-nav-item strong { overflow:hidden; color:#57707d; font-size:9px; font-weight:500; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }.question-nav-item .legend-dot { width:9px; height:9px; }
@media (max-width:900px) { .assessment-page { padding:24px 18px 30px; }.assessment-topbar { padding:0 18px; }.assessment-meta { grid-template-columns:repeat(2,1fr); }.assessment-layout { grid-template-columns:1fr; }.question-sidebar { order:-1; }.question-nav { display:flex; max-height:none; overflow-x:auto; }.question-nav-item { min-width:180px; } }
@media (max-width:520px) { .assessment-topbar { height:64px; }.assessment-brand small { display:none; }.back-link { font-size:10px; }.assessment-heading h1 { font-size:21px; }.assessment-meta { grid-template-columns:1fr; gap:13px; }.question-content { padding:22px 17px 26px; }.question-statement { font-size:13px; }.question-actions { padding:13px 15px; } }
.question-button.submit { background:#2c9b80; }
.assessment-submit-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 22px; border-top:1px solid var(--line); background:#fbfcfc; }.assessment-submit-row span { color:#78909a; font-size:10px; }
@media (max-width:520px) { .assessment-submit-row { align-items:flex-start; flex-direction:column; padding:13px 15px; } .assessment-submit-row .question-button { width:100%; } }
.admin-body { min-height:100vh; display:flex; background:#f4f7f9; }
.admin-sidebar { width:250px; flex:0 0 250px; min-height:100vh; display:flex; flex-direction:column; padding:28px 18px 20px; background:var(--navy); color:#fff; }
.admin-sidebar .assessment-brand { padding:0 10px 30px; }
.admin-sidebar .brand-mark { flex:0 0 36px; }
.admin-sidebar .assessment-brand strong { color:#fff; }
.admin-sidebar .assessment-brand strong span { color:#65c1d1; }
.admin-sidebar .assessment-brand small { color:#93aebe; }
.admin-label { color:#7898aa; font-size:10px; letter-spacing:1.1px; margin:0 12px 10px; }
.admin-nav { display:grid; gap:4px; }
.admin-nav a { display:flex; align-items:center; gap:11px; min-height:42px; padding:0 12px; border-radius:8px; color:#b6c8d1; font-size:12px; }
.admin-nav a:hover,.admin-nav a.active { color:#fff; background:#226083; box-shadow:inset 3px 0 var(--gold); }
.admin-nav a span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-back { margin-top:auto; padding:14px 12px 0; border-top:1px solid rgba(255,255,255,.1); color:#8db1bf; font-size:11px; }
.admin-back:hover { color:#fff; }
.admin-main { min-width:0; flex:1; padding:0 42px 42px; }
.admin-header { min-height:92px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.admin-header h1 { color:var(--navy); font-family:'Playfair Display',Georgia,serif; font-size:27px; margin:0; }
.admin-user { display:flex; align-items:center; gap:14px; color:#526875; font-size:12px; }
.admin-user button { padding:8px 13px; border:1px solid #d9e3e7; border-radius:6px; background:#fff; color:#58717e; font-size:11px; }
.admin-user button:hover { border-color:#93bec7; color:var(--navy); }
.admin-welcome { margin:28px 0 18px; padding:27px 30px; border-radius:12px; color:#fff; background:linear-gradient(115deg,#163e5c,#267384); box-shadow:var(--shadow); }
.admin-welcome .eyebrow { color:#a9e0df; }
.admin-welcome h2 { max-width:560px; margin:0 0 7px; font-family:'Playfair Display',Georgia,serif; font-size:25px; font-weight:600; }
.admin-welcome p:last-child { margin:0; color:#c0e0e1; font-size:12px; }
.admin-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.admin-stat-card { display:flex; align-items:center; gap:12px; min-width:0; padding:17px; border:1px solid var(--line); border-radius:10px; background:#fff; color:inherit; transition:.2s ease; }
.admin-stat-card:hover,.admin-stat-card:focus-visible { border-color:#8ac2c9; box-shadow:0 8px 20px rgba(22,48,69,.08); transform:translateY(-2px); outline:none; }
.admin-stat-icon { display:grid; place-items:center; width:37px; height:37px; border-radius:10px; flex:0 0 37px; font-size:18px; }
.admin-stat-icon.blue { color:#4a9ab7; background:#e5f3f6; }.admin-stat-icon.teal { color:#369b90; background:#e3f4ef; }.admin-stat-icon.gold { color:#bd8c2d; background:#fbf0d5; }.admin-stat-icon.purple { color:#806bc2; background:#eeeafa; }
.admin-stats small { display:block; color:#8998a3; font-size:10px; }.admin-stats strong { display:block; color:var(--navy); margin-top:4px; font-size:21px; }
.admin-page-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin:28px 0 18px; }.admin-page-intro h2 { color:var(--navy); font-family:'Playfair Display',Georgia,serif; font-size:26px; margin:0; }.admin-page-intro p:not(.eyebrow) { color:var(--muted); font-size:12px; margin:8px 0 0; }
.admin-primary-button { display:inline-flex; align-items:center; gap:8px; padding:11px 15px; border-radius:7px; background:var(--navy); color:#fff; font-size:11px; font-weight:700; }.admin-primary-button:hover { background:#1c5476; }.admin-primary-button span { color:var(--gold); font-size:17px; }
.admin-filter-bar { display:flex; align-items:center; gap:10px; margin-bottom:14px; }.admin-filter-bar input,.admin-filter-bar select,.admin-form input,.admin-form select { min-height:40px; border:1px solid #dce5e9; border-radius:7px; background:#fff; color:var(--ink); padding:9px 11px; outline:none; }.admin-filter-bar input { min-width:260px; flex:1; }.admin-filter-bar input:focus,.admin-filter-bar select:focus,.admin-form input:focus,.admin-form select:focus { border-color:#72b8c3; box-shadow:0 0 0 3px rgba(92,170,189,.13); }.admin-filter-bar select { min-width:150px; }
.admin-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:10px; background:#fff; }.admin-table { width:100%; min-width:650px; border-collapse:collapse; }.admin-table th { color:#8095a0; background:#f8fafb; font-size:10px; letter-spacing:.4px; text-align:left; text-transform:uppercase; }.admin-table th,.admin-table td { padding:14px 16px; border-bottom:1px solid #edf2f4; }.admin-table tr:last-child td { border-bottom:0; }.admin-table td { color:#536b77; font-size:12px; }.admin-table td strong { display:block; color:#294b5d; font-size:12px; }.admin-table td small { display:block; color:#96a5ad; font-size:10px; margin-top:3px; }.admin-status { display:inline-flex; align-items:center; gap:5px; border-radius:20px; padding:5px 8px; font-size:10px; }.admin-status.active { color:#318d70; background:#e7f5ee; }.admin-status.inactive { color:#a2753c; background:#fff2dc; }.admin-row-actions { display:flex; justify-content:flex-end; gap:7px; }.admin-row-actions button { border:1px solid #dce7ea; border-radius:5px; background:#fff; color:#50707c; padding:7px 9px; font-size:10px; }.admin-row-actions button:hover { border-color:#80bbc4; color:var(--navy); }.admin-empty { color:#899ba4; text-align:center; padding:35px 20px !important; }.admin-error { color:#c45e58; font-size:11px; margin:0 0 10px; }
.admin-modal-backdrop { position:fixed; z-index:40; inset:0; display:grid; place-items:center; padding:20px; background:rgba(11,31,45,.52); }.admin-modal-backdrop[hidden] { display:none; }.admin-modal { width:min(100%,520px); max-height:calc(100vh - 40px); overflow:auto; border-radius:12px; background:#fff; box-shadow:0 20px 60px rgba(0,0,0,.2); }.admin-modal-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:21px 23px 14px; border-bottom:1px solid var(--line); }.admin-modal-header h2 { color:var(--navy); font-family:'Playfair Display',Georgia,serif; font-size:22px; margin:0; }.admin-modal-close { color:#7d929d; background:transparent; font-size:20px; }.admin-form { display:grid; gap:8px; padding:20px 23px 23px; }.admin-form label { color:#496371; font-size:11px; font-weight:700; margin-top:5px; }.admin-form input,.admin-form select { width:100%; }.admin-form-help { color:#8da0a8; font-size:10px; margin:0 0 4px; }.admin-form-error { min-height:16px; color:#c45e58; font-size:11px; margin:2px 0 0; }.admin-form-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:10px; }.admin-form-actions button { border-radius:6px; padding:10px 14px; font-size:11px; }.admin-form-actions .cancel { color:#55717c; background:#eef4f5; }.admin-form-actions .save { color:#fff; background:var(--navy); }
.admin-profile-modal { width:min(100%,700px); }.admin-form-section { margin:12px 0 2px; padding:13px 15px; border:1px solid #dcefeb; border-radius:8px; background:#f1f9f7; }.admin-form-section .eyebrow { margin-bottom:5px; color:#5c9696; }.admin-form-section h3 { color:#245866; font-family:'Playfair Display',Georgia,serif; font-size:17px; margin:0 0 4px; }.admin-form-section p:last-child { color:#6b888c; font-size:10px; line-height:1.45; margin:0; }
.course-cover-preview { position:relative; display:grid; gap:8px; padding:8px; border:1px solid #dce5e9; border-radius:8px; background:#f5f9fa; }.course-cover-preview[hidden] { display:none; }.course-cover-preview img { display:block; width:100%; max-height:150px; border-radius:5px; object-fit:cover; }.course-cover-preview button { justify-self:start; padding:6px 9px; border:1px solid #e3c2c2; border-radius:5px; color:#a34d4d; background:#fff; font-size:10px; cursor:pointer; }.course-cover-preview button:hover { background:#fff5f5; }
.admin-pagination { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:12px; color:#899ba4; font-size:10px; }.admin-pagination button { border:1px solid #dce7ea; border-radius:5px; background:#fff; color:#50707c; padding:7px 10px; font-size:10px; }.admin-pagination button:disabled { opacity:.45; cursor:not-allowed; }
.course-admin-name { display:flex; align-items:center; gap:10px; }.course-admin-name>div { min-width:0; }.course-admin-cover { display:block; width:76px; height:45px; flex:0 0 76px; border:1px solid #dce8ea; border-radius:7px; object-fit:cover; object-position:center; background:#edf5f5; }.course-admin-name .course-badge { width:34px; height:34px; flex:0 0 34px; border-radius:9px; display:grid; place-items:center; color:#fff; font-size:9px; font-weight:700; }.course-badge.purple { background:#8974c9; }.course-badge.orange { background:#e39a55; }.course-badge.teal { background:#52a9a2; }.course-badge.blue { background:#4a9ab7; }
.finance-modal { width:min(100%,980px); }.finance-student-name { color:#8498a1; font-size:11px; margin:7px 0 0; }.finance-content { padding:18px 23px 25px; }.finance-demo-note { margin:0 0 18px; padding:10px 12px; border-radius:6px; color:#7a6a43; background:#fff6df; font-size:10px; }.finance-section-title { color:#5f7b88; font-size:15px; font-weight:500; margin:0 0 12px; }.finance-quick-cards { display:grid; grid-template-columns:repeat(4, minmax(0,130px)); gap:14px; margin-bottom:20px; }.finance-quick-card { display:grid; place-items:center; gap:8px; min-height:112px; border:1px solid #e0e7ea; border-radius:4px; background:#fff; color:#456271; box-shadow:0 4px 11px rgba(22,48,69,.08); text-align:center; }.finance-quick-card span { display:grid; place-items:center; width:100%; height:54px; color:#fff; background:#2a719f; font-size:25px; }.finance-quick-card strong { font-size:11px; line-height:1.2; font-weight:500; }.finance-quick-card.muted { color:#bcc3c6; }.finance-quick-card.muted span { background:#98bbd0; }.finance-quick-card.selected { border-color:#e9b74b; }.finance-heading { color:#1d2530; font-size:24px; margin:0 0 10px; }.finance-list-heading { display:flex; justify-content:space-between; padding:13px 15px; background:#f4f5f6; color:#71838c; font-size:12px; }.finance-list-heading span { width:42%; }.finance-entries { border:1px solid #edf0f2; border-top:0; }.finance-entry { display:grid; grid-template-columns:2fr 1fr .8fr .9fr 1.1fr 28px; align-items:center; gap:12px; padding:15px; border-bottom:1px solid #edf0f2; color:#537080; font-size:11px; }.finance-entry:last-child { border-bottom:0; }.finance-entry strong { display:block; color:#2875a7; font-size:12px; }.finance-entry small { display:block; margin-top:4px; font-size:10px; }.finance-entry b { display:block; color:#1769a1; font-size:9px; margin-bottom:5px; }.finance-entry span { display:block; color:#5b707a; font-size:10px; }.finance-paid { color:#3aaa91 !important; }.finance-download { color:#2680bd; background:transparent; font-size:20px; }.finance-download:hover { color:var(--navy); }
.admin-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:17px; margin-top:18px; }
.admin-panel { min-width:0; padding:22px; border:1px solid var(--line); border-radius:11px; background:#fff; }
.admin-panel-heading { margin-bottom:8px; }.admin-panel h2 { color:var(--navy); font-family:'Playfair Display',Georgia,serif; font-size:20px; margin:0; }
.admin-actions { display:grid; }.admin-actions a { display:flex; align-items:center; gap:12px; padding:14px 0; border-top:1px solid #eef2f4; color:#3c5968; }.admin-actions a:hover strong { color:#25839a; }.admin-actions a>span { display:grid; place-items:center; width:32px; height:32px; border-radius:8px; background:#edf6f7; color:#398fa0; font-weight:700; }.admin-actions a>div { min-width:0; flex:1; }.admin-actions strong { display:block; font-size:12px; }.admin-actions small { display:block; margin-top:3px; color:#91a1a9; font-size:10px; }.admin-actions a { font-size:17px; color:#9babb4; }
.admin-quick { background:#eaf5f3; border-color:#dcefeb; }.admin-quick h2 { color:#245866; }.admin-quick p:not(.eyebrow) { color:#5c8184; font-size:12px; line-height:1.6; }.admin-quick p strong { color:#277b80; font-size:18px; }.admin-quick button { margin-top:17px; padding:10px 13px; border-radius:6px; background:var(--navy); color:#fff; font-size:11px; }
@media (max-width:980px) { .admin-main { padding:0 25px 30px; }.admin-stats { grid-template-columns:repeat(2,1fr); }.admin-grid { grid-template-columns:1fr; } }
@media (max-width:650px) { .admin-body { display:block; }.admin-sidebar { width:100%; min-height:0; padding:16px; }.admin-sidebar .assessment-brand { padding-bottom:16px; }.admin-nav { grid-template-columns:repeat(2,1fr); }.admin-back { margin-top:16px; }.admin-main { padding:0 17px 25px; }.admin-header { min-height:80px; }.admin-header h1 { font-size:23px; }.admin-user { gap:8px; font-size:10px; }.admin-welcome { padding:22px; }.admin-welcome h2 { font-size:22px; }.admin-stats { grid-template-columns:1fr 1fr; gap:9px; }.admin-stat-card { padding:13px 11px; }.admin-stat-icon { width:31px; height:31px; flex-basis:31px; font-size:15px; }.admin-stats small { font-size:9px; }.admin-stats strong { font-size:18px; }.admin-page-intro { align-items:flex-start; flex-direction:column; }.admin-primary-button { width:100%; justify-content:center; }.admin-filter-bar { align-items:stretch; flex-direction:column; }.admin-filter-bar input,.admin-filter-bar select { min-width:0; width:100%; }.finance-quick-cards { grid-template-columns:repeat(2,1fr); }.finance-heading { font-size:20px; }.finance-list-heading { display:none; }.finance-entries { border-top:1px solid #edf0f2; }.finance-entry { grid-template-columns:1fr 1fr; gap:11px; }.finance-entry>div:first-child { grid-column:1 / -1; }.finance-entry .finance-download { position:absolute; right:24px; }.finance-entry { position:relative; padding-right:45px; } }
.finance-tabs { display:flex; gap:5px; margin:0 0 10px; border-bottom:1px solid #e1e8eb; }
.top-quick-links { display:flex; align-items:center; gap:6px; }.top-quick-link { display:flex; align-items:center; gap:6px; border:1px solid transparent; border-radius:5px; padding:8px 10px; color:#566f7e; background:transparent; font-size:12px; white-space:nowrap; }.top-quick-link:hover { background:#f2f6f7; color:var(--navy); }.top-quick-link span { font-size:17px; }.top-quick-teacher { color:#fff; background:#ef4761; }.top-quick-teacher:hover { color:#fff; background:#d93b54; }.top-quick-notifications em { display:grid; place-items:center; min-width:17px; height:17px; padding:0 4px; border-radius:50%; color:#fff; background:#e06d61; font-style:normal; font-size:9px; }
.finance-tabs button { padding:9px 13px; border-bottom:2px solid transparent; background:transparent; color:#7d909a; font-size:11px; }
.finance-tabs button:hover,.finance-tabs button.active { color:#1769a1; border-bottom-color:#e9b74b; }
.finance-open { color:#c58a2e !important; }.finance-negotiated { color:#7e73c4 !important; }
.finance-entry-action { color:#2680bd; background:transparent; font-size:20px; }.finance-entry-action:hover { color:var(--navy); }
.finance-pix-action { justify-self:end; padding:8px 10px; border:1px solid #2a9b88; border-radius:6px; color:#fff; background:#2a9b88; font-size:10px; font-weight:700; white-space:nowrap; }.finance-pix-action:hover { background:#208171; }
.finance-empty { padding:35px 20px; color:#899ba4; text-align:center; font-size:11px; }
.student-finance-summary { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; margin-bottom:20px; }
.student-finance-summary article { padding:15px 16px; border:1px solid #e4ecef; border-radius:9px; background:#f8fbfb; }
.student-finance-summary span,.student-finance-summary small { display:block; color:#7f949d; font-size:10px; }
.student-finance-summary strong { display:block; color:var(--navy); font-size:18px; margin:7px 0 4px; }
.student-finance-summary small { color:#9aaab1; }
.student-finance-entries { display:grid; gap:0; border:1px solid #edf0f2; border-radius:8px; overflow:hidden; }
.student-finance-entry { display:grid; grid-template-columns:2fr 1.2fr .9fr .9fr 28px; align-items:center; gap:12px; padding:15px; border-bottom:1px solid #edf0f2; background:#fff; color:#537080; font-size:11px; }
.student-finance-entry:last-child { border-bottom:0; }
.student-finance-entry-main strong { display:block; color:#2875a7; font-size:12px; }
.student-finance-entry small { display:block; color:#91a1a9; font-size:10px; margin-top:4px; }
.student-finance-entry b { display:block; color:#1769a1; font-size:9px; margin-bottom:5px; }
.student-finance-entry span { display:block; color:#5b707a; font-size:10px; }
.student-finance-note { margin:16px 0 0; color:#8b9ba3; font-size:10px; line-height:1.5; }
.student-pix-modal { width:min(100%,520px); }.student-pix-content { padding:19px 23px 22px; text-align:center; }.student-pix-amount { display:block; color:var(--navy); font-size:25px; margin:5px 0 10px; }.student-pix-qr { display:block; width:220px; height:220px; max-width:100%; margin:10px auto 14px; object-fit:contain; }.student-pix-expiration { color:#708994; font-size:10px; line-height:1.5; margin:0 auto 15px; }.student-pix-label { display:block; color:#537080; font-size:10px; font-weight:700; text-align:left; margin-bottom:6px; }.student-pix-copy-row { display:flex; align-items:flex-start; gap:8px; text-align:left; }.student-pix-copy-row textarea { min-width:0; flex:1; resize:none; padding:9px; border:1px solid #dbe5e8; border-radius:5px; color:#456271; background:#f8fbfb; font-size:10px; line-height:1.4; }.student-pix-copy { flex:0 0 auto; padding:10px 11px; border-radius:5px; color:#fff; background:var(--navy); font-size:10px; font-weight:700; }.student-pix-link { display:inline-block; margin-top:13px; color:#2680bd; font-size:10px; font-weight:700; }.student-pix-actions { justify-content:center; margin-top:16px; }
.academic-modal { width:min(100%,900px); }
.academic-content { padding:18px 23px 25px; }
.academic-summary { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px; margin-bottom:24px; }
.academic-summary article { padding:15px 16px; border:1px solid #e4ecef; border-radius:9px; background:#f8fbfb; }
.academic-summary span,.academic-summary small { display:block; color:#7f949d; font-size:10px; }
.academic-summary strong { display:block; color:var(--navy); font-size:20px; margin:7px 0 4px; }
.academic-summary small { color:#9aaab1; }
.academic-section-heading { display:flex; align-items:flex-end; justify-content:space-between; margin:0 0 11px; }
.academic-section-heading h3 { color:var(--navy); font-family:'Playfair Display',Georgia,serif; font-size:19px; margin:0; }
.academic-courses-list,.academic-grades-list { display:grid; gap:8px; }
.academic-course-row { display:grid; grid-template-columns:1.7fr .6fr 1.1fr auto; align-items:center; gap:14px; padding:14px; border:1px solid #e4ecef; border-radius:9px; background:#fff; }
.academic-course-title strong,.academic-grade-row strong { display:block; color:#294b5d; font-size:12px; }
.academic-course-title small,.academic-grade-row small { display:block; color:#91a1a9; font-size:10px; margin-top:4px; }
.academic-metric b { display:block; color:#1769a1; font-size:9px; margin-bottom:5px; }
.academic-metric strong { color:#294b5d; font-size:13px; }
.academic-attendance span { display:block; width:100%; height:5px; margin-top:6px; border-radius:5px; background:#e8eff1; overflow:hidden; }
.academic-attendance i { display:block; height:100%; border-radius:inherit; background:#3aa694; }
.academic-course-link { color:#2b8497; font-size:10px; font-weight:700; white-space:nowrap; }
.academic-grades-section { margin-top:24px; }
.academic-grade-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 14px; border:1px solid #e4ecef; border-radius:9px; background:#fbfcfc; }
.academic-grade-row>b { color:#2875a7; font-size:13px; white-space:nowrap; }
.academic-empty { padding:25px 15px; color:#899ba4; text-align:center; font-size:11px; }
@media (max-width:650px) { .finance-tabs { overflow:auto; }.finance-tabs button { white-space:nowrap; }.finance-entry .finance-entry-action { position:absolute; right:24px; } }
@media (max-width:650px) { .student-finance-summary { grid-template-columns:1fr; }.student-finance-entry { grid-template-columns:1fr 1fr; position:relative; padding-right:44px; }.student-finance-entry-main { grid-column:1 / -1; }.student-finance-entry .finance-entry-action,.student-finance-entry .finance-pix-action { position:absolute; right:15px; bottom:14px; }.student-pix-copy-row { display:block; }.student-pix-copy-row textarea { width:100%; box-sizing:border-box; }.student-pix-copy { margin-top:8px; } }
@media (max-width:650px) { .academic-summary { grid-template-columns:1fr; }.academic-course-row { grid-template-columns:1fr 1fr; }.academic-course-title { grid-column:1 / -1; }.academic-course-link { grid-column:1 / -1; }.academic-attendance { min-width:0; } }
@media (max-width:760px) { .top-quick-link { padding:6px; font-size:0; }.top-quick-link span { font-size:18px; }.top-quick-notifications em { font-size:9px; } }
@media (max-width:650px) {
  .admin-sidebar { position:sticky; top:0; z-index:20; width:100%; min-height:0; padding:12px 14px 10px; box-shadow:0 4px 14px rgba(16,47,74,.16); }
  .admin-sidebar .assessment-brand { padding:0 4px 12px; }
  .admin-sidebar .assessment-brand .brand-mark { width:32px; height:32px; }
  .admin-label { display:none; }
  .admin-nav { display:flex; gap:6px; overflow-x:auto; padding:0 0 3px; scrollbar-width:thin; }
  .admin-nav a { flex:0 0 auto; min-height:36px; padding:0 10px; white-space:nowrap; font-size:11px; }
  .admin-back { display:none; }
}

.enrollment-modal { width:min(100%, 900px); }
.enrollment-content { padding:18px 23px 23px; }
.enrollment-form { display:grid; grid-template-columns:150px minmax(0,1fr) auto; align-items:end; gap:10px; padding:0 0 6px; }
.enrollment-form label { display:block; color:#496371; font-size:11px; font-weight:700; margin:0 0 6px; }
.enrollment-form input,.enrollment-form select { width:100%; min-height:40px; border:1px solid #dce5e9; border-radius:7px; background:#fff; color:var(--ink); padding:9px 11px; outline:none; }
.enrollment-form input:focus,.enrollment-form select:focus { border-color:#72b8c3; box-shadow:0 0 0 3px rgba(92,170,189,.13); }
.enrollment-form .save { min-height:40px; border-radius:6px; padding:10px 14px; color:#fff; background:var(--navy); font-size:11px; white-space:nowrap; }
.enrollment-form .save:disabled { opacity:.5; cursor:not-allowed; }
.enrollment-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:18px 0 9px; padding-bottom:9px; border-bottom:1px solid var(--line); }
.enrollment-heading h3 { color:var(--navy); font-family:'Playfair Display',Georgia,serif; font-size:18px; margin:0; }
.enrollment-heading span { color:#8799a1; font-size:10px; }
.enrollment-list { border:1px solid #edf0f2; border-radius:8px; overflow:hidden; }
.enrollment-item { display:grid; grid-template-columns:minmax(0,2fr) .8fr .8fr 1fr auto; align-items:center; gap:12px; padding:13px 14px; border-bottom:1px solid #edf0f2; color:#537080; font-size:11px; }
.enrollment-item:last-child { border-bottom:0; }
.enrollment-item strong { display:block; color:#294b5d; font-size:12px; }
.enrollment-item small { display:block; color:#96a5ad; font-size:10px; margin-top:3px; }
.enrollment-item b { display:block; color:#8095a0; font-size:9px; letter-spacing:.3px; text-transform:uppercase; margin-bottom:4px; }
.enrollment-item span { color:#5b707a; font-size:10px; }
.enrollment-status-button { border:1px solid #dce7ea; border-radius:5px; background:#fff; color:#50707c; padding:7px 9px; font-size:10px; white-space:nowrap; }
.enrollment-status-button:hover { border-color:#80bbc4; color:var(--navy); }
.enrollment-empty { padding:30px 20px; color:#899ba4; text-align:center; font-size:11px; }
@media (max-width:650px) {
  .enrollment-form { grid-template-columns:1fr; align-items:stretch; }
  .enrollment-form .save { width:100%; }
  .enrollment-item { grid-template-columns:1fr 1fr; gap:10px; }
  .enrollment-item>div:first-child { grid-column:1 / -1; }
  .enrollment-item .enrollment-status-button { justify-self:start; }
}
.student-profile-modal { width:min(100%,920px); }.profile-form { max-height:calc(100vh - 150px); overflow:auto; }.profile-required-note { margin:0 0 4px; padding:10px 12px; border-radius:6px; color:#7a6a43; background:#fff6df; font-size:10px; }.profile-form-section { padding:14px 0 5px; border-top:1px solid #edf2f4; }.profile-form-section h3 { color:#3f6070; font-size:13px; margin:0 0 10px; }.profile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 14px; }.profile-grid>div { min-width:0; }.profile-grid-wide { grid-column:span 2; }.profile-checkboxes { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; margin-top:12px; color:#5c7480; font-size:10px; }.profile-checkboxes>span { width:100%; color:#7f949d; }.profile-checkboxes label { display:flex; align-items:center; gap:5px; }.profile-checkboxes input { accent-color:#2d8c9d; }.profile-incomplete { color:#fff !important; border-color:#c84e52 !important; background:#d85b5e !important; animation:profile-alert-pulse 1.35s ease-in-out infinite; }.profile-complete { color:#318d70 !important; border-color:#b7dfd0 !important; background:#edf9f3 !important; } @keyframes profile-alert-pulse { 0%,100% { box-shadow:0 0 0 0 rgba(216,91,94,.45); } 50% { box-shadow:0 0 0 5px rgba(216,91,94,.12); } }
.profile-check-inline { display:flex !important; align-items:center; gap:5px; margin-top:7px !important; color:#718890 !important; font-size:10px !important; font-weight:400 !important; }.profile-check-inline input { accent-color:#2d8c9d; }
.profile-checkboxes input[type="checkbox"], .profile-check-inline input[type="checkbox"] { width:14px !important; height:14px; min-width:14px; min-height:14px; flex:0 0 14px; margin:0; padding:0; border:0; box-shadow:none; accent-color:#2d8c9d; }
.profile-zip-status { display:block; min-height:14px; margin-top:4px; color:#8b9ca4; font-size:10px; }.profile-zip-status.loading { color:#9b7a35; }.profile-zip-status.success { color:#318d70; }.profile-zip-status.error { color:#c45e58; }
.profile-cpf-status { display:block; min-height:14px; margin-top:4px; color:#8b9ca4; font-size:10px; }.profile-cpf-status.success { color:#318d70; }.profile-cpf-status.error { color:#c45e58; }
@media (max-width:650px) { .profile-grid { grid-template-columns:1fr; }.profile-grid-wide { grid-column:auto; }.profile-form { max-height:calc(100vh - 100px); }.profile-checkboxes { display:grid; grid-template-columns:1fr 1fr; }.profile-checkboxes>span { grid-column:1 / -1; } }
.teacher-contact-message { border:0; padding:0; color:#2b8497; background:transparent; font-size:11px; font-weight:700; white-space:nowrap; cursor:pointer; }.teacher-contact-message:hover { color:var(--navy); }.teacher-message-modal { width:min(100%,620px); }.teacher-message-context { display:grid; gap:4px; margin:0 0 7px; padding:12px 14px; border:1px solid #e4ecef; border-radius:8px; background:#f5f9f9; }.teacher-message-context strong { color:#294b5d; font-size:12px; }.teacher-message-context small { color:#82969e; font-size:10px; }.teacher-message-counter { color:#8b9ca4; font-size:10px; text-align:right; }.teacher-message-modal textarea { width:100%; min-height:130px; resize:vertical; }.teacher-message-modal button:disabled { opacity:.6; cursor:wait; }.teacher-notification-wrap { position:relative; }.teacher-notification-button { display:flex; align-items:center; gap:7px; padding:9px 12px; border:1px solid #d9e3e7; border-radius:6px; color:#526875; background:#fff; font-size:11px; }.teacher-notification-button:hover { border-color:#93bec7; color:var(--navy); }.teacher-notification-button em { display:grid; place-items:center; min-width:18px; height:18px; padding:0 4px; border-radius:999px; color:#fff; background:#d85b5e; font-size:9px; font-style:normal; }.teacher-notification-button em:empty { display:none; }
.teacher-notification-toolbar { display:flex; justify-content:flex-end; padding:14px 0 0; }.teacher-notification-toolbar .teacher-notification-button { box-shadow:0 4px 12px rgba(22,56,73,.05); }
.admin-notification-action { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:18px; padding:20px 22px; border:1px solid #dcefeb; border-radius:11px; background:#eaf5f3; }.admin-notification-action h2 { margin:0; color:#245866; font-family:'Playfair Display',Georgia,serif; font-size:20px; }.admin-notification-action p:not(.eyebrow) { margin:6px 0 0; color:#5c8184; font-size:12px; line-height:1.5; }.admin-notification-modal { width:min(100%,620px); }.notification-message-counter { color:#8b9ca4; font-size:10px; text-align:right; }.admin-notification-modal textarea { width:100%; min-height:130px; resize:vertical; }.admin-notification-modal select:disabled { color:#99a8ae; background:#f2f5f6; }
.admin-student-search { margin-bottom:4px; }
@media (max-width:650px) { .admin-notification-action { align-items:flex-start; flex-direction:column; }.admin-notification-action .admin-primary-button { width:100%; justify-content:center; } }
