@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');:root{font-family:'DM Sans',system-ui,sans-serif;background:#faf8fa;color:#302936}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}h1,h2,h3{font-family:Outfit,sans-serif;letter-spacing:-.025em}h1{font-size:30px;margin:4px 0}h2{font-size:22px;margin:0 0 12px}h3{font-size:17px}p{line-height:1.6}.muted{color:#897e89}.tiny{font-size:12px}.eyebrow{color:#b65889;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.shell{display:flex;min-height:100vh}aside{width:264px;background:linear-gradient(155deg,#42253c,#281e30);color:#fff;padding:24px 16px;flex:none;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;align-items:center;gap:13px;padding:0 8px 20px;border-bottom:1px solid #ffffff23;margin-bottom:20px}.brand-mark{width:43px;height:43px;display:grid;place-items:center;border-radius:12px;background:#b65889;color:white;font:800 26px Outfit}.brand-name{font:700 17px Outfit;line-height:1.05}.brand-name small{font:500 11px 'DM Sans';color:#eac5db;display:block;margin-top:5px;letter-spacing:.12em}.side-label{text-transform:uppercase;color:#bca5b6;letter-spacing:.12em;font-size:10px;font-weight:800;margin:12px 12px 9px}.nav-btn{display:flex;align-items:center;gap:13px;padding:11px 13px;width:100%;border:0;background:none;text-align:left;color:#e9d7e4;border-radius:10px;margin:2px 0;font-size:13px;font-weight:600}.nav-btn .nav-icon{font-size:17px;width:22px;text-align:center}.nav-btn.active,.nav-btn:hover{background:#b658892b;color:#fff}.nav-btn.active{box-shadow:inset 3px 0 #df8dbb}.side-bottom{margin-top:auto;background:#ffffff0b;border:1px solid #ffffff18;border-radius:13px;padding:15px;color:#f1ddea}.side-bottom b{display:block;font-size:13px;margin-bottom:4px}main{min-width:0;flex:1;padding:26px 34px 50px;max-width:1600px;margin:0 auto;width:100%}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 0 25px;border-bottom:1px solid #eee5eb;margin-bottom:25px}.page-sub{font-size:13px;margin:4px 0;color:#827685}.top-actions{display:flex;align-items:center;gap:9px}.avatar{width:38px;height:38px;border-radius:50%;background:#f1d7e5;color:#8f3868;display:grid;place-items:center;font-weight:800}.btn{padding:11px 16px;background:#b65889;color:#fff;border:1px solid #b65889;border-radius:10px;font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{background:#953d6c}.btn.secondary{background:#fff;color:#814765;border:1px solid #e6d2df}.btn.dark{background:#403047;border-color:#403047}.btn.small{padding:7px 10px;font-size:12px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:16px 0 22px}.stat{background:#fff;border:1px solid #efe5eb;padding:22px;border-radius:16px}.stat b{display:block;font:700 31px Outfit;margin:8px 0 1px}.stat .meta{color:#897f8a;font-size:12px}.stat .icon{font-size:22px;float:right;background:#faf0f5;border-radius:12px;width:42px;height:42px;display:grid;place-items:center}.card{background:#fff;border:1px solid #eee5eb;border-radius:16px;padding:22px;margin-bottom:18px;box-shadow:0 5px 24px #4b244b07}.hero{display:flex;justify-content:space-between;gap:30px;align-items:center;padding:26px 30px;border-radius:19px;background:linear-gradient(115deg,#a44777,#c06b99 65%,#e5adca);color:white;margin-bottom:20px;overflow:hidden;position:relative}.hero h2{font-size:28px;margin:3px 0}.hero p{max-width:580px;font-size:13px;color:#fff3fa}.hero .eyebrow{color:#fee3f0}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:grid;gap:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.field{margin:0 0 14px}.field label{display:block;font-size:12px;color:#524452;font-weight:800;margin:0 0 7px}.field input,.field select,.field textarea{width:100%;border:1px solid #e5dae3;border-radius:10px;padding:11px 12px;background:#fff;color:#352b36;outline:none;font-size:13px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#b65889;box-shadow:0 0 0 3px #b658891b}.field textarea{min-height:134px;resize:vertical;line-height:1.6}.field.full{grid-column:1/-1}.scroll{overflow:auto}.scroll table{border-collapse:collapse;width:100%;min-width:620px;font-size:12px}th,td{padding:13px 14px;border-bottom:1px solid #f1eaf0;text-align:left;vertical-align:middle}th{font-size:11px;color:#887989;text-transform:uppercase;letter-spacing:.05em;background:#fdfbfc}tr:hover td{background:#fffbfe}.pill{display:inline-block;border-radius:20px;padding:5px 10px;font-size:11px;font-weight:800;background:#f6e4ed;color:#964570}.pill.green{background:#e8f7f0;color:#087a52}.pill.orange{background:#fff3df;color:#aa6b12}.pill.gray{background:#eeeef0;color:#666}.placeholder{text-align:center;padding:50px 20px;color:#908290;background:#fdfbfc;border:1px dashed #e9dce5;border-radius:14px}.placeholder .emoji{font-size:30px;display:block;margin-bottom:9px}.notice{padding:13px 15px;border-radius:10px;background:#fbf1f6;border:1px solid #edd6e3;color:#82415e;font-size:13px;line-height:1.5;margin:12px 0}.notice.error{background:#fff0f1;border-color:#ffd4d9;color:#9e243c}.notice.ok{background:#eaf8f1;border-color:#ccebdc;color:#0a7950}.question{padding:18px;border:1px solid #eee3eb;border-radius:13px;margin:12px 0}.question label.option{padding:9px 10px;display:block;border-radius:9px;cursor:pointer}.question label.option:hover{background:#fbf0f6}.question input[type=radio]{accent-color:#b65889}.login-screen{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:linear-gradient(145deg,#331f31,#a64d7e);display:flex;align-items:center;justify-content:center;padding:50px;color:#fff}.login-art h1{font-size:50px;line-height:1.04;max-width:430px}.login-art p{max-width:470px;color:#f0cfe2}.login-form{display:flex;align-items:center;justify-content:center;padding:24px}.login-panel{width:100%;max-width:390px}.login-panel h2{font-size:28px}.login-panel .btn{width:100%}.loading{min-height:100vh;display:grid;place-items:center;color:#b65889;font-size:20px}.link-tile{padding:15px;border:1px solid #efe5eb;border-radius:12px;cursor:pointer;background:#fff;text-align:left;color:#433244;display:block;width:100%}.link-tile b{display:block;font-size:13px}.link-tile small{color:#897c88;font-size:12px}.split{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:18px}.student-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #eee7ed;border-radius:10px;margin-bottom:8px}.student-row select{width:150px}.report{background:#fff;border:1px solid #e8d9e4;padding:32px;max-width:860px;margin:0 auto}.report-head{text-align:center;border-bottom:2px solid #b65889;padding-bottom:16px;margin-bottom:20px}.report-head h2{font-size:27px}.footer-note{font-size:11px;color:#9e929d;margin-top:20px}.hide-desktop{display:none}@media(max-width:1100px){.cards{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}}@media(max-width:760px){.shell{display:block}aside{height:auto;position:relative;width:auto;padding:12px}.brand{margin-bottom:8px;padding-bottom:12px}.nav{display:flex;overflow:auto;padding-bottom:6px}.nav-btn{width:auto;flex:none;padding:9px 10px;gap:6px}.side-label,.side-bottom{display:none}main{padding:20px 14px}.topbar{padding:0 0 14px}.topbar h1{font-size:23px}.cards{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:15px}.stat b{font-size:25px}.stat .icon{display:none}.hero{padding:20px}.hero h2{font-size:24px}.form-grid{grid-template-columns:1fr}.login-screen{grid-template-columns:1fr}.login-art{display:none}.login-form{min-height:100vh}.card{padding:16px}.hide-mobile{display:none}.hide-desktop{display:inline}}@media print{aside,.topbar,.no-print{display:none!important}main{padding:0!important}.card{border:none;box-shadow:none}.report{border:0;padding:0}.shell{display:block}}
/* Original Torch Bearers Academy identity */
.academy-logo{width:60px;height:60px;object-fit:contain;background:#fff;border-radius:13px;padding:5px;flex-shrink:0}
.login-art .academy-logo{width:83px;height:83px;background:#fff;box-shadow:0 10px 26px #130b1424}
.brand-name{line-height:1.16}.login-art .brand-name{font-size:20px}
@media(max-width:760px){.academy-logo{width:48px;height:48px}}
