:root { font-family: "DM Sans", system-ui, sans-serif; color: #27233b; background: #f6f5fb; } * { box-sizing: border-box; } body { min-width: 320px; margin: 0; background: radial-gradient(circle at 90% 0%, #ddd6ff 0, transparent 23%), #f6f5fb; } button, input, select { font: inherit; }
.admin-import-actions { display: flex; align-items: center; gap: 14px; padding: 16px; border: 1px solid #e4def6; border-radius: 14px; background: linear-gradient(100deg, #f5f2ff, #fbfaff); }.admin-import-actions button { display: inline-flex; flex: none; align-items: center; gap: 7px; min-height: 42px; padding: 0 14px; border: 0; border-radius: 10px; background: #5a45c5; color: #fff; font-size: 12px; font-weight: 800; cursor: pointer; }.admin-import-actions button:disabled { opacity: .62; cursor: wait; }.admin-import-actions p { margin: 0; color: #6e667d; font-size: 12px; line-height: 1.42; }.admin-import-actions p.error { color: #aa3f50; }
.admin-release-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 10px; align-items: end; padding: 16px; border: 1px solid #dfe4f5; border-radius: 14px; background: linear-gradient(110deg, #f3f8ff, #fbfaff); }.admin-release-actions label { display: grid; gap: 5px; color: #5d5870; font-size: 11px; font-weight: 800; }.admin-release-actions input { width: 100%; padding: 8px; border: 1px solid #d9ddec; border-radius: 9px; background: #fff; color: #615a72; font-size: 11px; }.admin-release-actions button { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 14px; border: 0; border-radius: 10px; background: #2d6db7; color: #fff; font-size: 12px; font-weight: 800; cursor: pointer; }.admin-release-actions button:disabled { opacity: .62; cursor: wait; }.admin-release-actions p { grid-column: 1 / -1; margin: 0; color: #68728a; font-size: 12px; line-height: 1.42; }.admin-release-actions p.error { color: #aa3f50; }
.admin-auth-card .admin-password-reset { width: 100%; min-height: auto; margin-top: 10px; padding: 4px; border: 0; background: transparent; color: #6150bd; font-size: 12px; font-weight: 700; text-decoration: underline; }.admin-auth-card .admin-password-reset:hover { background: transparent; color: #4531a5; }
.admin-auth { display: grid; min-height: 100vh; place-items: center; padding: 28px; }.admin-auth-card { width: min(100%, 430px); padding: 34px; border: 1px solid #e7e3f1; border-radius: 26px; background: rgba(255,255,255,.94); box-shadow: 0 22px 50px rgba(46,35,105,.14); text-align: center; }.admin-auth-card > img { width: 112px; height: 112px; object-fit: contain; filter: drop-shadow(0 9px 12px rgba(49,38,131,.23)); }.admin-auth-card > p, .admin-section-heading p, .admin-hero p, .user-editor form > p { margin: 0 0 6px; color: #6d59ce; font-size: 10px; font-weight: 800; letter-spacing: 1.4px; }.admin-auth-card h1 { margin: 0; color: #322b52; font: 700 31px/1.07 "Outfit", sans-serif; letter-spacing: -1px; }.admin-auth-card > span { display: block; margin: 10px 0 22px; color: #756d84; font-size: 13px; line-height: 1.45; }.admin-auth-card form { display: grid; gap: 8px; text-align: left; }.admin-auth-card label, .user-editor label { margin-top: 6px; color: #5b5368; font-size: 12px; font-weight: 800; }.admin-auth-card input, .user-editor input, .user-editor select { width: 100%; padding: 12px; border: 1px solid #ddd8e8; border-radius: 11px; outline: none; color: #332d40; }.admin-auth-card input:focus, .user-editor input:focus, .user-editor select:focus { border-color: #8069d8; box-shadow: 0 0 0 3px #edeaff; }.admin-auth-card button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 48px; margin-top: 9px; border: 0; border-radius: 12px; background: #5944c5; color: #fff; font-weight: 800; cursor: pointer; }.admin-auth-card button:hover { background: #4732ae; }.admin-auth-card button .material-icons { font-size: 18px; }.admin-auth-card > a { display: inline-block; margin-top: 17px; color: #6150bd; font-size: 12px; font-weight: 700; text-decoration: none; }
.admin-panel { width: min(1240px, calc(100% - 56px)); margin: 0 auto; padding: 25px 0 72px; }.admin-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }.admin-brand { display: inline-flex; align-items: center; gap: 10px; color: #312a67; font: 700 20px "Outfit", sans-serif; text-decoration: none; }.admin-brand img { width: 46px; height: 46px; object-fit: contain; filter: drop-shadow(0 5px 6px rgba(45,37,115,.21)); }.admin-brand strong { font-weight: 800; }.admin-brand small { display: block; margin-top: 1px; color: #837a9c; font: 700 9px "DM Sans", sans-serif; letter-spacing: 1.1px; text-transform: uppercase; }.admin-header > div { display: flex; align-items: center; gap: 11px; }.admin-account { max-width: 260px; overflow: hidden; color: #68617a; font-size: 12px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }.admin-header button, .admin-refresh { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 37px; padding: 0 12px; border: 1px solid #dcd7ea; border-radius: 10px; background: #fff; color: #5b526d; font-size: 12px; font-weight: 800; cursor: pointer; }.admin-header button:hover, .admin-refresh:hover { border-color: #b5a8e5; color: #4f3eb6; }.admin-hero { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 47px 0 28px; }.admin-hero h1 { max-width: 720px; margin: 0; color: #322b51; font: 700 clamp(32px, 5vw, 52px)/1.02 "Outfit", sans-serif; letter-spacing: -1.7px; }.admin-refresh { border: 0; background: #5c47c8; box-shadow: 0 8px 16px rgba(82,60,182,.2); color: #fff; }.admin-refresh:hover { background: #4b37b6; color: #fff; }.admin-refresh .material-icons { font-size: 18px; }.admin-alert { margin: 0 0 18px; padding: 11px 13px; border: 1px solid #efc5cb; border-radius: 11px; background: #fff6f6; color: #a0424f; font-size: 12px; line-height: 1.45; }.admin-alert.success { border-color: #b9ddb6; background: #f2fbef; color: #467145; }.admin-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 28px; }.admin-stats article { display: flex; align-items: center; gap: 11px; min-height: 95px; padding: 17px; border: 1px solid #e6e2ee; border-radius: 17px; background: #fff; box-shadow: 0 8px 19px rgba(51,41,102,.06); }.admin-stats article > span { display: grid; width: 39px; height: 39px; place-items: center; border-radius: 13px; background: #ede9ff; color: #6650cb; font-size: 21px; }.admin-stats strong { display: block; color: #393050; font: 700 24px "Outfit", sans-serif; }.admin-stats small { display: block; margin-top: 2px; color: #81798f; font-size: 11px; font-weight: 700; }.admin-section { margin-top: 21px; padding: 23px; border: 1px solid #e6e2ee; border-radius: 20px; background: #fff; box-shadow: 0 10px 24px rgba(51,41,102,.06); }.admin-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 20px; }.admin-section-heading h2 { margin: 0; color: #3a324e; font-size: 23px; letter-spacing: -.75px; }.admin-section-heading span { display: block; max-width: 500px; margin-top: 5px; color: #7e7789; font-size: 12px; line-height: 1.4; }.admin-search { display: flex; align-items: center; gap: 6px; min-width: 230px; padding: 0 10px; border: 1px solid #ded9e7; border-radius: 10px; color: #827a91; }.admin-search .material-icons { font-size: 18px; }.admin-search input { width: 100%; min-height: 37px; border: 0; outline: 0; background: transparent; font-size: 12px; }.admin-table-wrap { overflow-x: auto; }.admin-table { width: 100%; min-width: 810px; border-collapse: collapse; text-align: left; }.admin-table th { padding: 0 11px 10px; color: #8a8299; font-size: 10px; letter-spacing: .6px; text-transform: uppercase; }.admin-table td { padding: 13px 11px; border-top: 1px solid #eeeaf3; color: #60596b; font-size: 12px; vertical-align: middle; }.admin-table td strong { display: block; color: #413a51; font-size: 13px; }.admin-table td small { display: block; max-width: 170px; overflow: hidden; margin-top: 2px; color: #8a8393; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.admin-table-actions { display: flex; gap: 6px; }.admin-table-actions button { min-height: 30px; padding: 0 8px; border: 1px solid #ded8ec; border-radius: 8px; background: #fff; color: #625985; font-size: 10px; font-weight: 800; cursor: pointer; }.admin-table-actions button:hover { border-color: #a897de; background: #f6f3ff; }.admin-table-actions .reset { color: #916a22; }.admin-table-actions .delete { border-color: #edc4cb; color: #ad4352; }.admin-table-actions .delete:hover { background: #fff5f6; }.admin-empty { margin: 11px 0; color: #847c90; font-size: 13px; }.admin-tickets { display: grid; gap: 11px; }.admin-ticket { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; padding: 14px; border: 1px solid #ece8f1; border-radius: 14px; background: #fcfbff; }.admin-ticket h3 { margin: 0; color: #433c53; font-size: 14px; }.admin-ticket p { margin: 7px 0; color: #716a7b; font-size: 12px; line-height: 1.48; white-space: pre-wrap; }.admin-ticket small { color: #928a9c; font-size: 10px; }.admin-ticket-controls { display: grid; align-content: start; gap: 7px; }.admin-ticket-controls select { min-width: 125px; padding: 8px; border: 1px solid #dcd6e8; border-radius: 8px; background: #fff; color: #574f63; font-size: 11px; font-weight: 700; }.admin-ticket-controls button { padding: 7px 9px; border: 0; border-radius: 8px; background: #6050bc; color: #fff; font-size: 10px; font-weight: 800; cursor: pointer; }.admin-ticket-controls button:disabled { opacity: .6; cursor: wait; }
.user-editor { width: min(460px, calc(100vw - 32px)); padding: 0; border: 0; border-radius: 20px; box-shadow: 0 22px 58px rgba(37,27,73,.3); }.user-editor::backdrop { background: rgba(30,22,55,.55); backdrop-filter: blur(3px); }.user-editor form { position: relative; display: grid; gap: 8px; padding: 28px; }.user-editor h2 { margin: 0 0 8px; color: #3e3653; font-size: 25px; letter-spacing: -.7px; }.dialog-close { position: absolute; top: 12px; right: 13px; width: 31px; height: 31px; border: 0; border-radius: 50%; background: #f0edf6; color: #746b80; font-size: 23px; line-height: 1; cursor: pointer; }.editor-save { min-height: 45px; margin-top: 9px; border: 0; border-radius: 11px; background: #5844bf; color: #fff; font-size: 12px; font-weight: 800; cursor: pointer; }.editor-save:disabled { opacity: .65; cursor: wait; }
 .admin-weekly-release-actions { display: grid; grid-template-columns: minmax(250px, 1fr) auto; gap: 10px; align-items: end; padding: 16px; border: 1px solid #d7e5de; border-radius: 14px; background: linear-gradient(110deg, #f1fbf6, #fbfffc); }.admin-weekly-release-actions label { display: grid; gap: 5px; color: #536a5d; font-size: 11px; font-weight: 800; }.admin-weekly-release-actions input { width: 100%; padding: 8px; border: 1px solid #cfe2d7; border-radius: 9px; background: #fff; color: #52635a; font-size: 11px; }.admin-weekly-release-actions button { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 14px; border: 0; border-radius: 10px; background: #23724b; color: #fff; font-size: 12px; font-weight: 800; cursor: pointer; }.admin-weekly-release-actions button:disabled { opacity: .62; cursor: wait; }.admin-weekly-release-actions p { grid-column: 1 / -1; margin: 0; color: #687b70; font-size: 12px; line-height: 1.42; }.admin-weekly-release-actions p.error { color: #aa3f50; }.admin-school-heading { align-items: center; }.admin-export { display: inline-flex; flex: none; align-items: center; gap: 7px; min-height: 40px; padding: 0 13px; border: 1px solid #cdd6ef; border-radius: 10px; background: #edf4ff; color: #2f5f9c; font-size: 12px; font-weight: 800; cursor: pointer; }.admin-export:hover { border-color: #93b4e4; background: #e5f0ff; }.admin-export .material-icons { font-size: 18px; }.admin-school-table { min-width: 760px; }.admin-sort { display: inline-flex; align-items: center; gap: 2px; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; }.admin-sort:hover { color: #5541bd; }.admin-sort .material-icons { font-size: 14px; }.admin-school-rank { color: #776a94; font-weight: 800; }
@media (max-width: 820px) { .admin-panel { width: min(100% - 32px, 1240px); }.admin-stats { grid-template-columns: repeat(2, 1fr); }.admin-hero { align-items: start; flex-direction: column; margin-top: 32px; }.admin-section-heading { align-items: start; flex-direction: column; }.admin-search { width: 100%; }.admin-ticket { grid-template-columns: 1fr; }.admin-ticket-controls { grid-template-columns: 1fr auto; align-items: center; }.admin-ticket-controls select { min-width: 0; }.admin-release-actions { grid-template-columns: 1fr 1fr; }.admin-weekly-release-actions { grid-template-columns: 1fr; }.admin-weekly-release-actions button { width: max-content; } } @media (max-width: 470px) { .admin-auth { padding: 18px; }.admin-auth-card { padding: 27px 21px; }.admin-panel { width: min(100% - 24px, 1240px); padding-top: 17px; }.admin-header > div { gap: 6px; }.admin-account { display: none; }.admin-stats { gap: 9px; }.admin-stats article { min-height: 80px; padding: 12px; }.admin-stats article > span { width: 33px; height: 33px; font-size: 18px; }.admin-stats strong { font-size: 20px; }.admin-section { padding: 17px; border-radius: 17px; }.admin-release-actions { grid-template-columns: 1fr; } }
.admin-panel[hidden], .admin-auth[hidden], .admin-view[hidden], .admin-alert[hidden] { display: none !important; }
.admin-panel { width: min(1480px, calc(100% - 48px)); }
.admin-workspace { display: grid; grid-template-columns: 242px minmax(0, 1fr); gap: 24px; align-items: start; margin-top: 26px; }
.admin-sidebar { position: sticky; top: 20px; padding: 22px 13px; border: 1px solid #e6e2ee; border-radius: 20px; background: #fff; box-shadow: 0 10px 24px rgba(51,41,102,.06); }
.admin-sidebar-label { margin: 0 12px 12px; color: #8a8299; font-size: 10px; font-weight: 800; letter-spacing: 1.4px; }
.admin-nav { display: grid; gap: 5px; }
.admin-nav button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 43px; padding: 9px 12px; border: 0; border-radius: 11px; background: transparent; color: #665e77; font-size: 12px; font-weight: 800; text-align: left; cursor: pointer; }
.admin-nav button:hover { background: #f4f1ff; color: #5140b8; }
.admin-nav button[aria-current="page"] { background: #eeeaff; color: #5140b8; }
.admin-nav .material-icons { flex: none; font-size: 19px; }
.admin-main { min-width: 0; }
.admin-main > .admin-alert { margin-top: 0; }
.admin-main .admin-hero { margin-top: 24px; }
.admin-main > .admin-section { margin-top: 0; min-height: 330px; }
@media (max-width: 1000px) { .admin-workspace { grid-template-columns: 190px minmax(0, 1fr); gap: 16px; }.admin-sidebar { padding: 15px 8px; }.admin-nav button { font-size: 11px; } }
@media (max-width: 760px) { .admin-panel { width: min(100% - 28px, 1240px); }.admin-workspace { display: block; margin-top: 18px; }.admin-sidebar { position: static; margin-bottom: 18px; padding: 11px; }.admin-sidebar-label { margin: 0 7px 7px; }.admin-nav { display: flex; overflow-x: auto; padding-bottom: 2px; }.admin-nav button { flex: none; width: auto; white-space: nowrap; }.admin-main .admin-hero { margin-top: 18px; } }
