*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;background:#f5f6f8;color:#222;font-size:15px}a{color:#2f7cf6;text-decoration:none}button{cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-size:15px}button.primary{background:#2f7cf6;color:#fff}button.primary:disabled{background:#a8c4f5}button.ghost{background:#eef1f5;color:#333}button.danger{background:#e5484d;color:#fff}button.small{padding:5px 10px;font-size:13px}input,select,textarea{border:1px solid #d5dbe3;border-radius:8px;padding:9px 12px;font-size:15px;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:#2f7cf6}.card{background:#fff;border-radius:12px;padding:16px;margin-bottom:14px;box-shadow:0 1px 3px #0000000d}.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center}.muted{color:#8a93a0;font-size:13px}.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px}.tag.ok{background:#e6f6ec;color:#1a9e4b}.tag.warn{background:#fff4e0;color:#c77700}.tag.err{background:#fde8e8;color:#d33}.tag.info{background:#e8f0fe;color:#2f7cf6}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid #eef1f5}th{color:#667;font-weight:600}.log{background:#10141a;color:#9fe89f;border-radius:8px;padding:12px;font-family:ui-monospace,Menlo,monospace;font-size:12.5px;max-height:320px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.progress{height:10px;background:#e8ecf1;border-radius:999px;overflow:hidden}.progress>div{height:100%;background:linear-gradient(90deg,#2f7cf6,#57b0ff);transition:width .4s}.center{display:flex;align-items:center;justify-content:center}.big-icon{font-size:56px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#fff;border-radius:14px;padding:20px;width:min(92vw,420px);max-height:86vh;overflow-y:auto}.student-page{max-width:480px;margin:0 auto;padding:18px;min-height:100vh}.student-page h1{font-size:20px;margin-bottom:14px}.admin-layout{display:flex;min-height:100vh}.sidebar{width:200px;background:#1c2430;color:#cfd8e3;padding:18px 0;flex-shrink:0}.sidebar .logo{font-size:17px;font-weight:700;color:#fff;padding:0 20px 18px}.sidebar a{display:block;padding:11px 20px;color:#cfd8e3}.sidebar a.router-link-active{background:#2f7cf6;color:#fff}.main{flex:1;padding:22px;overflow-x:auto}@media (max-width: 720px){.admin-layout{flex-direction:column}.sidebar{width:100%;display:flex;align-items:center;gap:4px;padding:8px;overflow-x:auto}.sidebar .logo{padding:0 12px}.sidebar a{padding:8px 12px;white-space:nowrap}.main{padding:14px}}
